From 3cd054648989530c539e2dd5db601d445ee9394a Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Mon, 6 Nov 2023 14:55:15 +0200 Subject: [PATCH 1/3] Initial commit (cherry picked from commit eaaf9330cbc422104601a761158f398c44559409) --- .classpath | 49 + .factorypath | 4 + .gitignore | 3 + .project | 23 + .settings/org.eclipse.core.resources.prefs | 6 + .settings/org.eclipse.jdt.apt.core.prefs | 5 + .settings/org.eclipse.jdt.core.prefs | 17 + .settings/org.eclipse.m2e.core.prefs | 4 + Dockerfile.tmfapi | 7 + LICENSE | 201 + README.md | 91 +- pom.xml | 398 ++ .../domain/model/DomainModelDefinition.java | 25 + .../model/ITMFRCM634_ModelTransformer.java | 32 + .../model/ITMFRI639_ModelTransformer.java | 34 + .../kubernetes/KubernetesCRDProperty.java | 35 + .../model/kubernetes/KubernetesCRDV1.java | 244 ++ .../model/kubernetes/KubernetesCRV1.java | 218 + .../KubernetesContextDefinition.java | 155 + .../model/kubernetes/KubernetesSecret.java | 213 + .../etsi/osl/sd/model/ServiceDescriptor.java | 139 + .../osl/sd/model/ServiceDescriptorAttr.java | 100 + .../org/etsi/osl/tmf/BootstrapRepository.java | 183 + .../org/etsi/osl/tmf/BootstrapResources.java | 299 ++ src/main/java/org/etsi/osl/tmf/JsonUtils.java | 39 + .../org/etsi/osl/tmf/LocalMysqlDialect.java | 29 + src/main/java/org/etsi/osl/tmf/MvcConfig.java | 129 + .../org/etsi/osl/tmf/OpenAPISpringBoot.java | 87 + .../etsi/osl/tmf/am642/api/AckAlarmsApi.java | 165 + .../tmf/am642/api/AckAlarmsApiController.java | 130 + .../org/etsi/osl/tmf/am642/api/AlarmApi.java | 222 ++ .../osl/tmf/am642/api/AlarmApiController.java | 152 + .../tmf/am642/api/AlarmApiRouteBuilder.java | 111 + .../am642/api/AlarmApiRouteBuilderEvents.java | 105 + .../etsi/osl/tmf/am642/api/ApiException.java | 29 + .../osl/tmf/am642/api/ApiOriginFilter.java | 50 + .../osl/tmf/am642/api/ApiResponseMessage.java | 88 + .../osl/tmf/am642/api/ClearAlarmsApi.java | 169 + .../am642/api/ClearAlarmsApiController.java | 132 + .../osl/tmf/am642/api/CommentAlarmsApi.java | 164 + .../am642/api/CommentAlarmsApiController.java | 129 + .../osl/tmf/am642/api/GroupAlarmsApi.java | 169 + .../am642/api/GroupAlarmsApiController.java | 124 + .../org/etsi/osl/tmf/am642/api/HubApi.java | 119 + .../osl/tmf/am642/api/HubApiController.java | 56 + .../etsi/osl/tmf/am642/api/ListenerApi.java | 591 +++ .../tmf/am642/api/ListenerApiController.java | 56 + .../osl/tmf/am642/api/NotFoundException.java | 29 + .../osl/tmf/am642/api/UnAckAlarmsApi.java | 164 + .../am642/api/UnAckAlarmsApiController.java | 137 + .../osl/tmf/am642/api/UnGroupAlarmsApi.java | 164 + .../am642/api/UnGroupAlarmsApiController.java | 132 + .../etsi/osl/tmf/am642/model/AckAlarms.java | 292 ++ .../osl/tmf/am642/model/AckAlarmsCreate.java | 314 ++ .../tmf/am642/model/AckAlarmsCreateEvent.java | 366 ++ .../model/AckAlarmsCreateEventPayload.java | 99 + .../model/AckAlarmsStateChangeEvent.java | 366 ++ .../AckAlarmsStateChangeEventPayload.java | 99 + .../osl/tmf/am642/model/AffectedService.java | 98 + .../org/etsi/osl/tmf/am642/model/Alarm.java | 1067 +++++ .../model/AlarmAttributeValueChangeEvent.java | 342 ++ ...AlarmAttributeValueChangeEventPayload.java | 99 + .../etsi/osl/tmf/am642/model/AlarmCreate.java | 210 + .../osl/tmf/am642/model/AlarmCreateEvent.java | 124 + .../am642/model/AlarmCreateEventPayload.java | 99 + .../osl/tmf/am642/model/AlarmDeleteEvent.java | 366 ++ .../am642/model/AlarmDeleteEventPayload.java | 99 + .../etsi/osl/tmf/am642/model/AlarmRef.java | 127 + .../osl/tmf/am642/model/AlarmRefOrValue.java | 1054 +++++ .../am642/model/AlarmStateChangeEvent.java | 366 ++ .../model/AlarmStateChangeEventPayload.java | 99 + .../osl/tmf/am642/model/AlarmStateType.java | 28 + .../etsi/osl/tmf/am642/model/AlarmType.java | 36 + .../etsi/osl/tmf/am642/model/AlarmUpdate.java | 997 +++++ .../osl/tmf/am642/model/AlarmedObject.java | 97 + .../etsi/osl/tmf/am642/model/ClearAlarms.java | 293 ++ .../tmf/am642/model/ClearAlarmsCreate.java | 315 ++ .../am642/model/ClearAlarmsCreateEvent.java | 366 ++ .../model/ClearAlarmsCreateEventPayload.java | 99 + .../model/ClearAlarmsStateChangeEvent.java | 366 ++ .../ClearAlarmsStateChangeEventPayload.java | 99 + .../org/etsi/osl/tmf/am642/model/Comment.java | 202 + .../osl/tmf/am642/model/CommentAlarms.java | 227 ++ .../tmf/am642/model/CommentAlarmsCreate.java | 264 ++ .../am642/model/CommentAlarmsCreateEvent.java | 366 ++ .../CommentAlarmsCreateEventPayload.java | 99 + .../model/CommentAlarmsStateChangeEvent.java | 366 ++ .../CommentAlarmsStateChangeEventPayload.java | 99 + .../model/CrossedThresholdInformation.java | 280 ++ .../etsi/osl/tmf/am642/model/EntityRef.java | 243 ++ .../org/etsi/osl/tmf/am642/model/Error.java | 268 ++ .../tmf/am642/model/EventSubscription.java | 148 + .../am642/model/EventSubscriptionInput.java | 123 + .../etsi/osl/tmf/am642/model/GroupAlarms.java | 292 ++ .../tmf/am642/model/GroupAlarmsCreate.java | 316 ++ .../am642/model/GroupAlarmsCreateEvent.java | 366 ++ .../model/GroupAlarmsCreateEventPayload.java | 99 + .../model/GroupAlarmsStateChangeEvent.java | 366 ++ .../GroupAlarmsStateChangeEventPayload.java | 99 + .../am642/model/PerceivedSeverityType.java | 31 + .../org/etsi/osl/tmf/am642/model/Place.java | 217 + .../tmf/am642/model/ProbableCauseType.java | 226 ++ .../am642/model/RelatedPlaceRefOrValue.java | 166 + .../osl/tmf/am642/model/ThresholdRef.java | 126 + .../etsi/osl/tmf/am642/model/UnAckAlarms.java | 366 ++ .../tmf/am642/model/UnAckAlarmsCreate.java | 314 ++ .../am642/model/UnAckAlarmsCreateEvent.java | 366 ++ .../model/UnAckAlarmsCreateEventPayload.java | 99 + .../model/UnAckAlarmsStateChangeEvent.java | 366 ++ .../UnAckAlarmsStateChangeEventPayload.java | 99 + .../osl/tmf/am642/model/UnGroupAlarms.java | 359 ++ .../tmf/am642/model/UnGroupAlarmsCreate.java | 316 ++ .../am642/model/UnGroupAlarmsCreateEvent.java | 366 ++ .../UnGroupAlarmsCreateEventPayload.java | 99 + .../model/UnGroupAlarmsStateChangeEvent.java | 366 ++ .../UnGroupAlarmsStateChangeEventPayload.java | 99 + .../tmf/am642/repo/AckAlarmsRepository.java | 35 + .../osl/tmf/am642/repo/AlarmRepository.java | 35 + .../tmf/am642/repo/ClearAlarmsRepository.java | 35 + .../am642/repo/CommentAlarmsRepository.java | 35 + .../tmf/am642/repo/GroupAlarmsRepository.java | 35 + .../tmf/am642/repo/UnAckAlarmsRepository.java | 35 + .../am642/repo/UnGroupAlarmsRepository.java | 35 + .../reposervices/AckAlarmsRepoService.java | 167 + .../am642/reposervices/AlarmRepoService.java | 528 +++ .../reposervices/ClearAlarmsRepoService.java | 183 + .../CommentAlarmsRepoService.java | 166 + .../reposervices/GroupAlarmsRepoService.java | 167 + .../reposervices/UnAckAlarmsRepoService.java | 167 + .../UnGroupAlarmsRepoService.java | 167 + .../etsi/osl/tmf/am651/api/AgreementApi.java | 216 + .../tmf/am651/api/AgreementApiController.java | 56 + .../am651/api/AgreementSpecificationApi.java | 216 + .../AgreementSpecificationApiController.java | 56 + .../etsi/osl/tmf/am651/api/ApiException.java | 30 + .../osl/tmf/am651/api/ApiOriginFilter.java | 51 + .../osl/tmf/am651/api/ApiResponseMessage.java | 89 + .../org/etsi/osl/tmf/am651/api/HubApi.java | 119 + .../osl/tmf/am651/api/HubApiController.java | 56 + .../osl/tmf/am651/api/NotFoundException.java | 30 + .../osl/tmf/am651/api/RFC3339DateFormat.java | 41 + .../etsi/osl/tmf/am651/model/Agreement.java | 659 ++++ .../tmf/am651/model/AgreementAttachment.java | 200 + .../am651/model/AgreementAuthorization.java | 178 + .../osl/tmf/am651/model/AgreementCreate.java | 606 +++ .../osl/tmf/am651/model/AgreementItem.java | 173 + .../osl/tmf/am651/model/AgreementRef.java | 124 + .../model/AgreementSpecCharacteristic.java | 288 ++ .../AgreementSpecCharacteristicValue.java | 276 ++ .../am651/model/AgreementSpecification.java | 548 +++ .../model/AgreementSpecificationCreate.java | 496 +++ .../model/AgreementSpecificationRef.java | 200 + .../AgreementSpecificationRelationship.java | 201 + .../model/AgreementSpecificationUpdate.java | 496 +++ .../am651/model/AgreementTermOrCondition.java | 176 + .../osl/tmf/am651/model/AgreementUpdate.java | 581 +++ .../etsi/osl/tmf/am651/model/CategoryRef.java | 175 + .../osl/tmf/am651/model/Characteristic.java | 175 + .../org/etsi/osl/tmf/am651/model/Error.java | 252 ++ .../tmf/am651/model/EventSubscription.java | 152 + .../am651/model/EventSubscriptionInput.java | 126 + .../osl/tmf/am651/model/PartyRoleRef.java | 228 ++ .../tmf/am651/model/ProductOfferingRef.java | 175 + .../osl/tmf/am651/model/RelatedPartyRef.java | 200 + .../etsi/osl/tmf/am666/api/ApiException.java | 30 + .../osl/tmf/am666/api/ApiOriginFilter.java | 51 + .../osl/tmf/am666/api/ApiResponseMessage.java | 89 + .../etsi/osl/tmf/am666/api/BillFormatApi.java | 215 + .../am666/api/BillFormatApiController.java | 56 + .../am666/api/BillPresentationMediaApi.java | 215 + .../BillPresentationMediaApiController.java | 56 + .../osl/tmf/am666/api/BillingAccountApi.java | 215 + .../api/BillingAccountApiController.java | 56 + .../api/BillingCycleSpecificationApi.java | 215 + ...illingCycleSpecificationApiController.java | 56 + .../tmf/am666/api/FinancialAccountApi.java | 215 + .../api/FinancialAccountApiController.java | 56 + .../org/etsi/osl/tmf/am666/api/HubApi.java | 119 + .../osl/tmf/am666/api/HubApiController.java | 56 + .../etsi/osl/tmf/am666/api/ListenerApi.java | 384 ++ .../tmf/am666/api/ListenerApiController.java | 56 + .../osl/tmf/am666/api/NotFoundException.java | 30 + .../osl/tmf/am666/api/PartyAccountApi.java | 215 + .../am666/api/PartyAccountApiController.java | 56 + .../osl/tmf/am666/api/RFC3339DateFormat.java | 41 + .../tmf/am666/api/SettlementAccountApi.java | 215 + .../api/SettlementAccountApiController.java | 56 + .../org/etsi/osl/tmf/am666/model/Account.java | 532 +++ .../osl/tmf/am666/model/AccountBalance.java | 231 ++ .../etsi/osl/tmf/am666/model/AccountRef.java | 159 + .../tmf/am666/model/AccountRelationship.java | 230 ++ .../tmf/am666/model/AccountTaxExemption.java | 254 ++ .../etsi/osl/tmf/am666/model/BillFormat.java | 252 ++ .../osl/tmf/am666/model/BillFormatCreate.java | 202 + .../osl/tmf/am666/model/BillFormatRef.java | 252 ++ .../tmf/am666/model/BillFormatRefOrValue.java | 277 ++ .../osl/tmf/am666/model/BillFormatUpdate.java | 202 + .../am666/model/BillPresentationMedia.java | 252 ++ .../model/BillPresentationMediaCreate.java | 202 + .../am666/model/BillPresentationMediaRef.java | 252 ++ .../BillPresentationMediaRefOrValue.java | 277 ++ .../model/BillPresentationMediaUpdate.java | 202 + .../osl/tmf/am666/model/BillStructure.java | 240 ++ .../osl/tmf/am666/model/BillingAccount.java | 694 ++++ ...llingAccountAttributeValueChangeEvent.java | 355 ++ ...countAttributeValueChangeEventPayload.java | 102 + .../tmf/am666/model/BillingAccountCreate.java | 644 +++ .../model/BillingAccountStateChangeEvent.java | 380 ++ ...BillingAccountStateChangeEventPayload.java | 102 + .../tmf/am666/model/BillingAccountUpdate.java | 609 +++ .../model/BillingCycleSpecification.java | 453 +++ .../BillingCycleSpecificationCreate.java | 403 ++ .../model/BillingCycleSpecificationRef.java | 302 ++ .../BillingCycleSpecificationRefOrValue.java | 503 +++ .../BillingCycleSpecificationUpdate.java | 403 ++ .../org/etsi/osl/tmf/am666/model/Contact.java | 318 ++ .../osl/tmf/am666/model/ContactMedium.java | 252 ++ .../etsi/osl/tmf/am666/model/EntityRef.java | 252 ++ .../org/etsi/osl/tmf/am666/model/Error.java | 278 ++ .../tmf/am666/model/EventSubscription.java | 153 + .../am666/model/EventSubscriptionInput.java | 127 + .../osl/tmf/am666/model/FinancialAccount.java | 532 +++ ...ncialAccountAttributeValueChangeEvent.java | 355 ++ ...countAttributeValueChangeEventPayload.java | 102 + .../am666/model/FinancialAccountCreate.java | 482 +++ .../model/FinancialAccountCreateEvent.java | 380 ++ .../FinancialAccountCreateEventPayload.java | 102 + .../model/FinancialAccountDeleteEvent.java | 380 ++ .../FinancialAccountDeleteEventPayload.java | 102 + .../tmf/am666/model/FinancialAccountRef.java | 279 ++ .../FinancialAccountStateChangeEvent.java | 380 ++ ...nancialAccountStateChangeEventPayload.java | 102 + .../am666/model/FinancialAccountUpdate.java | 455 +++ .../tmf/am666/model/MediumCharacteristic.java | 425 ++ .../org/etsi/osl/tmf/am666/model/Money.java | 125 + .../osl/tmf/am666/model/PartyAccount.java | 669 ++++ ...PartyAccountAttributeValueChangeEvent.java | 355 ++ ...countAttributeValueChangeEventPayload.java | 102 + .../tmf/am666/model/PartyAccountCreate.java | 619 +++ .../model/PartyAccountStateChangeEvent.java | 380 ++ .../PartyAccountStateChangeEventPayload.java | 102 + .../tmf/am666/model/PartyAccountUpdate.java | 584 +++ .../osl/tmf/am666/model/PaymentMethodRef.java | 137 + .../etsi/osl/tmf/am666/model/PaymentPlan.java | 353 ++ .../tmf/am666/model/SettlementAccount.java | 669 ++++ ...ementAccountAttributeValueChangeEvent.java | 355 ++ ...countAttributeValueChangeEventPayload.java | 102 + .../am666/model/SettlementAccountCreate.java | 619 +++ .../SettlementAccountStateChangeEvent.java | 380 ++ ...tlementAccountStateChangeEventPayload.java | 102 + .../am666/model/SettlementAccountUpdate.java | 584 +++ .../etsi/osl/tmf/cm629/api/ApiException.java | 30 + .../osl/tmf/cm629/api/ApiOriginFilter.java | 51 + .../osl/tmf/cm629/api/ApiResponseMessage.java | 89 + .../etsi/osl/tmf/cm629/api/CustomerApi.java | 205 + .../tmf/cm629/api/CustomerApiController.java | 172 + .../cm629/api/CustomerApiRouteBuilder.java | 111 + .../org/etsi/osl/tmf/cm629/api/HubApi.java | 119 + .../osl/tmf/cm629/api/HubApiController.java | 56 + .../etsi/osl/tmf/cm629/api/ListenerApi.java | 192 + .../tmf/cm629/api/ListenerApiController.java | 54 + .../osl/tmf/cm629/model/CreditProfile.java | 186 + .../etsi/osl/tmf/cm629/model/Customer.java | 474 +++ .../CustomerAttributeValueChangeEvent.java | 360 ++ ...tomerAttributeValueChangeEventPayload.java | 102 + .../osl/tmf/cm629/model/CustomerCreate.java | 104 + .../tmf/cm629/model/CustomerCreateEvent.java | 388 ++ .../model/CustomerCreateEventPayload.java | 102 + .../tmf/cm629/model/CustomerDeleteEvent.java | 380 ++ .../model/CustomerDeleteEventPayload.java | 102 + .../cm629/model/CustomerStateChangeEvent.java | 380 ++ .../CustomerStateChangeEventPayload.java | 102 + .../osl/tmf/cm629/model/CustomerUpdate.java | 532 +++ .../etsi/osl/tmf/cm629/model/EntityRef.java | 252 ++ .../org/etsi/osl/tmf/cm629/model/Error.java | 278 ++ .../tmf/cm629/model/EventSubscription.java | 153 + .../cm629/model/EventSubscriptionInput.java | 127 + .../tmf/cm629/repo/CustomerRepository.java | 40 + .../cm629/service/CustomerRepoService.java | 152 + .../org/etsi/osl/tmf/common/model/Any.java | 158 + .../etsi/osl/tmf/common/model/Attachment.java | 294 ++ .../osl/tmf/common/model/AttachmentRef.java | 213 + .../common/model/AttachmentRefOrValue.java | 317 ++ .../etsi/osl/tmf/common/model/BaseEntity.java | 272 ++ .../osl/tmf/common/model/BaseRootEntity.java | 209 + .../tmf/common/model/BaseRootNamedEntity.java | 131 + .../etsi/osl/tmf/common/model/ELifecycle.java | 55 + .../etsi/osl/tmf/common/model/EValueType.java | 61 + .../osl/tmf/common/model/Notification.java | 223 ++ .../osl/tmf/common/model/OpensliceEvent.java | 385 ++ .../etsi/osl/tmf/common/model/Quantity.java | 123 + .../etsi/osl/tmf/common/model/TimePeriod.java | 175 + .../tmf/common/model/UserAuthRoleType.java | 58 + .../tmf/common/model/UserPartRoleType.java | 59 + .../common/model/service/Characteristic.java | 153 + .../osl/tmf/common/model/service/Note.java | 205 + .../osl/tmf/common/model/service/Place.java | 124 + .../tmf/common/model/service/ResourceRef.java | 134 + .../tmf/common/model/service/ServiceRef.java | 134 + .../model/service/ServiceRelationship.java | 143 + .../service/ServiceSpecificationRef.java | 187 + .../model/service/ServiceStateType.java | 64 + .../model/service/TargetServiceSchema.java | 153 + .../ActiveMQComponentConfig.java | 41 + .../etsi/osl/tmf/configuration/ApiError.java | 46 + .../osl/tmf/configuration/ApiSubError.java | 5 + .../tmf/configuration/ApiValidationError.java | 20 + .../BCryptPasswordEncoderConfig.java | 35 + .../configuration/CustomClaimVerifier.java | 38 + .../osl/tmf/configuration/HomeController.java | 35 + .../configuration/MethodSecurityConfig.java | 37 + .../RestAuthenticationEntryPoint.java | 56 + .../configuration/RestExceptionHandler.java | 32 + .../SwaggerDocumentationConfig.java | 860 ++++ .../WebSecurityConfigKeycloak.java | 354 ++ .../etsi/osl/tmf/fi691/api/ApiException.java | 30 + .../osl/tmf/fi691/api/ApiOriginFilter.java | 51 + .../osl/tmf/fi691/api/ApiResponseMessage.java | 89 + .../etsi/osl/tmf/fi691/api/UserinfoApi.java | 95 + .../tmf/fi691/api/UserinfoApiController.java | 54 + .../osl/tmf/fi691/model/EntitlementType.java | 128 + .../fi691/model/GeographicAddressType.java | 451 +++ .../GeographicLocationRefOrValueType.java | 156 + .../tmf/fi691/model/GeographicPointType.java | 205 + .../fi691/model/GeographicSubAddressType.java | 259 ++ .../tmf/fi691/model/IdentificationType.java | 185 + .../osl/tmf/fi691/model/UserAssetType.java | 303 ++ .../osl/tmf/fi691/model/UserInfoType.java | 595 +++ .../tmf/fi691/repo/IdentityRepository.java | 36 + .../fi691/service/IdentityRepoService.java | 24 + .../tmf/lcm/api/LCMRuleSpecificationApi.java | 168 + .../LCMRuleSpecificationApiController.java | 159 + .../LCMRuleSpecificationApiRouteBuilder.java | 52 + .../etsi/osl/tmf/lcm/model/ELCMRulePhase.java | 32 + .../tmf/lcm/model/LCMRuleSpecification.java | 210 + .../lcm/model/LCMRuleSpecificationCreate.java | 24 + .../lcm/model/LCMRuleSpecificationUpdate.java | 60 + .../repo/LCMRuleSpecificationRepository.java | 42 + .../LCMRuleSpecificationRepoService.java | 352 ++ .../etsi/osl/tmf/pcm620/api/ApiException.java | 30 + .../osl/tmf/pcm620/api/ApiOriginFilter.java | 51 + .../tmf/pcm620/api/ApiResponseMessage.java | 89 + .../etsi/osl/tmf/pcm620/api/CatalogApi.java | 212 + .../tmf/pcm620/api/CatalogApiController.java | 114 + .../etsi/osl/tmf/pcm620/api/CategoryApi.java | 212 + .../tmf/pcm620/api/CategoryApiController.java | 124 + .../etsi/osl/tmf/pcm620/api/ExportJobApi.java | 183 + .../pcm620/api/ExportJobApiController.java | 56 + .../org/etsi/osl/tmf/pcm620/api/HubApi.java | 119 + .../osl/tmf/pcm620/api/HubApiController.java | 56 + .../etsi/osl/tmf/pcm620/api/ImportJobApi.java | 183 + .../pcm620/api/ImportJobApiController.java | 56 + .../etsi/osl/tmf/pcm620/api/ListenerApi.java | 544 +++ .../tmf/pcm620/api/ListenerApiController.java | 56 + .../osl/tmf/pcm620/api/NotFoundException.java | 30 + .../tmf/pcm620/api/ProductOfferingApi.java | 227 ++ .../api/ProductOfferingApiController.java | 171 + .../pcm620/api/ProductOfferingPriceApi.java | 214 + .../ProductOfferingPriceApiController.java | 188 + .../pcm620/api/ProductSpecificationApi.java | 214 + .../ProductSpecificationApiController.java | 171 + .../osl/tmf/pcm620/api/RFC3339DateFormat.java | 41 + .../pcm620/model/BundledProductOffering.java | 269 ++ .../model/BundledProductOfferingOption.java | 160 + ...ndledProductOfferingPriceRelationship.java | 113 + .../model/BundledProductSpecification.java | 255 ++ .../etsi/osl/tmf/pcm620/model/Catalog.java | 268 ++ .../tmf/pcm620/model/CatalogBatchEvent.java | 380 ++ .../model/CatalogBatchEventPayload.java | 102 + .../osl/tmf/pcm620/model/CatalogCreate.java | 125 + .../tmf/pcm620/model/CatalogCreateEvent.java | 380 ++ .../model/CatalogCreateEventPayload.java | 102 + .../tmf/pcm620/model/CatalogDeleteEvent.java | 380 ++ .../model/CatalogDeleteEventPayload.java | 102 + .../osl/tmf/pcm620/model/CatalogUpdate.java | 374 ++ .../etsi/osl/tmf/pcm620/model/Category.java | 304 ++ .../osl/tmf/pcm620/model/CategoryCreate.java | 135 + .../tmf/pcm620/model/CategoryCreateEvent.java | 380 ++ .../model/CategoryCreateEventPayload.java | 102 + .../tmf/pcm620/model/CategoryDeleteEvent.java | 380 ++ .../model/CategoryDeleteEventPayload.java | 102 + .../osl/tmf/pcm620/model/CategoryRef.java | 146 + .../osl/tmf/pcm620/model/CategoryUpdate.java | 398 ++ .../etsi/osl/tmf/pcm620/model/ChannelRef.java | 142 + .../osl/tmf/pcm620/model/ConstraintRef.java | 143 + .../etsi/osl/tmf/pcm620/model/EntityRef.java | 252 ++ .../org/etsi/osl/tmf/pcm620/model/Error.java | 278 ++ .../tmf/pcm620/model/EventSubscription.java | 153 + .../pcm620/model/EventSubscriptionInput.java | 127 + .../etsi/osl/tmf/pcm620/model/ExportJob.java | 405 ++ .../osl/tmf/pcm620/model/ExportJobCreate.java | 357 ++ .../etsi/osl/tmf/pcm620/model/ImportJob.java | 380 ++ .../osl/tmf/pcm620/model/ImportJobCreate.java | 332 ++ .../osl/tmf/pcm620/model/JobStateType.java | 60 + .../tmf/pcm620/model/MarketSegmentRef.java | 139 + .../org/etsi/osl/tmf/pcm620/model/Money.java | 127 + .../etsi/osl/tmf/pcm620/model/PlaceRef.java | 136 + .../pcm620/model/PricingLogicAlgorithm.java | 144 + .../osl/tmf/pcm620/model/ProductOffering.java | 738 ++++ ...ductOfferingAttributeValueChangeEvent.java | 355 ++ ...eringAttributeValueChangeEventPayload.java | 102 + .../pcm620/model/ProductOfferingCreate.java | 155 + .../model/ProductOfferingCreateEvent.java | 380 ++ .../ProductOfferingCreateEventPayload.java | 102 + .../model/ProductOfferingDeleteEvent.java | 380 ++ .../ProductOfferingDeleteEventPayload.java | 102 + .../pcm620/model/ProductOfferingPrice.java | 645 +++ ...fferingPriceAttributeValueChangeEvent.java | 355 ++ ...PriceAttributeValueChangeEventPayload.java | 102 + .../model/ProductOfferingPriceCreate.java | 153 + .../ProductOfferingPriceCreateEvent.java | 380 ++ ...roductOfferingPriceCreateEventPayload.java | 102 + .../ProductOfferingPriceDeleteEvent.java | 380 ++ ...roductOfferingPriceDeleteEventPayload.java | 102 + .../pcm620/model/ProductOfferingPriceRef.java | 138 + .../ProductOfferingPriceRelationship.java | 139 + .../ProductOfferingPriceStateChangeEvent.java | 380 ++ ...tOfferingPriceStateChangeEventPayload.java | 102 + .../model/ProductOfferingPriceUpdate.java | 736 ++++ .../tmf/pcm620/model/ProductOfferingRef.java | 141 + .../ProductOfferingStateChangeEvent.java | 380 ++ ...roductOfferingStateChangeEventPayload.java | 102 + .../tmf/pcm620/model/ProductOfferingTerm.java | 128 + .../pcm620/model/ProductOfferingUpdate.java | 809 ++++ .../pcm620/model/ProductSpecification.java | 524 +++ .../ProductSpecificationCharacteristic.java | 382 ++ ...ecificationCharacteristicRelationship.java | 171 + ...oductSpecificationCharacteristicValue.java | 351 ++ ...ctSpecificationCharacteristicValueUse.java | 339 ++ .../model/ProductSpecificationCreate.java | 144 + .../ProductSpecificationCreateEvent.java | 380 ++ ...roductSpecificationCreateEventPayload.java | 102 + .../ProductSpecificationDeleteEvent.java | 380 ++ ...roductSpecificationDeleteEventPayload.java | 102 + .../pcm620/model/ProductSpecificationRef.java | 191 + .../ProductSpecificationRelationship.java | 172 + .../model/ProductSpecificationUpdate.java | 628 +++ .../pcm620/model/ResourceCandidateRef.java | 139 + .../org/etsi/osl/tmf/pcm620/model/SLARef.java | 137 + .../tmf/pcm620/model/ServiceCandidateRef.java | 132 + .../tmf/pcm620/model/TargetProductSchema.java | 92 + .../tmf/pcm620/model/TargetServiceSchema.java | 153 + .../etsi/osl/tmf/pcm620/model/TaxItem.java | 160 + .../tmf/pcm620/repo/AttachmentRepository.java | 39 + .../pcm620/repo/ProductCatalogRepository.java | 37 + .../repo/ProductCategoriesRepository.java | 38 + .../repo/ProductOfferingPriceRepository.java | 38 + .../repo/ProductOfferingRepository.java | 38 + .../repo/ProductSpecificationRepository.java | 38 + .../reposervices/AttachmentRepoService.java | 58 + .../ProductCatalogRepoService.java | 135 + .../ProductCategoryRepoService.java | 324 ++ .../ProductOfferingPriceRepoService.java | 354 ++ .../ProductOfferingRepoService.java | 546 +++ .../ProductSpecificationRepoService.java | 601 +++ .../etsi/osl/tmf/pm632/api/ApiException.java | 30 + .../osl/tmf/pm632/api/ApiOriginFilter.java | 51 + .../osl/tmf/pm632/api/ApiResponseMessage.java | 89 + .../org/etsi/osl/tmf/pm632/api/HubApi.java | 119 + .../osl/tmf/pm632/api/HubApiController.java | 56 + .../etsi/osl/tmf/pm632/api/IndividualApi.java | 215 + .../pm632/api/IndividualApiController.java | 202 + .../pm632/api/IndividualApiRouteBuilder.java | 111 + .../etsi/osl/tmf/pm632/api/ListenerApi.java | 320 ++ .../tmf/pm632/api/ListenerApiController.java | 56 + .../osl/tmf/pm632/api/NotFoundException.java | 30 + .../osl/tmf/pm632/api/OrganizationApi.java | 215 + .../pm632/api/OrganizationApiController.java | 179 + .../api/OrganizationApiRouteBuilder.java | 110 + .../OrganizationApiRouteBuilderEvents.java | 112 + .../osl/tmf/pm632/model/Characteristic.java | 161 + .../osl/tmf/pm632/model/ContactMedium.java | 199 + .../etsi/osl/tmf/pm632/model/Disability.java | 160 + .../etsi/osl/tmf/pm632/model/EntityRef.java | 252 ++ .../org/etsi/osl/tmf/pm632/model/Error.java | 278 ++ .../tmf/pm632/model/EventSubscription.java | 153 + .../pm632/model/EventSubscriptionInput.java | 127 + .../tmf/pm632/model/ExternalReference.java | 110 + .../etsi/osl/tmf/pm632/model/Individual.java | 1119 ++++++ .../IndividualAttributeValueChangeEvent.java | 355 ++ ...idualAttributeValueChangeEventPayload.java | 102 + .../osl/tmf/pm632/model/IndividualCreate.java | 139 + .../pm632/model/IndividualCreateEvent.java | 380 ++ .../model/IndividualCreateEventPayload.java | 102 + .../pm632/model/IndividualDeleteEvent.java | 380 ++ .../model/IndividualDeleteEventPayload.java | 102 + .../pm632/model/IndividualIdentification.java | 253 ++ .../model/IndividualStateChangeEvent.java | 380 ++ .../IndividualStateChangeEventPayload.java | 102 + .../tmf/pm632/model/IndividualStateType.java | 58 + .../osl/tmf/pm632/model/IndividualUpdate.java | 1079 +++++ .../osl/tmf/pm632/model/LanguageAbility.java | 287 ++ .../tmf/pm632/model/MediumCharacteristic.java | 371 ++ .../osl/tmf/pm632/model/Organization.java | 670 ++++ ...OrganizationAttributeValueChangeEvent.java | 355 ++ ...ationAttributeValueChangeEventPayload.java | 102 + .../model/OrganizationChildRelationship.java | 139 + .../tmf/pm632/model/OrganizationCreate.java | 119 + .../pm632/model/OrganizationCreateEvent.java | 380 ++ .../model/OrganizationCreateEventPayload.java | 102 + .../pm632/model/OrganizationDeleteEvent.java | 380 ++ .../model/OrganizationDeleteEventPayload.java | 102 + .../model/OrganizationIdentification.java | 247 ++ .../model/OrganizationParentRelationship.java | 139 + .../osl/tmf/pm632/model/OrganizationRef.java | 129 + .../model/OrganizationStateChangeEvent.java | 380 ++ .../OrganizationStateChangeEventPayload.java | 102 + .../pm632/model/OrganizationStateType.java | 58 + .../tmf/pm632/model/OrganizationUpdate.java | 708 ++++ .../tmf/pm632/model/OtherNameIndividual.java | 387 ++ .../pm632/model/OtherNameOrganization.java | 159 + .../org/etsi/osl/tmf/pm632/model/Party.java | 323 ++ .../tmf/pm632/model/PartyCreditProfile.java | 211 + .../org/etsi/osl/tmf/pm632/model/Skill.java | 211 + .../osl/tmf/pm632/model/TaxDefinition.java | 155 + .../pm632/model/TaxExemptionCertificate.java | 282 ++ .../tmf/pm632/repo/IndividualRepository.java | 43 + .../pm632/repo/OrganizationRepository.java | 45 + .../reposervices/IndividualRepoService.java | 221 ++ .../reposervices/OrganizationRepoService.java | 404 ++ .../etsi/osl/tmf/po622/api/ApiException.java | 29 + .../osl/tmf/po622/api/ApiOriginFilter.java | 50 + .../osl/tmf/po622/api/ApiResponseMessage.java | 88 + .../tmf/po622/api/CancelProductOrderApi.java | 163 + .../api/CancelProductOrderApiController.java | 53 + .../org/etsi/osl/tmf/po622/api/HubApi.java | 119 + .../osl/tmf/po622/api/HubApiController.java | 56 + .../etsi/osl/tmf/po622/api/ListenerApi.java | 327 ++ .../tmf/po622/api/ListenerApiController.java | 56 + .../osl/tmf/po622/api/NotFoundException.java | 29 + .../osl/tmf/po622/api/ProductOrderApi.java | 220 ++ .../po622/api/ProductOrderApiController.java | 55 + .../osl/tmf/po622/model/AgreementItemRef.java | 267 ++ .../osl/tmf/po622/model/AgreementRef.java | 243 ++ .../org/etsi/osl/tmf/po622/model/Any.java | 68 + .../osl/tmf/po622/model/AppointmentRef.java | 243 ++ .../tmf/po622/model/BillingAccountRef.java | 243 ++ .../etsi/osl/tmf/po622/model/CancelOrder.java | 294 ++ .../tmf/po622/model/CancelProductOrder.java | 321 ++ .../po622/model/CancelProductOrderCreate.java | 223 ++ .../model/CancelProductOrderCreateEvent.java | 366 ++ .../CancelProductOrderCreateEventPayload.java | 99 + ...lProductOrderInformationRequiredEvent.java | 342 ++ ...tOrderInformationRequiredEventPayload.java | 99 + .../CancelProductOrderStateChangeEvent.java | 366 ++ ...elProductOrderStateChangeEventPayload.java | 99 + .../osl/tmf/po622/model/Characteristic.java | 222 ++ .../etsi/osl/tmf/po622/model/EntityRef.java | 243 ++ .../org/etsi/osl/tmf/po622/model/Error.java | 268 ++ .../tmf/po622/model/EventSubscription.java | 148 + .../po622/model/EventSubscriptionInput.java | 123 + .../org/etsi/osl/tmf/po622/model/Money.java | 121 + .../tmf/po622/model/OrderItemActionType.java | 55 + .../po622/model/OrderItemRelationship.java | 192 + .../etsi/osl/tmf/po622/model/OrderPrice.java | 376 ++ .../etsi/osl/tmf/po622/model/OrderTerm.java | 218 + .../etsi/osl/tmf/po622/model/PaymentRef.java | 243 ++ .../org/etsi/osl/tmf/po622/model/Place.java | 217 + .../org/etsi/osl/tmf/po622/model/Price.java | 244 ++ .../osl/tmf/po622/model/PriceAlteration.java | 367 ++ .../org/etsi/osl/tmf/po622/model/Product.java | 856 ++++ .../po622/model/ProductOfferingPriceRef.java | 243 ++ .../ProductOfferingQualificationItemRef.java | 316 ++ .../ProductOfferingQualificationRef.java | 243 ++ .../tmf/po622/model/ProductOfferingRef.java | 243 ++ .../osl/tmf/po622/model/ProductOrder.java | 838 ++++ ...ProductOrderAttributeValueChangeEvent.java | 342 ++ ...OrderAttributeValueChangeEventPayload.java | 99 + .../tmf/po622/model/ProductOrderCreate.java | 690 ++++ .../po622/model/ProductOrderCreateEvent.java | 366 ++ .../model/ProductOrderCreateEventPayload.java | 99 + .../po622/model/ProductOrderDeleteEvent.java | 366 ++ .../model/ProductOrderDeleteEventPayload.java | 99 + .../ProductOrderInformationRequiredEvent.java | 342 ++ ...tOrderInformationRequiredEventPayload.java | 99 + .../osl/tmf/po622/model/ProductOrderItem.java | 630 +++ .../model/ProductOrderItemStateType.java | 61 + .../osl/tmf/po622/model/ProductOrderRef.java | 243 ++ .../model/ProductOrderStateChangeEvent.java | 366 ++ .../ProductOrderStateChangeEventPayload.java | 99 + .../po622/model/ProductOrderStateType.java | 62 + .../tmf/po622/model/ProductOrderUpdate.java | 765 ++++ .../osl/tmf/po622/model/ProductPrice.java | 379 ++ .../etsi/osl/tmf/po622/model/ProductRef.java | 242 ++ .../tmf/po622/model/ProductRefOrValue.java | 880 +++++ .../tmf/po622/model/ProductRelationship.java | 198 + .../po622/model/ProductSpecificationRef.java | 293 ++ .../tmf/po622/model/ProductStatusType.java | 59 + .../etsi/osl/tmf/po622/model/ProductTerm.java | 244 ++ .../osl/tmf/po622/model/QuoteItemRef.java | 316 ++ .../etsi/osl/tmf/po622/model/QuoteRef.java | 243 ++ .../osl/tmf/po622/model/RelatedChannel.java | 267 ++ .../po622/model/RelatedPlaceRefOrValue.java | 267 ++ .../po622/model/RelatedProductOrderItem.java | 292 ++ .../tmf/po622/model/TargetProductSchema.java | 148 + .../osl/tmf/po622/model/TaskStateType.java | 55 + .../etsi/osl/tmf/prm669/api/ApiException.java | 30 + .../osl/tmf/prm669/api/ApiOriginFilter.java | 51 + .../tmf/prm669/api/ApiResponseMessage.java | 89 + .../org/etsi/osl/tmf/prm669/api/HubApi.java | 119 + .../osl/tmf/prm669/api/HubApiController.java | 56 + .../etsi/osl/tmf/prm669/api/ListenerApi.java | 192 + .../tmf/prm669/api/ListenerApiController.java | 56 + .../osl/tmf/prm669/api/NotFoundException.java | 30 + .../etsi/osl/tmf/prm669/api/PartyRoleApi.java | 215 + .../prm669/api/PartyRoleApiController.java | 56 + .../osl/tmf/prm669/api/RFC3339DateFormat.java | 41 + .../osl/tmf/prm669/model/Characteristic.java | 229 ++ .../osl/tmf/prm669/model/ContactMedium.java | 255 ++ .../osl/tmf/prm669/model/CreditProfile.java | 256 ++ .../etsi/osl/tmf/prm669/model/EntityRef.java | 252 ++ .../org/etsi/osl/tmf/prm669/model/Error.java | 278 ++ .../tmf/prm669/model/EventSubscription.java | 153 + .../prm669/model/EventSubscriptionInput.java | 127 + .../prm669/model/MediumCharacteristic.java | 425 ++ .../etsi/osl/tmf/prm669/model/PartyRole.java | 577 +++ .../PartyRoleAttributeValueChangeEvent.java | 355 ++ ...yRoleAttributeValueChangeEventPayload.java | 102 + .../osl/tmf/prm669/model/PartyRoleCreate.java | 529 +++ .../prm669/model/PartyRoleCreateEvent.java | 380 ++ .../model/PartyRoleCreateEventPayload.java | 102 + .../prm669/model/PartyRoleDeleteEvent.java | 380 ++ .../model/PartyRoleDeleteEventPayload.java | 102 + .../model/PartyRoleStateChangeEvent.java | 380 ++ .../PartyRoleStateChangeEventPayload.java | 102 + .../osl/tmf/prm669/model/PartyRoleUpdate.java | 527 +++ .../osl/tmf/prm669/model/RelatedParty.java | 209 + .../etsi/osl/tmf/rcm634/api/ApiException.java | 29 + .../osl/tmf/rcm634/api/ApiOriginFilter.java | 50 + .../tmf/rcm634/api/ApiResponseMessage.java | 88 + .../etsi/osl/tmf/rcm634/api/ExportJobApi.java | 186 + .../rcm634/api/ExportJobApiController.java | 53 + .../org/etsi/osl/tmf/rcm634/api/HubApi.java | 119 + .../osl/tmf/rcm634/api/HubApiController.java | 56 + .../etsi/osl/tmf/rcm634/api/ImportJobApi.java | 186 + .../rcm634/api/ImportJobApiController.java | 53 + .../etsi/osl/tmf/rcm634/api/ListenerApi.java | 591 +++ .../tmf/rcm634/api/ListenerApiController.java | 56 + .../osl/tmf/rcm634/api/NotFoundException.java | 29 + .../tmf/rcm634/api/ResourceCandidateApi.java | 220 ++ .../api/ResourceCandidateApiController.java | 99 + .../tmf/rcm634/api/ResourceCatalogApi.java | 220 ++ .../api/ResourceCatalogApiController.java | 108 + .../tmf/rcm634/api/ResourceCategoryApi.java | 220 ++ .../api/ResourceCategoryApiController.java | 112 + .../rcm634/api/ResourceSpecificationApi.java | 306 ++ .../ResourceSpecificationApiController.java | 279 ++ .../ResourceSpecificationApiRouteBuilder.java | 91 + .../ConnectionPointSpecificationRef.java | 180 + .../rcm634/model/ConnectionSpecification.java | 256 ++ .../osl/tmf/rcm634/model/ConstraintRef.java | 203 + .../model/EndpointSpecificationRef.java | 242 ++ .../etsi/osl/tmf/rcm634/model/EntityRef.java | 176 + .../org/etsi/osl/tmf/rcm634/model/Error.java | 268 ++ .../tmf/rcm634/model/EventSubscription.java | 148 + .../rcm634/model/EventSubscriptionInput.java | 123 + .../etsi/osl/tmf/rcm634/model/ExportJob.java | 390 ++ .../osl/tmf/rcm634/model/ExportJobCreate.java | 344 ++ .../rcm634/model/ExportJobCreateEvent.java | 366 ++ .../model/ExportJobCreateEventPayload.java | 99 + .../model/ExportJobStateChangeEvent.java | 366 ++ .../ExportJobStateChangeEventPayload.java | 99 + .../rcm634/model/FeatureSpecification.java | 409 ++ .../FeatureSpecificationCharacteristic.java | 424 ++ ...ecificationCharacteristicRelationship.java | 250 ++ ...atureSpecificationCharacteristicValue.java | 363 ++ .../FeatureSpecificationRelationship.java | 283 ++ .../etsi/osl/tmf/rcm634/model/ImportJob.java | 366 ++ .../osl/tmf/rcm634/model/ImportJobCreate.java | 320 ++ .../rcm634/model/ImportJobCreateEvent.java | 366 ++ .../model/ImportJobCreateEventPayload.java | 99 + .../model/ImportJobStateChangeEvent.java | 366 ++ .../ImportJobStateChangeEventPayload.java | 99 + .../osl/tmf/rcm634/model/JobStateType.java | 55 + .../model/LogicalResourceSpecification.java | 44 + .../LogicalResourceSpecificationCreate.java | 98 + .../LogicalResourceSpecificationUpdate.java | 24 + .../model/PhysicalResourceSpecification.java | 245 ++ .../PhysicalResourceSpecificationCreate.java | 116 + .../PhysicalResourceSpecificationUpdate.java | 197 + .../tmf/rcm634/model/ResourceCandidate.java | 230 ++ .../model/ResourceCandidateChangeEvent.java | 366 ++ .../ResourceCandidateChangeEventPayload.java | 99 + .../rcm634/model/ResourceCandidateCreate.java | 134 + .../model/ResourceCandidateCreateEvent.java | 366 ++ .../ResourceCandidateCreateEventPayload.java | 99 + .../model/ResourceCandidateDeleteEvent.java | 366 ++ .../ResourceCandidateDeleteEventPayload.java | 99 + .../rcm634/model/ResourceCandidateRef.java | 152 + .../rcm634/model/ResourceCandidateUpdate.java | 370 ++ .../osl/tmf/rcm634/model/ResourceCatalog.java | 236 ++ .../model/ResourceCatalogChangeEvent.java | 366 ++ .../ResourceCatalogChangeEventPayload.java | 99 + .../rcm634/model/ResourceCatalogCreate.java | 130 + .../model/ResourceCatalogCreateEvent.java | 366 ++ .../ResourceCatalogCreateEventPayload.java | 99 + .../model/ResourceCatalogDeleteEvent.java | 366 ++ .../ResourceCatalogDeleteEventPayload.java | 99 + .../rcm634/model/ResourceCatalogUpdate.java | 347 ++ .../tmf/rcm634/model/ResourceCategory.java | 304 ++ .../model/ResourceCategoryChangeEvent.java | 366 ++ .../ResourceCategoryChangeEventPayload.java | 99 + .../rcm634/model/ResourceCategoryCreate.java | 138 + .../model/ResourceCategoryCreateEvent.java | 366 ++ .../ResourceCategoryCreateEventPayload.java | 99 + .../model/ResourceCategoryDeleteEvent.java | 366 ++ .../ResourceCategoryDeleteEventPayload.java | 99 + .../tmf/rcm634/model/ResourceCategoryRef.java | 131 + .../rcm634/model/ResourceCategoryUpdate.java | 436 ++ .../model/ResourceFunctionSpecification.java | 190 + .../ResourceFunctionSpecificationCreate.java | 98 + .../ResourceFunctionSpecificationUpdate.java | 24 + .../model/ResourceGraphSpecification.java | 190 + .../model/ResourceGraphSpecificationRef.java | 156 + ...esourceGraphSpecificationRelationship.java | 166 + .../model/ResourceSpecCharRelationship.java | 260 ++ .../rcm634/model/ResourceSpecification.java | 617 +++ .../ResourceSpecificationChangeEvent.java | 366 ++ ...sourceSpecificationChangeEventPayload.java | 99 + .../ResourceSpecificationCharacteristic.java | 639 +++ ...ecificationCharacteristicRelationship.java | 290 ++ ...ourceSpecificationCharacteristicValue.java | 382 ++ .../model/ResourceSpecificationCreate.java | 119 + .../ResourceSpecificationCreateEvent.java | 366 ++ ...sourceSpecificationCreateEventPayload.java | 99 + .../ResourceSpecificationDeleteEvent.java | 366 ++ ...sourceSpecificationDeleteEventPayload.java | 99 + .../model/ResourceSpecificationRef.java | 181 + .../ResourceSpecificationRelationship.java | 451 +++ .../model/ResourceSpecificationUpdate.java | 599 +++ .../rcm634/model/TargetResourceSchema.java | 151 + .../rcm634/model/TargetResourceSchemaRef.java | 85 + .../repo/ResourceCandidateRepository.java | 39 + .../repo/ResourceCatalogRepository.java | 39 + .../repo/ResourceCategoriesRepository.java | 39 + .../repo/ResourceSpecificationRepository.java | 55 + .../ResourceCandidateRepoService.java | 176 + .../ResourceCatalogRepoService.java | 183 + .../ResourceCategoryRepoService.java | 293 ++ .../ResourceSpecificationRepoService.java | 757 ++++ .../etsi/osl/tmf/ri639/api/ApiException.java | 10 + .../osl/tmf/ri639/api/ApiOriginFilter.java | 31 + .../osl/tmf/ri639/api/ApiResponseMessage.java | 69 + .../org/etsi/osl/tmf/ri639/api/HubApi.java | 100 + .../osl/tmf/ri639/api/HubApiController.java | 37 + .../etsi/osl/tmf/ri639/api/ListenerApi.java | 176 + .../tmf/ri639/api/ListenerApiController.java | 34 + .../osl/tmf/ri639/api/NotFoundException.java | 10 + .../etsi/osl/tmf/ri639/api/ResourceApi.java | 207 + .../tmf/ri639/api/ResourceApiController.java | 128 + .../ri639/api/ResourceApiRouteBuilder.java | 122 + .../api/ResourceApiRouteBuilderEvents.java | 109 + .../etsi/osl/tmf/ri639/model/Addressable.java | 78 + .../osl/tmf/ri639/model/Characteristic.java | 198 + .../model/CharacteristicRelationship.java | 111 + .../osl/tmf/ri639/model/ConstraintRef.java | 242 ++ .../org/etsi/osl/tmf/ri639/model/Entity.java | 82 + .../etsi/osl/tmf/ri639/model/EntityRef.java | 112 + .../org/etsi/osl/tmf/ri639/model/Error.java | 249 ++ .../tmf/ri639/model/EventSubscription.java | 129 + .../ri639/model/EventSubscriptionInput.java | 104 + .../etsi/osl/tmf/ri639/model/Extensible.java | 126 + .../org/etsi/osl/tmf/ri639/model/Feature.java | 267 ++ .../tmf/ri639/model/FeatureRelationship.java | 136 + .../osl/tmf/ri639/model/LogicalResource.java | 130 + .../osl/tmf/ri639/model/PhysicalResource.java | 274 ++ .../org/etsi/osl/tmf/ri639/model/Place.java | 198 + .../ri639/model/RelatedPlaceRefOrValue.java | 198 + .../etsi/osl/tmf/ri639/model/Resource.java | 680 ++++ .../ResourceAdministrativeStateType.java | 35 + .../ResourceAttributeValueChangeEvent.java | 336 ++ ...ourceAttributeValueChangeEventPayload.java | 80 + ...ourceAttributeValueChangeNotification.java | 116 + .../osl/tmf/ri639/model/ResourceCreate.java | 18 + .../tmf/ri639/model/ResourceCreateEvent.java | 312 ++ .../model/ResourceCreateEventPayload.java | 80 + .../model/ResourceCreateNotification.java | 120 + .../tmf/ri639/model/ResourceDeleteEvent.java | 299 ++ .../model/ResourceDeleteEventPayload.java | 81 + .../model/ResourceOperationalStateType.java | 34 + .../tmf/ri639/model/ResourceRefOrValue.java | 33 + .../tmf/ri639/model/ResourceRelationship.java | 147 + .../ri639/model/ResourceStateChangeEvent.java | 299 ++ .../ResourceStateChangeEventPayload.java | 80 + .../ResourceStateChangeNotification.java | 116 + .../tmf/ri639/model/ResourceStatusType.java | 38 + .../osl/tmf/ri639/model/ResourceUpdate.java | 710 ++++ .../ri639/model/ResourceUsageStateType.java | 33 + .../tmf/ri639/repo/ResourceRepository.java | 60 + .../reposervices/ResourceRepoService.java | 598 +++ .../etsi/osl/tmf/ro652/api/ApiException.java | 10 + .../osl/tmf/ro652/api/ApiOriginFilter.java | 31 + .../osl/tmf/ro652/api/ApiResponseMessage.java | 69 + .../tmf/ro652/api/CancelResourceOrderApi.java | 144 + .../api/CancelResourceOrderApiController.java | 34 + .../org/etsi/osl/tmf/ro652/api/HubApi.java | 100 + .../osl/tmf/ro652/api/HubApiController.java | 37 + .../etsi/osl/tmf/ro652/api/ListenerApi.java | 308 ++ .../tmf/ro652/api/ListenerApiController.java | 37 + .../osl/tmf/ro652/api/NotFoundException.java | 10 + .../osl/tmf/ro652/api/ResourceOrderApi.java | 207 + .../ro652/api/ResourceOrderApiController.java | 115 + .../osl/tmf/ro652/model/AppointmentRef.java | 224 ++ .../etsi/osl/tmf/ro652/model/CancelOrder.java | 275 ++ .../tmf/ro652/model/CancelResourceOrder.java | 302 ++ .../model/CancelResourceOrderCreate.java | 204 + .../model/CancelResourceOrderCreateEvent.java | 347 ++ ...CancelResourceOrderCreateEventPayload.java | 80 + ...ResourceOrderInformationRequiredEvent.java | 323 ++ ...eOrderInformationRequiredEventPayload.java | 80 + .../CancelResourceOrderStateChangeEvent.java | 347 ++ ...lResourceOrderStateChangeEventPayload.java | 80 + .../model/CharacteristicRelationship.java | 174 + .../etsi/osl/tmf/ro652/model/EntityRef.java | 224 ++ .../tmf/ro652/model/EventSubscription.java | 129 + .../ro652/model/EventSubscriptionInput.java | 104 + .../etsi/osl/tmf/ro652/model/ExternalId.java | 202 + .../etsi/osl/tmf/ro652/model/Quantity.java | 102 + .../ro652/model/RelatedPlaceRefOrValue.java | 248 ++ .../model/ResourceOperationalStateType.java | 34 + .../osl/tmf/ro652/model/ResourceOrder.java | 756 ++++ ...esourceOrderAttributeValueChangeEvent.java | 323 ++ ...OrderAttributeValueChangeEventPayload.java | 80 + .../tmf/ro652/model/ResourceOrderCreate.java | 664 ++++ .../ro652/model/ResourceOrderCreateEvent.java | 347 ++ .../ResourceOrderCreateEventPayload.java | 80 + .../ro652/model/ResourceOrderDeleteEvent.java | 347 ++ .../ResourceOrderDeleteEventPayload.java | 80 + ...ResourceOrderInformationRequiredEvent.java | 323 ++ ...eOrderInformationRequiredEventPayload.java | 80 + .../tmf/ro652/model/ResourceOrderItem.java | 333 ++ .../tmf/ro652/model/ResourceOrderItemRef.java | 221 ++ .../model/ResourceOrderItemRelationship.java | 175 + .../osl/tmf/ro652/model/ResourceOrderRef.java | 199 + .../model/ResourceOrderStateChangeEvent.java | 347 ++ .../ResourceOrderStateChangeEventPayload.java | 80 + .../ro652/model/ResourceOrderStateType.java | 71 + .../tmf/ro652/model/ResourceOrderUpdate.java | 530 +++ .../osl/tmf/ro652/model/TaskStateType.java | 36 + .../reposervices/ResourceOrderMapper.java | 16 + .../ResourceOrderRepoService.java | 336 ++ .../etsi/osl/tmf/rpm685/api/ApiException.java | 10 + .../osl/tmf/rpm685/api/ApiOriginFilter.java | 31 + .../tmf/rpm685/api/ApiResponseMessage.java | 69 + .../tmf/rpm685/api/AvailabilityCheckApi.java | 77 + .../api/AvailabilityCheckApiController.java | 73 + .../etsi/osl/tmf/rpm685/api/ExtractApi.java | 77 + .../tmf/rpm685/api/ExtractApiController.java | 76 + .../org/etsi/osl/tmf/rpm685/api/HubApi.java | 100 + .../osl/tmf/rpm685/api/HubApiController.java | 36 + .../osl/tmf/rpm685/api/NotFoundException.java | 10 + .../org/etsi/osl/tmf/rpm685/api/PushApi.java | 77 + .../osl/tmf/rpm685/api/PushApiController.java | 76 + .../osl/tmf/rpm685/api/ReservationApi.java | 204 + .../rpm685/api/ReservationApiController.java | 126 + .../api/ReservationApiRouteBuilder.java | 59 + .../osl/tmf/rpm685/api/ResourcePoolApi.java | 181 + .../rpm685/api/ResourcePoolApiController.java | 133 + .../rpm685/model/ApplicableTimePeriod.java | 192 + .../rpm685/model/AppliedCapacityAmount.java | 155 + .../tmf/rpm685/model/AvailabilityCheck.java | 216 + .../rpm685/model/AvailabilityCheckCreate.java | 146 + .../etsi/osl/tmf/rpm685/model/Capacity.java | 59 + .../etsi/osl/tmf/rpm685/model/ChannelRef.java | 150 + .../org/etsi/osl/tmf/rpm685/model/Error.java | 224 ++ .../tmf/rpm685/model/EventSubscription.java | 128 + .../rpm685/model/EventSubscriptionInput.java | 103 + .../etsi/osl/tmf/rpm685/model/Extract.java | 216 + .../osl/tmf/rpm685/model/ExtractCreate.java | 163 + .../tmf/rpm685/model/ProductOfferingRef.java | 183 + .../org/etsi/osl/tmf/rpm685/model/Push.java | 215 + .../etsi/osl/tmf/rpm685/model/PushCreate.java | 166 + .../osl/tmf/rpm685/model/RequestedPeriod.java | 225 ++ .../osl/tmf/rpm685/model/Reservation.java | 354 ++ .../tmf/rpm685/model/ReservationCreate.java | 15 + .../osl/tmf/rpm685/model/ReservationItem.java | 174 + .../tmf/rpm685/model/ReservationMapper.java | 42 + .../rpm685/model/ReservationStateType.java | 36 + .../tmf/rpm685/model/ReservationUpdate.java | 468 +++ .../rpm685/model/ResourceCapacityDemand.java | 204 + .../osl/tmf/rpm685/model/ResourcePool.java | 156 + .../tmf/rpm685/model/ResourcePoolCreate.java | 15 + .../tmf/rpm685/model/ResourcePoolMapper.java | 42 + .../osl/tmf/rpm685/model/ResourcePoolRef.java | 150 + .../tmf/rpm685/model/ResourcePoolUpdate.java | 224 ++ .../rpm685/repo/ResourcePoolRepository.java | 26 + .../repo/ResourceReservationRepository.java | 90 + .../reposervices/ResourcePoolRepoService.java | 259 ++ .../ResourceReservationRepoService.java | 155 + .../etsi/osl/tmf/sac640/api/ApiException.java | 29 + .../osl/tmf/sac640/api/ApiOriginFilter.java | 50 + .../tmf/sac640/api/ApiResponseMessage.java | 88 + .../org/etsi/osl/tmf/sac640/api/HubApi.java | 119 + .../osl/tmf/sac640/api/HubApiController.java | 55 + .../etsi/osl/tmf/sac640/api/ListenerApi.java | 327 ++ .../tmf/sac640/api/ListenerApiController.java | 56 + .../etsi/osl/tmf/sac640/api/MonitorApi.java | 130 + .../tmf/sac640/api/MonitorApiController.java | 53 + .../osl/tmf/sac640/api/NotFoundException.java | 29 + .../tmf/sac640/api/ServiceApiController.java | 41 + .../org/etsi/osl/tmf/sac640/model/Error.java | 268 ++ .../tmf/sac640/model/EventSubscription.java | 148 + .../sac640/model/EventSubscriptionInput.java | 123 + .../etsi/osl/tmf/sac640/model/HeaderItem.java | 196 + .../etsi/osl/tmf/sac640/model/Monitor.java | 292 ++ .../MonitorAttributeValueChangeEvent.java | 99 + ...nitorAttributeValueChangeNotification.java | 221 ++ .../tmf/sac640/model/MonitorCreateEvent.java | 99 + .../model/MonitorCreateNotification.java | 221 ++ .../tmf/sac640/model/MonitorDeleteEvent.java | 99 + .../model/MonitorDeleteNotification.java | 221 ++ .../sac640/model/MonitorStateChangeEvent.java | 99 + .../model/MonitorStateChangeNotification.java | 221 ++ .../etsi/osl/tmf/sac640/model/Request.java | 254 ++ .../etsi/osl/tmf/sac640/model/Response.java | 230 ++ .../etsi/osl/tmf/scm633/api/ExportJobApi.java | 113 + .../scm633/api/ExportJobApiController633.java | 105 + .../org/etsi/osl/tmf/scm633/api/HubApi.java | 77 + .../osl/tmf/scm633/api/HubApiController.java | 75 + .../etsi/osl/tmf/scm633/api/ImportJobApi.java | 113 + .../scm633/api/ImportJobApiController.java | 105 + .../etsi/osl/tmf/scm633/api/ListenerApi.java | 276 ++ .../tmf/scm633/api/ListenerApiController.java | 249 ++ .../tmf/scm633/api/ServiceCandidateApi.java | 128 + .../api/ServiceCandidateApiController.java | 111 + .../osl/tmf/scm633/api/ServiceCatalogApi.java | 128 + .../api/ServiceCatalogApiController.java | 108 + .../tmf/scm633/api/ServiceCategoryApi.java | 129 + .../api/ServiceCategoryApiController.java | 138 + .../scm633/api/ServiceSpecificationApi.java | 345 ++ .../ServiceSpecificationApiController.java | 381 ++ .../ServiceSpecificationApiRouteBuilder.java | 129 + ...erviceSpecificationApiRouteBuilderNSD.java | 93 + .../org/etsi/osl/tmf/scm633/model/Error.java | 278 ++ .../tmf/scm633/model/EventSubscription.java | 153 + .../scm633/model/EventSubscriptionInput.java | 127 + .../etsi/osl/tmf/scm633/model/ExportJob.java | 404 ++ .../osl/tmf/scm633/model/ExportJobCreate.java | 356 ++ .../etsi/osl/tmf/scm633/model/ImportJob.java | 379 ++ .../osl/tmf/scm633/model/ImportJobCreate.java | 331 ++ .../tmf/scm633/model/ServiceCandidate.java | 261 ++ .../model/ServiceCandidateChangeEvent.java | 102 + .../ServiceCandidateChangeNotification.java | 229 ++ .../scm633/model/ServiceCandidateCreate.java | 122 + .../model/ServiceCandidateCreateEvent.java | 102 + .../ServiceCandidateCreateNotification.java | 229 ++ .../model/ServiceCandidateDeleteEvent.java | 102 + .../ServiceCandidateDeleteNotification.java | 229 ++ .../tmf/scm633/model/ServiceCandidateRef.java | 158 + .../scm633/model/ServiceCandidateUpdate.java | 347 ++ .../osl/tmf/scm633/model/ServiceCatalog.java | 292 ++ .../model/ServiceCatalogBatchEvent.java | 102 + .../ServiceCatalogBatchNotification.java | 229 ++ .../model/ServiceCatalogChangeEvent.java | 102 + .../ServiceCatalogChangeNotification.java | 229 ++ .../scm633/model/ServiceCatalogCreate.java | 130 + .../model/ServiceCatalogCreateEvent.java | 102 + .../ServiceCatalogCreateNotification.java | 229 ++ .../model/ServiceCatalogDeleteEvent.java | 102 + .../ServiceCatalogDeleteNotification.java | 229 ++ .../scm633/model/ServiceCatalogUpdate.java | 349 ++ .../osl/tmf/scm633/model/ServiceCategory.java | 314 ++ .../model/ServiceCategoryChangeEvent.java | 102 + .../ServiceCategoryChangeNotification.java | 229 ++ .../scm633/model/ServiceCategoryCreate.java | 130 + .../model/ServiceCategoryCreateEvent.java | 102 + .../ServiceCategoryCreateNotification.java | 229 ++ .../model/ServiceCategoryDeleteEvent.java | 102 + .../ServiceCategoryDeleteNotification.java | 229 ++ .../tmf/scm633/model/ServiceCategoryRef.java | 138 + .../scm633/model/ServiceCategoryUpdate.java | 398 ++ .../model/ServiceLevelSpecificationRef.java | 149 + .../model/ServiceSpecCharRelationship.java | 287 ++ .../model/ServiceSpecCharacteristic.java | 623 +++ .../model/ServiceSpecCharacteristicValue.java | 347 ++ .../scm633/model/ServiceSpecRelationship.java | 218 + .../scm633/model/ServiceSpecification.java | 572 +++ .../ServiceSpecificationChangeEvent.java | 102 + ...erviceSpecificationChangeNotification.java | 229 ++ .../model/ServiceSpecificationCreate.java | 141 + .../ServiceSpecificationCreateEvent.java | 102 + ...erviceSpecificationCreateNotification.java | 229 ++ .../ServiceSpecificationDeleteEvent.java | 102 + ...erviceSpecificationDeleteNotification.java | 229 ++ .../model/ServiceSpecificationUpdate.java | 582 +++ .../tmf/scm633/model/TargetServiceSchema.java | 82 + .../tmf/scm633/repo/CandidateRepository.java | 39 + .../tmf/scm633/repo/CatalogRepository.java | 42 + .../tmf/scm633/repo/CategoriesRepository.java | 41 + .../repo/ServiceSpecificationRepository.java | 45 + .../reposervices/CandidateRepoService.java | 171 + .../reposervices/CatalogRepoService.java | 145 + .../reposervices/CategoryRepoService.java | 301 ++ .../ServiceSpecificationRepoService.java | 1452 +++++++ .../etsi/osl/tmf/sim638/api/ApiException.java | 30 + .../osl/tmf/sim638/api/ApiOriginFilter.java | 51 + .../tmf/sim638/api/ApiResponseMessage.java | 89 + .../org/etsi/osl/tmf/sim638/api/HubApi.java | 119 + .../osl/tmf/sim638/api/HubApiController.java | 56 + .../etsi/osl/tmf/sim638/api/ListenerApi.java | 224 ++ .../tmf/sim638/api/ListenerApiController.java | 56 + .../osl/tmf/sim638/api/NotFoundException.java | 30 + .../osl/tmf/sim638/api/RFC3339DateFormat.java | 41 + .../etsi/osl/tmf/sim638/api/ServiceApi.java | 173 + .../tmf/sim638/api/ServiceApiController.java | 176 + .../sim638/api/ServiceApiRouteBuilder.java | 211 + .../api/ServiceApiRouteBuilderEvents.java | 114 + .../tmf/sim638/model/EServiceStartMode.java | 51 + .../org/etsi/osl/tmf/sim638/model/Error.java | 278 ++ .../tmf/sim638/model/EventSubscription.java | 153 + .../sim638/model/EventSubscriptionInput.java | 127 + .../etsi/osl/tmf/sim638/model/Service.java | 784 ++++ .../model/ServiceActionQueueAction.java | 33 + .../sim638/model/ServiceActionQueueItem.java | 170 + .../ServiceAttributeValueChangeEvent.java | 102 + ...rviceAttributeValueChangeNotification.java | 118 + .../tmf/sim638/model/ServiceBatchEvent.java | 102 + .../model/ServiceBatchNotification.java | 118 + .../osl/tmf/sim638/model/ServiceCreate.java | 127 + .../tmf/sim638/model/ServiceCreateEvent.java | 102 + .../model/ServiceCreateNotification.java | 120 + .../tmf/sim638/model/ServiceDeleteEvent.java | 102 + .../model/ServiceDeleteNotification.java | 118 + .../osl/tmf/sim638/model/ServiceOrderRef.java | 168 + .../sim638/model/ServiceStateChangeEvent.java | 102 + .../model/ServiceStateChangeNotification.java | 120 + .../osl/tmf/sim638/model/ServiceUpdate.java | 822 ++++ .../repo/ServiceActionQueueRepository.java | 38 + .../tmf/sim638/repo/ServiceRepository.java | 72 + .../sim638/service/ServiceRepoService.java | 1091 +++++ .../etsi/osl/tmf/so641/api/ApiException.java | 30 + .../osl/tmf/so641/api/ApiOriginFilter.java | 51 + .../osl/tmf/so641/api/ApiResponseMessage.java | 89 + .../org/etsi/osl/tmf/so641/api/HubApi.java | 119 + .../osl/tmf/so641/api/HubApiController.java | 56 + .../etsi/osl/tmf/so641/api/ListenerApi.java | 192 + .../tmf/so641/api/ListenerApiController.java | 56 + .../osl/tmf/so641/api/NotFoundException.java | 30 + .../osl/tmf/so641/api/ServiceOrderApi.java | 224 ++ .../so641/api/ServiceOrderApiController.java | 255 ++ .../api/ServiceOrderApiRouteBuilder.java | 172 + .../ServiceOrderApiRouteBuilderEvents.java | 138 + .../osl/tmf/so641/model/AppointmentRef.java | 153 + .../org/etsi/osl/tmf/so641/model/Error.java | 278 ++ .../tmf/so641/model/EventSubscription.java | 153 + .../so641/model/EventSubscriptionInput.java | 127 + .../osl/tmf/so641/model/ServiceOrder.java | 697 ++++ .../so641/model/ServiceOrderActionType.java | 60 + ...ServiceOrderAttributeValueChangeEvent.java | 102 + ...OrderAttributeValueChangeNotification.java | 120 + .../tmf/so641/model/ServiceOrderCreate.java | 522 +++ .../so641/model/ServiceOrderCreateEvent.java | 102 + .../model/ServiceOrderCreateNotification.java | 119 + .../so641/model/ServiceOrderDeleteEvent.java | 102 + .../model/ServiceOrderDeleteNotification.java | 120 + .../osl/tmf/so641/model/ServiceOrderItem.java | 267 ++ .../model/ServiceOrderItemRelationship.java | 136 + .../so641/model/ServiceOrderRelationship.java | 159 + .../model/ServiceOrderStateChangeEvent.java | 102 + .../ServiceOrderStateChangeNotification.java | 119 + .../so641/model/ServiceOrderStateType.java | 71 + .../tmf/so641/model/ServiceOrderUpdate.java | 555 +++ .../tmf/so641/model/ServiceRestriction.java | 490 +++ .../so641/repo/ServiceOrderRepository.java | 55 + .../reposervices/ServiceOrderRepoService.java | 989 +++++ .../etsi/osl/tmf/sqm657/api/ApiException.java | 30 + .../osl/tmf/sqm657/api/ApiOriginFilter.java | 51 + .../tmf/sqm657/api/ApiResponseMessage.java | 89 + .../org/etsi/osl/tmf/sqm657/api/HubApi.java | 119 + .../osl/tmf/sqm657/api/HubApiController.java | 56 + .../osl/tmf/sqm657/api/NotFoundException.java | 30 + .../osl/tmf/sqm657/api/RFC3339DateFormat.java | 41 + .../sqm657/api/ServiceLevelObjectiveApi.java | 216 + .../ServiceLevelObjectiveApiController.java | 56 + .../api/ServiceLevelSpecificationApi.java | 216 + ...erviceLevelSpecificationApiController.java | 56 + .../etsi/osl/tmf/sqm657/model/EntityRef.java | 178 + .../org/etsi/osl/tmf/sqm657/model/Error.java | 252 ++ .../tmf/sqm657/model/EventSubscription.java | 152 + .../sqm657/model/EventSubscriptionInput.java | 126 + .../sqm657/model/ServiceLevelObjective.java | 493 +++ .../model/ServiceLevelObjectiveCreate.java | 445 +++ .../model/ServiceLevelObjectiveRef.java | 153 + .../model/ServiceLevelObjectiveUpdate.java | 415 ++ .../model/ServiceLevelSpecConsequence.java | 201 + .../model/ServiceLevelSpecParameter.java | 338 ++ .../model/ServiceLevelSpecification.java | 313 ++ .../ServiceLevelSpecificationCreate.java | 263 ++ .../ServiceLevelSpecificationUpdate.java | 238 ++ .../etsi/osl/tmf/stm653/api/ApiException.java | 29 + .../osl/tmf/stm653/api/ApiOriginFilter.java | 50 + .../tmf/stm653/api/ApiResponseMessage.java | 88 + .../org/etsi/osl/tmf/stm653/api/HubApi.java | 119 + .../osl/tmf/stm653/api/HubApiController.java | 55 + .../etsi/osl/tmf/stm653/api/ListenerApi.java | 261 ++ .../tmf/stm653/api/ListenerApiController.java | 55 + .../osl/tmf/stm653/api/ServiceTestApi.java | 222 ++ .../stm653/api/ServiceTestApiController.java | 186 + .../api/ServiceTestSpecificationApi.java | 280 ++ ...ServiceTestSpecificationApiController.java | 276 ++ ...rviceTestSpecificationApiRouteBuilder.java | 119 + .../osl/tmf/stm653/model/Addressable.java | 121 + .../tmf/stm653/model/AppliedConsequence.java | 195 + .../model/AssociationSpecificationRef.java | 178 + .../osl/tmf/stm653/model/Characteristic.java | 274 ++ .../model/CharacteristicRelationship.java | 127 + .../model/CharacteristicSpecification.java | 635 +++ .../CharacteristicSpecificationBase.java | 434 ++ ...aracteristicSpecificationRelationship.java | 228 ++ .../CharacteristicValueSpecification.java | 327 ++ .../osl/tmf/stm653/model/ConstraintRef.java | 201 + .../etsi/osl/tmf/stm653/model/Duration.java | 123 + .../etsi/osl/tmf/stm653/model/EntityRef.java | 124 + .../tmf/stm653/model/EntitySpecification.java | 482 +++ .../EntitySpecificationRelationship.java | 265 ++ .../org/etsi/osl/tmf/stm653/model/Error.java | 268 ++ .../tmf/stm653/model/EventSubscription.java | 148 + .../stm653/model/EventSubscriptionInput.java | 123 + .../etsi/osl/tmf/stm653/model/Extensible.java | 145 + .../model/MeasureThresholdRuleViolation.java | 396 ++ .../model/MetricDefMeasureConsequence.java | 207 + .../model/MetricDefMeasureThresholdRule.java | 363 ++ .../osl/tmf/stm653/model/ServiceTest.java | 466 +++ .../ServiceTestAttributeValueChangeEvent.java | 342 ++ ...eTestAttributeValueChangeEventPayload.java | 99 + .../tmf/stm653/model/ServiceTestCreate.java | 103 + .../stm653/model/ServiceTestCreateEvent.java | 318 ++ .../model/ServiceTestCreateEventPayload.java | 99 + .../stm653/model/ServiceTestDeleteEvent.java | 318 ++ .../model/ServiceTestDeleteEventPayload.java | 99 + .../model/ServiceTestSpecRelationship.java | 213 + .../model/ServiceTestSpecification.java | 498 +++ ...pecificationAttributeValueChangeEvent.java | 342 ++ ...ationAttributeValueChangeEventPayload.java | 99 + .../model/ServiceTestSpecificationCreate.java | 138 + .../ServiceTestSpecificationCreateEvent.java | 318 ++ ...ceTestSpecificationCreateEventPayload.java | 99 + .../ServiceTestSpecificationDeleteEvent.java | 318 ++ ...ceTestSpecificationDeleteEventPayload.java | 99 + .../model/ServiceTestSpecificationRef.java | 176 + .../model/ServiceTestSpecificationUpdate.java | 632 +++ .../tmf/stm653/model/ServiceTestUpdate.java | 508 +++ .../tmf/stm653/model/TargetEntitySchema.java | 129 + .../osl/tmf/stm653/model/TestMeasure.java | 337 ++ .../stm653/model/TestMeasureDefinition.java | 377 ++ .../stm653/repo/ServiceTestRepository.java | 44 + .../ServiceTestSpecificationRepository.java | 48 + .../reposervices/ServiceTestRepoService.java | 340 ++ .../ServiceTestSpecificationRepoService.java | 473 +++ .../util/AddUserAsOwnerToRelatedParties.java | 72 + .../org/etsi/osl/tmf/util/AttachmentUtil.java | 106 + .../org/etsi/osl/tmf/util/KrokiClient.java | 47 + src/main/resources/application-testing.yml | 167 + src/main/resources/application.yml | 203 + src/main/resources/banner.txt | 11 + src/main/resources/gst.json | 3504 +++++++++++++++++ src/main/resources/logback.xml | 60 + .../gnodeb.openslice.io.json | 253 ++ .../osm-tenant.openslice.io.json | 212 + .../vim-account.openslice.io.json | 276 ++ .../vinnisb/vinnisb-exposure-L1.json | 54 + .../vinnisb/vinnisb-exposure-L2.json | 54 + .../vinnisb/vinnisb-exposure-L3.json | 54 + .../vinnisb/vinnisb-exposure-L4.json | 54 + .../resources/vinnisb/vinnisb-monitoring.json | 74 + src/main/resources/vinnisb/vinnisb-req.json | 2495 ++++++++++++ .../resources/vinnisb/vinnisb-testing.json | 112 + src/main/resources/vinnisb/vinnisb.json | 95 + .../api/AlarmManagementIntegrationTest.java | 273 ++ .../services/api/CustomerIntegrationTest.java | 201 + .../org/etsi/osl/services/api/JsonUtils.java | 39 + .../services/api/LCMRulesIntegrationTest.java | 212 + .../api/PartyManagementIntegrationTest.java | 265 ++ .../api/ProductCatalogIntegrationTest.java | 351 ++ .../api/ResourceCatalogIntegrationTest.java | 852 ++++ .../api/ResourceInventoryIntegrationTest.java | 414 ++ .../api/ResourceOrderIntegrationTest.java | 191 + .../api/ResourcePoolIntegrationTest.java | 832 ++++ .../api/ServiceCatalogIntegrationTest.java | 1236 ++++++ .../api/ServiceInventoryIntegrationTest.java | 376 ++ .../api/ServiceOrderIntegrationTest.java | 424 ++ .../ServiceTestManagementIntegrationTest.java | 144 + src/test/resources/TestServiceOrderDates.json | 1 + src/test/resources/cirros_vnf.tar.gz | Bin 0 -> 4974 bytes src/test/resources/logback-test.xml | 32 + .../resources/testPhysicalResourceSpec.json | 180 + src/test/resources/testProductCatalog.txt | 5 + src/test/resources/testProductCategory.txt | 5 + .../resources/testProductOfferingPrice.txt | 65 + .../resources/testProductOfferingSpec.json | 24 + src/test/resources/testProductSpec.json | 145 + src/test/resources/testResourceCatalog.txt | 5 + src/test/resources/testResourceCategory.txt | 5 + src/test/resources/testResourcePool.json | 86 + src/test/resources/testResourceSpec.json | 46 + src/test/resources/testServiceCatalog.txt | 5 + src/test/resources/testServiceCategory.txt | 5 + src/test/resources/testServiceSpec.json | 49 + src/test/resources/testServiceSpec2.json | 78 + src/test/resources/testServiceTest.json | 6 + src/test/resources/testServiceTestSpec.json | 15 + 1201 files changed, 253338 insertions(+), 90 deletions(-) create mode 100644 .classpath create mode 100644 .factorypath create mode 100644 .gitignore create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.apt.core.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 Dockerfile.tmfapi create mode 100644 LICENSE create mode 100644 pom.xml create mode 100644 src/main/java/org/etsi/osl/domain/model/DomainModelDefinition.java create mode 100644 src/main/java/org/etsi/osl/domain/model/ITMFRCM634_ModelTransformer.java create mode 100644 src/main/java/org/etsi/osl/domain/model/ITMFRI639_ModelTransformer.java create mode 100644 src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesCRDProperty.java create mode 100644 src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesCRDV1.java create mode 100644 src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesCRV1.java create mode 100644 src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesContextDefinition.java create mode 100644 src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesSecret.java create mode 100644 src/main/java/org/etsi/osl/sd/model/ServiceDescriptor.java create mode 100644 src/main/java/org/etsi/osl/sd/model/ServiceDescriptorAttr.java create mode 100644 src/main/java/org/etsi/osl/tmf/BootstrapRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/BootstrapResources.java create mode 100644 src/main/java/org/etsi/osl/tmf/JsonUtils.java create mode 100644 src/main/java/org/etsi/osl/tmf/LocalMysqlDialect.java create mode 100644 src/main/java/org/etsi/osl/tmf/MvcConfig.java create mode 100644 src/main/java/org/etsi/osl/tmf/OpenAPISpringBoot.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/AckAlarmsApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/AckAlarmsApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/AlarmApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/AlarmApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/AlarmApiRouteBuilder.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/AlarmApiRouteBuilderEvents.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/ApiException.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/ApiOriginFilter.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/ApiResponseMessage.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/ClearAlarmsApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/ClearAlarmsApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/CommentAlarmsApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/CommentAlarmsApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/GroupAlarmsApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/GroupAlarmsApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/HubApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/HubApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/ListenerApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/ListenerApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/NotFoundException.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/UnAckAlarmsApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/UnAckAlarmsApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/UnGroupAlarmsApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/api/UnGroupAlarmsApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AckAlarms.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AffectedService.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/Alarm.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AlarmAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AlarmAttributeValueChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AlarmCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AlarmCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AlarmCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AlarmDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AlarmDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AlarmRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AlarmRefOrValue.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AlarmStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AlarmStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AlarmStateType.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AlarmType.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AlarmUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/AlarmedObject.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarms.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/Comment.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarms.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/CrossedThresholdInformation.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/EntityRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/Error.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/EventSubscription.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/EventSubscriptionInput.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarms.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/PerceivedSeverityType.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/Place.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/ProbableCauseType.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/RelatedPlaceRefOrValue.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/ThresholdRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarms.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarms.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/repo/AckAlarmsRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/repo/AlarmRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/repo/ClearAlarmsRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/repo/CommentAlarmsRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/repo/GroupAlarmsRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/repo/UnAckAlarmsRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/repo/UnGroupAlarmsRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/reposervices/AckAlarmsRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/reposervices/AlarmRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/reposervices/ClearAlarmsRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/reposervices/CommentAlarmsRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/reposervices/GroupAlarmsRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/reposervices/UnAckAlarmsRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/am642/reposervices/UnGroupAlarmsRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/api/AgreementApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/api/AgreementApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/api/AgreementSpecificationApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/api/AgreementSpecificationApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/api/ApiException.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/api/ApiOriginFilter.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/api/ApiResponseMessage.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/api/HubApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/api/HubApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/api/NotFoundException.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/api/RFC3339DateFormat.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/Agreement.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/AgreementAttachment.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/AgreementAuthorization.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/AgreementCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/AgreementItem.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/AgreementRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecCharacteristic.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecCharacteristicValue.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecification.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecificationCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecificationRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecificationRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecificationUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/AgreementTermOrCondition.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/AgreementUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/CategoryRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/Characteristic.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/Error.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/EventSubscription.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/EventSubscriptionInput.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/PartyRoleRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/ProductOfferingRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/am651/model/RelatedPartyRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/ApiException.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/ApiOriginFilter.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/ApiResponseMessage.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/BillFormatApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/BillFormatApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/BillPresentationMediaApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/BillPresentationMediaApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/BillingAccountApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/BillingAccountApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/BillingCycleSpecificationApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/BillingCycleSpecificationApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/FinancialAccountApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/FinancialAccountApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/HubApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/HubApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/ListenerApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/ListenerApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/NotFoundException.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/PartyAccountApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/PartyAccountApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/RFC3339DateFormat.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/SettlementAccountApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/api/SettlementAccountApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/Account.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/AccountBalance.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/AccountRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/AccountRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/AccountTaxExemption.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillFormat.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillFormatCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillFormatRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillFormatRefOrValue.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillFormatUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMedia.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMediaCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMediaRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMediaRefOrValue.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMediaUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillStructure.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillingAccount.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountAttributeValueChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecification.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecificationCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecificationRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecificationRefOrValue.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecificationUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/Contact.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/ContactMedium.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/EntityRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/Error.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/EventSubscription.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/EventSubscriptionInput.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccount.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountAttributeValueChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/MediumCharacteristic.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/Money.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/PartyAccount.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountAttributeValueChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/PaymentMethodRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/PaymentPlan.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccount.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountAttributeValueChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/api/ApiException.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/api/ApiOriginFilter.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/api/ApiResponseMessage.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/api/CustomerApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/api/CustomerApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/api/CustomerApiRouteBuilder.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/api/HubApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/api/HubApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/api/ListenerApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/api/ListenerApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/model/CreditProfile.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/model/Customer.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/model/CustomerAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/model/CustomerAttributeValueChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/model/CustomerCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/model/CustomerCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/model/CustomerCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/model/CustomerDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/model/CustomerDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/model/CustomerStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/model/CustomerStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/model/CustomerUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/model/EntityRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/model/Error.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/model/EventSubscription.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/model/EventSubscriptionInput.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/repo/CustomerRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/cm629/service/CustomerRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/Any.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/Attachment.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/AttachmentRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/AttachmentRefOrValue.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/BaseEntity.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/BaseRootEntity.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/BaseRootNamedEntity.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/ELifecycle.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/EValueType.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/Notification.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/OpensliceEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/Quantity.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/TimePeriod.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/UserAuthRoleType.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/UserPartRoleType.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/service/Characteristic.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/service/Note.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/service/Place.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/service/ResourceRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/service/ServiceRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/service/ServiceRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/service/ServiceSpecificationRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/service/ServiceStateType.java create mode 100644 src/main/java/org/etsi/osl/tmf/common/model/service/TargetServiceSchema.java create mode 100644 src/main/java/org/etsi/osl/tmf/configuration/ActiveMQComponentConfig.java create mode 100644 src/main/java/org/etsi/osl/tmf/configuration/ApiError.java create mode 100644 src/main/java/org/etsi/osl/tmf/configuration/ApiSubError.java create mode 100644 src/main/java/org/etsi/osl/tmf/configuration/ApiValidationError.java create mode 100644 src/main/java/org/etsi/osl/tmf/configuration/BCryptPasswordEncoderConfig.java create mode 100644 src/main/java/org/etsi/osl/tmf/configuration/CustomClaimVerifier.java create mode 100644 src/main/java/org/etsi/osl/tmf/configuration/HomeController.java create mode 100644 src/main/java/org/etsi/osl/tmf/configuration/MethodSecurityConfig.java create mode 100644 src/main/java/org/etsi/osl/tmf/configuration/RestAuthenticationEntryPoint.java create mode 100644 src/main/java/org/etsi/osl/tmf/configuration/RestExceptionHandler.java create mode 100644 src/main/java/org/etsi/osl/tmf/configuration/SwaggerDocumentationConfig.java create mode 100644 src/main/java/org/etsi/osl/tmf/configuration/WebSecurityConfigKeycloak.java create mode 100644 src/main/java/org/etsi/osl/tmf/fi691/api/ApiException.java create mode 100644 src/main/java/org/etsi/osl/tmf/fi691/api/ApiOriginFilter.java create mode 100644 src/main/java/org/etsi/osl/tmf/fi691/api/ApiResponseMessage.java create mode 100644 src/main/java/org/etsi/osl/tmf/fi691/api/UserinfoApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/fi691/api/UserinfoApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/fi691/model/EntitlementType.java create mode 100644 src/main/java/org/etsi/osl/tmf/fi691/model/GeographicAddressType.java create mode 100644 src/main/java/org/etsi/osl/tmf/fi691/model/GeographicLocationRefOrValueType.java create mode 100644 src/main/java/org/etsi/osl/tmf/fi691/model/GeographicPointType.java create mode 100644 src/main/java/org/etsi/osl/tmf/fi691/model/GeographicSubAddressType.java create mode 100644 src/main/java/org/etsi/osl/tmf/fi691/model/IdentificationType.java create mode 100644 src/main/java/org/etsi/osl/tmf/fi691/model/UserAssetType.java create mode 100644 src/main/java/org/etsi/osl/tmf/fi691/model/UserInfoType.java create mode 100644 src/main/java/org/etsi/osl/tmf/fi691/repo/IdentityRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/fi691/service/IdentityRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/lcm/api/LCMRuleSpecificationApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/lcm/api/LCMRuleSpecificationApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/lcm/api/LCMRuleSpecificationApiRouteBuilder.java create mode 100644 src/main/java/org/etsi/osl/tmf/lcm/model/ELCMRulePhase.java create mode 100644 src/main/java/org/etsi/osl/tmf/lcm/model/LCMRuleSpecification.java create mode 100644 src/main/java/org/etsi/osl/tmf/lcm/model/LCMRuleSpecificationCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/lcm/model/LCMRuleSpecificationUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/lcm/repo/LCMRuleSpecificationRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/lcm/reposervices/LCMRuleSpecificationRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/ApiException.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/ApiOriginFilter.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/ApiResponseMessage.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/CatalogApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/CatalogApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/CategoryApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/CategoryApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/ExportJobApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/ExportJobApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/HubApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/HubApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/ImportJobApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/ImportJobApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/ListenerApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/ListenerApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/NotFoundException.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/ProductOfferingApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/ProductOfferingApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/ProductOfferingPriceApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/ProductOfferingPriceApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/ProductSpecificationApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/ProductSpecificationApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/api/RFC3339DateFormat.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/BundledProductOffering.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/BundledProductOfferingOption.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/BundledProductOfferingPriceRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/BundledProductSpecification.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/Catalog.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogBatchEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogBatchEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/Category.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ChannelRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ConstraintRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/EntityRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/Error.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/EventSubscription.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/EventSubscriptionInput.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ExportJob.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ExportJobCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ImportJob.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ImportJobCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/JobStateType.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/MarketSegmentRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/Money.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/PlaceRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/PricingLogicAlgorithm.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOffering.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingAttributeValueChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPrice.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceAttributeValueChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingTerm.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecification.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristic.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicValue.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicValueUse.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ResourceCandidateRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/SLARef.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/ServiceCandidateRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/TargetProductSchema.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/TargetServiceSchema.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/model/TaxItem.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/repo/AttachmentRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductCatalogRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductCategoriesRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductOfferingPriceRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductOfferingRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductSpecificationRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/reposervices/AttachmentRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductCatalogRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductCategoryRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductOfferingPriceRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductOfferingRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductSpecificationRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/api/ApiException.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/api/ApiOriginFilter.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/api/ApiResponseMessage.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/api/HubApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/api/HubApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/api/IndividualApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/api/IndividualApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/api/IndividualApiRouteBuilder.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/api/ListenerApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/api/ListenerApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/api/NotFoundException.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/api/OrganizationApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/api/OrganizationApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/api/OrganizationApiRouteBuilder.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/api/OrganizationApiRouteBuilderEvents.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/Characteristic.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/ContactMedium.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/Disability.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/EntityRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/Error.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/EventSubscription.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/EventSubscriptionInput.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/ExternalReference.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/Individual.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/IndividualAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/IndividualAttributeValueChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/IndividualCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/IndividualCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/IndividualCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/IndividualDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/IndividualDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/IndividualIdentification.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/IndividualStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/IndividualStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/IndividualStateType.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/IndividualUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/LanguageAbility.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/MediumCharacteristic.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/Organization.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationAttributeValueChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationChildRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationIdentification.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationParentRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationStateType.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/OtherNameIndividual.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/OtherNameOrganization.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/Party.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/PartyCreditProfile.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/Skill.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/TaxDefinition.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/model/TaxExemptionCertificate.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/repo/IndividualRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/repo/OrganizationRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/reposervices/IndividualRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/pm632/reposervices/OrganizationRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/api/ApiException.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/api/ApiOriginFilter.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/api/ApiResponseMessage.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/api/CancelProductOrderApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/api/CancelProductOrderApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/api/HubApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/api/HubApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/api/ListenerApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/api/ListenerApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/api/NotFoundException.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/api/ProductOrderApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/api/ProductOrderApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/AgreementItemRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/AgreementRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/Any.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/AppointmentRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/BillingAccountRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/CancelOrder.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrder.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderInformationRequiredEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderInformationRequiredEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/Characteristic.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/EntityRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/Error.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/EventSubscription.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/EventSubscriptionInput.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/Money.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/OrderItemActionType.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/OrderItemRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/OrderPrice.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/OrderTerm.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/PaymentRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/Place.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/Price.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/PriceAlteration.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/Product.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOfferingPriceRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOfferingQualificationItemRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOfferingQualificationRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOfferingRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOrder.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderAttributeValueChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderInformationRequiredEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderInformationRequiredEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderItem.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderItemStateType.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderStateType.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductPrice.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductRefOrValue.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductSpecificationRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductStatusType.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/ProductTerm.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/QuoteItemRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/QuoteRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/RelatedChannel.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/RelatedPlaceRefOrValue.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/RelatedProductOrderItem.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/TargetProductSchema.java create mode 100644 src/main/java/org/etsi/osl/tmf/po622/model/TaskStateType.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/api/ApiException.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/api/ApiOriginFilter.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/api/ApiResponseMessage.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/api/HubApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/api/HubApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/api/ListenerApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/api/ListenerApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/api/NotFoundException.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/api/PartyRoleApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/api/PartyRoleApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/api/RFC3339DateFormat.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/Characteristic.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/ContactMedium.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/CreditProfile.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/EntityRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/Error.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/EventSubscription.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/EventSubscriptionInput.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/MediumCharacteristic.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/PartyRole.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleAttributeValueChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/prm669/model/RelatedParty.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/ApiException.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/ApiOriginFilter.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/ApiResponseMessage.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/ExportJobApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/ExportJobApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/HubApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/HubApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/ImportJobApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/ImportJobApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/ListenerApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/ListenerApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/NotFoundException.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCandidateApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCandidateApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCatalogApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCatalogApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCategoryApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCategoryApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceSpecificationApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceSpecificationApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceSpecificationApiRouteBuilder.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ConnectionPointSpecificationRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ConnectionSpecification.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ConstraintRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/EndpointSpecificationRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/EntityRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/Error.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/EventSubscription.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/EventSubscriptionInput.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJob.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecification.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecificationCharacteristic.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecificationCharacteristicRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecificationCharacteristicValue.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecificationRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJob.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/JobStateType.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/LogicalResourceSpecification.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/LogicalResourceSpecificationCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/LogicalResourceSpecificationUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/PhysicalResourceSpecification.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/PhysicalResourceSpecificationCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/PhysicalResourceSpecificationUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalog.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategory.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceFunctionSpecification.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceFunctionSpecificationCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceFunctionSpecificationUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceGraphSpecification.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceGraphSpecificationRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceGraphSpecificationRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecCharRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecification.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCharacteristic.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCharacteristicRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCharacteristicValue.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/TargetResourceSchema.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/model/TargetResourceSchemaRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/repo/ResourceCandidateRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/repo/ResourceCatalogRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/repo/ResourceCategoriesRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/repo/ResourceSpecificationRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/reposervices/ResourceCandidateRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/reposervices/ResourceCatalogRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/reposervices/ResourceCategoryRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/rcm634/reposervices/ResourceSpecificationRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/api/ApiException.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/api/ApiOriginFilter.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/api/ApiResponseMessage.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/api/HubApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/api/HubApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/api/ListenerApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/api/ListenerApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/api/NotFoundException.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApiRouteBuilder.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApiRouteBuilderEvents.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/Addressable.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/Characteristic.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/CharacteristicRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ConstraintRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/Entity.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/EntityRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/Error.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/EventSubscription.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/EventSubscriptionInput.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/Extensible.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/Feature.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/FeatureRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/LogicalResource.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/PhysicalResource.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/Place.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/RelatedPlaceRefOrValue.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/Resource.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceAdministrativeStateType.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceAttributeValueChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceAttributeValueChangeNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceCreateNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceOperationalStateType.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceRefOrValue.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceStateChangeNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceStatusType.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/model/ResourceUsageStateType.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/repo/ResourceRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/ri639/reposervices/ResourceRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/api/ApiException.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/api/ApiOriginFilter.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/api/ApiResponseMessage.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/api/CancelResourceOrderApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/api/CancelResourceOrderApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/api/HubApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/api/HubApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/api/ListenerApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/api/ListenerApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/api/NotFoundException.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/api/ResourceOrderApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/api/ResourceOrderApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/AppointmentRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/CancelOrder.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrder.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderInformationRequiredEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderInformationRequiredEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/CharacteristicRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/EntityRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/EventSubscription.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/EventSubscriptionInput.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ExternalId.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/Quantity.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/RelatedPlaceRefOrValue.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOperationalStateType.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrder.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderAttributeValueChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderInformationRequiredEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderInformationRequiredEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderItem.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderItemRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderItemRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderStateChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderStateType.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/model/TaskStateType.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/reposervices/ResourceOrderMapper.java create mode 100644 src/main/java/org/etsi/osl/tmf/ro652/reposervices/ResourceOrderRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/api/ApiException.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/api/ApiOriginFilter.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/api/ApiResponseMessage.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/api/AvailabilityCheckApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/api/AvailabilityCheckApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/api/ExtractApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/api/ExtractApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/api/HubApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/api/HubApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/api/NotFoundException.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/api/PushApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/api/PushApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/api/ReservationApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/api/ReservationApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/api/ReservationApiRouteBuilder.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/api/ResourcePoolApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/api/ResourcePoolApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/ApplicableTimePeriod.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/AppliedCapacityAmount.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/AvailabilityCheck.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/AvailabilityCheckCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/Capacity.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/ChannelRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/Error.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/EventSubscription.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/EventSubscriptionInput.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/Extract.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/ExtractCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/ProductOfferingRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/Push.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/PushCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/RequestedPeriod.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/Reservation.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationItem.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationMapper.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationStateType.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/ResourceCapacityDemand.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePool.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePoolCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePoolMapper.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePoolRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePoolUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/repo/ResourcePoolRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/repo/ResourceReservationRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/reposervices/ResourcePoolRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/rpm685/reposervices/ResourceReservationRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/api/ApiException.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/api/ApiOriginFilter.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/api/ApiResponseMessage.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/api/HubApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/api/HubApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/api/ListenerApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/api/ListenerApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/api/MonitorApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/api/MonitorApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/api/NotFoundException.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/api/ServiceApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/model/Error.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/model/EventSubscription.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/model/EventSubscriptionInput.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/model/HeaderItem.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/model/Monitor.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/model/MonitorAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/model/MonitorAttributeValueChangeNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/model/MonitorCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/model/MonitorCreateNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/model/MonitorDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/model/MonitorDeleteNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/model/MonitorStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/model/MonitorStateChangeNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/model/Request.java create mode 100644 src/main/java/org/etsi/osl/tmf/sac640/model/Response.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/api/ExportJobApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/api/ExportJobApiController633.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/api/HubApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/api/HubApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/api/ImportJobApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/api/ImportJobApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/api/ListenerApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/api/ListenerApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCandidateApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCandidateApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCatalogApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCatalogApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCategoryApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCategoryApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/api/ServiceSpecificationApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/api/ServiceSpecificationApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/api/ServiceSpecificationApiRouteBuilder.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/api/ServiceSpecificationApiRouteBuilderNSD.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/Error.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/EventSubscription.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/EventSubscriptionInput.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ExportJob.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ExportJobCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ImportJob.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ImportJobCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidate.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateChangeNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateCreateNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateDeleteNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalog.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogBatchEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogBatchNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogChangeNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogCreateNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogDeleteNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategory.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryChangeNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryCreateNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryDeleteNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceLevelSpecificationRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecCharRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecCharacteristic.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecCharacteristicValue.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecification.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationChangeNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationCreateNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationDeleteNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/model/TargetServiceSchema.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/repo/CandidateRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/repo/CatalogRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/repo/CategoriesRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/repo/ServiceSpecificationRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/reposervices/CandidateRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/reposervices/CatalogRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/reposervices/CategoryRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/scm633/reposervices/ServiceSpecificationRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/api/ApiException.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/api/ApiOriginFilter.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/api/ApiResponseMessage.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/api/HubApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/api/HubApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/api/ListenerApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/api/ListenerApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/api/NotFoundException.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/api/RFC3339DateFormat.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilder.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilderEvents.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/EServiceStartMode.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/Error.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/EventSubscription.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/EventSubscriptionInput.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/Service.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/ServiceActionQueueAction.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/ServiceActionQueueItem.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/ServiceAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/ServiceAttributeValueChangeNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/ServiceBatchEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/ServiceBatchNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/ServiceCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/ServiceCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/ServiceCreateNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/ServiceDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/ServiceDeleteNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/ServiceOrderRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/ServiceStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/ServiceStateChangeNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/model/ServiceUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/repo/ServiceActionQueueRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/repo/ServiceRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/api/ApiException.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/api/ApiOriginFilter.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/api/ApiResponseMessage.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/api/HubApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/api/HubApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/api/ListenerApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/api/ListenerApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/api/NotFoundException.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/api/ServiceOrderApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/api/ServiceOrderApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/api/ServiceOrderApiRouteBuilder.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/api/ServiceOrderApiRouteBuilderEvents.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/AppointmentRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/Error.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/EventSubscription.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/EventSubscriptionInput.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrder.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderActionType.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderAttributeValueChangeNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderCreateNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderDeleteNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderItem.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderItemRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderStateChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderStateChangeNotification.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderStateType.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/model/ServiceRestriction.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/repo/ServiceOrderRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/so641/reposervices/ServiceOrderRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/api/ApiException.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/api/ApiOriginFilter.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/api/ApiResponseMessage.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/api/HubApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/api/HubApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/api/NotFoundException.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/api/RFC3339DateFormat.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/api/ServiceLevelObjectiveApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/api/ServiceLevelObjectiveApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/api/ServiceLevelSpecificationApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/api/ServiceLevelSpecificationApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/model/EntityRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/model/Error.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/model/EventSubscription.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/model/EventSubscriptionInput.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelObjective.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelObjectiveCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelObjectiveRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelObjectiveUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecConsequence.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecParameter.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecification.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecificationCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecificationUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/api/ApiException.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/api/ApiOriginFilter.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/api/ApiResponseMessage.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/api/HubApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/api/HubApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/api/ListenerApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/api/ListenerApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestSpecificationApi.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestSpecificationApiController.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestSpecificationApiRouteBuilder.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/Addressable.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/AppliedConsequence.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/AssociationSpecificationRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/Characteristic.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicSpecification.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicSpecificationBase.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicSpecificationRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicValueSpecification.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ConstraintRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/Duration.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/EntityRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/EntitySpecification.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/EntitySpecificationRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/Error.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/EventSubscription.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/EventSubscriptionInput.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/Extensible.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/MeasureThresholdRuleViolation.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/MetricDefMeasureConsequence.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/MetricDefMeasureThresholdRule.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTest.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestAttributeValueChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecRelationship.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecification.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationAttributeValueChangeEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationAttributeValueChangeEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationCreate.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationCreateEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationCreateEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationDeleteEvent.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationDeleteEventPayload.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationRef.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestUpdate.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/TargetEntitySchema.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/TestMeasure.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/model/TestMeasureDefinition.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/repo/ServiceTestRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/repo/ServiceTestSpecificationRepository.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/reposervices/ServiceTestRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/stm653/reposervices/ServiceTestSpecificationRepoService.java create mode 100644 src/main/java/org/etsi/osl/tmf/util/AddUserAsOwnerToRelatedParties.java create mode 100644 src/main/java/org/etsi/osl/tmf/util/AttachmentUtil.java create mode 100644 src/main/java/org/etsi/osl/tmf/util/KrokiClient.java create mode 100644 src/main/resources/application-testing.yml create mode 100644 src/main/resources/application.yml create mode 100644 src/main/resources/banner.txt create mode 100644 src/main/resources/gst.json create mode 100644 src/main/resources/logback.xml create mode 100644 src/main/resources/resourceSpecifications/gnodeb.openslice.io.json create mode 100644 src/main/resources/resourceSpecifications/osm-tenant.openslice.io.json create mode 100644 src/main/resources/resourceSpecifications/vim-account.openslice.io.json create mode 100644 src/main/resources/vinnisb/vinnisb-exposure-L1.json create mode 100644 src/main/resources/vinnisb/vinnisb-exposure-L2.json create mode 100644 src/main/resources/vinnisb/vinnisb-exposure-L3.json create mode 100644 src/main/resources/vinnisb/vinnisb-exposure-L4.json create mode 100644 src/main/resources/vinnisb/vinnisb-monitoring.json create mode 100644 src/main/resources/vinnisb/vinnisb-req.json create mode 100644 src/main/resources/vinnisb/vinnisb-testing.json create mode 100644 src/main/resources/vinnisb/vinnisb.json create mode 100644 src/test/java/org/etsi/osl/services/api/AlarmManagementIntegrationTest.java create mode 100644 src/test/java/org/etsi/osl/services/api/CustomerIntegrationTest.java create mode 100644 src/test/java/org/etsi/osl/services/api/JsonUtils.java create mode 100644 src/test/java/org/etsi/osl/services/api/LCMRulesIntegrationTest.java create mode 100644 src/test/java/org/etsi/osl/services/api/PartyManagementIntegrationTest.java create mode 100644 src/test/java/org/etsi/osl/services/api/ProductCatalogIntegrationTest.java create mode 100644 src/test/java/org/etsi/osl/services/api/ResourceCatalogIntegrationTest.java create mode 100644 src/test/java/org/etsi/osl/services/api/ResourceInventoryIntegrationTest.java create mode 100644 src/test/java/org/etsi/osl/services/api/ResourceOrderIntegrationTest.java create mode 100644 src/test/java/org/etsi/osl/services/api/ResourcePoolIntegrationTest.java create mode 100644 src/test/java/org/etsi/osl/services/api/ServiceCatalogIntegrationTest.java create mode 100644 src/test/java/org/etsi/osl/services/api/ServiceInventoryIntegrationTest.java create mode 100644 src/test/java/org/etsi/osl/services/api/ServiceOrderIntegrationTest.java create mode 100644 src/test/java/org/etsi/osl/services/api/ServiceTestManagementIntegrationTest.java create mode 100644 src/test/resources/TestServiceOrderDates.json create mode 100644 src/test/resources/cirros_vnf.tar.gz create mode 100644 src/test/resources/logback-test.xml create mode 100644 src/test/resources/testPhysicalResourceSpec.json create mode 100644 src/test/resources/testProductCatalog.txt create mode 100644 src/test/resources/testProductCategory.txt create mode 100644 src/test/resources/testProductOfferingPrice.txt create mode 100644 src/test/resources/testProductOfferingSpec.json create mode 100644 src/test/resources/testProductSpec.json create mode 100644 src/test/resources/testResourceCatalog.txt create mode 100644 src/test/resources/testResourceCategory.txt create mode 100644 src/test/resources/testResourcePool.json create mode 100644 src/test/resources/testResourceSpec.json create mode 100644 src/test/resources/testServiceCatalog.txt create mode 100644 src/test/resources/testServiceCategory.txt create mode 100644 src/test/resources/testServiceSpec.json create mode 100644 src/test/resources/testServiceSpec2.json create mode 100644 src/test/resources/testServiceTest.json create mode 100644 src/test/resources/testServiceTestSpec.json diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..2d9e331 --- /dev/null +++ b/.classpath @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.factorypath b/.factorypath new file mode 100644 index 0000000..64aa783 --- /dev/null +++ b/.factorypath @@ -0,0 +1,4 @@ + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6f6ea3e --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/target/ +/.apt_generated/ +/.apt_generated_tests/ diff --git a/.project b/.project new file mode 100644 index 0000000..e64ac99 --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + org.etsi.osl.tmf.api + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..18308de --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=utf-8 +encoding//src/main/resources=utf-8 +encoding//src/test/java=utf-8 +encoding//src/test/resources=utf-8 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.apt.core.prefs b/.settings/org.eclipse.jdt.apt.core.prefs new file mode 100644 index 0000000..fa6bcfb --- /dev/null +++ b/.settings/org.eclipse.jdt.apt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.apt.aptEnabled=true +org.eclipse.jdt.apt.genSrcDir=.apt_generated +org.eclipse.jdt.apt.genTestSrcDir=.apt_generated_tests +org.eclipse.jdt.apt.reconcileEnabled=true diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..021d2b8 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,17 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=17 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.processAnnotations=enabled +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=17 \ No newline at end of file diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/Dockerfile.tmfapi b/Dockerfile.tmfapi new file mode 100644 index 0000000..7fbc6c2 --- /dev/null +++ b/Dockerfile.tmfapi @@ -0,0 +1,7 @@ +FROM ibm-semeru-runtimes:open-17.0.7_7-jdk +MAINTAINER openslice.io +RUN mkdir /opt/shareclasses +RUN mkdir -p /opt/openslice/lib/ +COPY target/org.etsi.osl.tmf.api-1.2.0-SNAPSHOT-exec.jar /opt/openslice/lib/ +CMD ["java", "-Xshareclasses:cacheDir=/opt/shareclasses", "-jar", "/opt/openslice/lib/org.etsi.osl.tmf.api-1.2.0-SNAPSHOT-exec.jar"] +EXPOSE 13082 \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md index 8f78f76..0e1a978 100644 --- a/README.md +++ b/README.md @@ -1,92 +1,3 @@ # org.etsi.osl.tmf.api - - -## Getting started - -To make it easy for you to get started with GitLab, here's a list of recommended next steps. - -Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)! - -## Add your files - -- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files -- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command: - -``` -cd existing_repo -git remote add origin https://labs.etsi.org/rep/osl/code/org.etsi.osl.tmf.api.git -git branch -M main -git push -uf origin main -``` - -## Integrate with your tools - -- [ ] [Set up project integrations](https://labs.etsi.org/rep/osl/code/org.etsi.osl.tmf.api/-/settings/integrations) - -## Collaborate with your team - -- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/) -- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html) -- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically) -- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/) -- [ ] [Automatically merge when pipeline succeeds](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html) - -## Test and Deploy - -Use the built-in continuous integration in GitLab. - -- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html) -- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing(SAST)](https://docs.gitlab.com/ee/user/application_security/sast/) -- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html) -- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/) -- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html) - -*** - -# Editing this README - -When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thank you to [makeareadme.com](https://www.makeareadme.com/) for this template. - -## Suggestions for a good README -Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information. - -## Name -Choose a self-explaining name for your project. - -## Description -Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors. - -## Badges -On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge. - -## Visuals -Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method. - -## Installation -Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection. - -## Usage -Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README. - -## Support -Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc. - -## Roadmap -If you have ideas for releases in the future, it is a good idea to list them in the README. - -## Contributing -State if you are open to contributions and what your requirements are for accepting them. - -For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self. - -You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser. - -## Authors and acknowledgment -Show your appreciation to those who have contributed to the project. - -## License -For open source projects, say how it is licensed. - -## Project status -If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers. +TMF OpenAPIs implementation. diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..044cfc0 --- /dev/null +++ b/pom.xml @@ -0,0 +1,398 @@ + + 4.0.0 + + org.etsi.osl + org.etsi.osl.main + 1.2.0-SNAPSHOT + ../org.etsi.osl.main + + + + org.etsi.osl.tmf.api + org.etsi.osl.tmf.api + + + + UTF-8 + UTF-8 + ${spring-boot-version} + 1.5.3.Final + ${springdoc-version} + ${springdoc-security-version} + ${springdoc-openapiui-version} + jdt_apt + ${mysql.connector.version} + 1.18.28 + + + + + + + + org.springframework.boot + spring-boot-dependencies + ${spring.boot-version} + pom + import + + + + org.apache.camel.springboot + camel-spring-boot-dependencies + ${camel.version} + pom + import + + + + com.google.guava + guava + 32.0.0-jre + + + org.keycloak.bom + keycloak-adapter-bom + ${keycloak.version} + pom + import + + + + + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + + org.springframework.boot + spring-boot-starter-oauth2-resource-server + + + + com.jayway.jsonpath + json-path + + + + + + org.projectlombok + lombok + provided + ${lombok-version} + + + + org.keycloak + keycloak-spring-boot-starter + + + org.keycloak + keycloak-spring-security-adapter + + + + org.keycloak + keycloak-admin-client + ${keycloak.version} + + + + mysql + mysql-connector-java + runtime + ${mysql-connector.version} + + + com.fasterxml.jackson.core + jackson-databind + + + com.fasterxml.jackson.datatype + jackson-datatype-hibernate5-jakarta + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + + + + + org.springframework.boot + spring-boot-starter-activemq + + + org.apache.activemq + activemq-amqp + test + + + org.apache.qpid + proton-j + + + + + org.messaginghub + pooled-jms + + + + + org.apache.camel.springboot + camel-spring-boot-starter + + + org.apache.activemq + activemq-pool + + + org.apache.camel + camel-activemq + + + org.apache.activemq + activemq-broker + + + + + org.apache.camel.springboot + camel-service-starter + + + + org.apache.camel.springboot + camel-http-starter + + + org.apache.camel + camel-jackson + + + org.apache.camel + camel-stream + + + + + org.etsi.osl + org.etsi.osl.model + ${project.version} + + + org.etsi.osl + org.etsi.osl.centrallog.client + ${project.version} + + + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + ${springdoc.version} + + + org.springdoc + springdoc-openapi-ui + ${springdoc.openapiui.version} + + + org.springdoc + springdoc-openapi-security + ${springdoc.security.version} + + + + org.mapstruct + mapstruct + ${mapstruct.version} + + + org.mapstruct + mapstruct-processor + ${mapstruct.version} + + + + + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.security + spring-security-test + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.junit.platform + junit-platform-commons + test + + + org.junit.platform + junit-platform-runner + test + + + com.h2database + h2 + test + + + org.apache.activemq + activemq-broker + test + + + javax.jms + javax.jms-api + 2.0.1 + test + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + ${java.version} + ${java.version} + + -parameters + + + + org.mapstruct + mapstruct-processor + ${mapstruct.version} + + + org.projectlombok + lombok + ${lombok-version} + + + + + + org.codehaus.mojo + build-helper-maven-plugin + ${build-helper-maven-plugin.version} + + + add-generated-source + generate-sources + + add-source + + + + ${generated-sources-path}/wsdl + + + + + + + + org.codehaus.mojo + license-maven-plugin + ${maven-license-plugin.version} + + false + ========================LICENSE_START================================= + =========================LICENSE_END================================== + *.json + + + + generate-license-headers + + update-file-header + + process-sources + + ${license.licenseName} + + + + + download-licenses + + download-licenses + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot-version} + + + + repackage + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot-version} + + exec + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/org/etsi/osl/domain/model/DomainModelDefinition.java b/src/main/java/org/etsi/osl/domain/model/DomainModelDefinition.java new file mode 100644 index 0000000..7e5f6d6 --- /dev/null +++ b/src/main/java/org/etsi/osl/domain/model/DomainModelDefinition.java @@ -0,0 +1,25 @@ +package org.etsi.osl.domain.model; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.Setter; + +/** + * @author ctranoris + */ + +@Getter +@Setter +@AllArgsConstructor +public class DomainModelDefinition { + + //instance variables + protected String uuid; + protected String name; + protected String version; + protected String description; + protected String category; + + + +} diff --git a/src/main/java/org/etsi/osl/domain/model/ITMFRCM634_ModelTransformer.java b/src/main/java/org/etsi/osl/domain/model/ITMFRCM634_ModelTransformer.java new file mode 100644 index 0000000..3eb1340 --- /dev/null +++ b/src/main/java/org/etsi/osl/domain/model/ITMFRCM634_ModelTransformer.java @@ -0,0 +1,32 @@ +package org.etsi.osl.domain.model; + +import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; + +/** + * @author ctranoris + * + * Transforms the PoJo class to/from the equivalent TMF model + */ +public interface ITMFRCM634_ModelTransformer { + + + ResourceSpecificationCreate toRSpecCreate_InitRepo(); + + + default ResourceSpecificationCreate toRSpecCreate() { + return null; + } + + default ResourceSpecificationUpdate toRSpecUpdate() { + return null; + } + + /** + * loads the class fields from this model + * @param rSpec + */ + DomainModelDefinition fromRSpec( ResourceSpecification rSpec ) ; + +} diff --git a/src/main/java/org/etsi/osl/domain/model/ITMFRI639_ModelTransformer.java b/src/main/java/org/etsi/osl/domain/model/ITMFRI639_ModelTransformer.java new file mode 100644 index 0000000..0ebcd09 --- /dev/null +++ b/src/main/java/org/etsi/osl/domain/model/ITMFRI639_ModelTransformer.java @@ -0,0 +1,34 @@ +package org.etsi.osl.domain.model; + +import org.etsi.osl.tmf.ri639.model.Resource; +import org.etsi.osl.tmf.ri639.model.ResourceCreate; +import org.etsi.osl.tmf.ri639.model.ResourceUpdate; + +/** + * @author ctranoris + * + * Transforms the PoJo class to/from the equivalent TMF model + */ +public interface ITMFRI639_ModelTransformer { + + + + + default ResourceCreate toResourceCreate() throws Exception { + return null; + }; + + default ResourceUpdate toResourceUpdate() throws Exception { + return null; + }; + + /** + * loads the class fields from this model + * @param rSpec + */ + default void fromResource( Resource rSpec ) { + + } + + +} diff --git a/src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesCRDProperty.java b/src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesCRDProperty.java new file mode 100644 index 0000000..f67d484 --- /dev/null +++ b/src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesCRDProperty.java @@ -0,0 +1,35 @@ +package org.etsi.osl.domain.model.kubernetes; + +import java.util.HashMap; +import java.util.Map; + +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +/** + * @author ctranoris + */ +@Getter +@Setter +@Builder +public class KubernetesCRDProperty { + + String name; + String valueType; + String defaultValue; + String description; + Map properties; + + public Map getProperties() { + if ( properties == null) { + this.properties = new HashMap<>(); + } + return properties; + } + + + + + +} diff --git a/src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesCRDV1.java b/src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesCRDV1.java new file mode 100644 index 0000000..07c17ac --- /dev/null +++ b/src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesCRDV1.java @@ -0,0 +1,244 @@ +package org.etsi.osl.domain.model.kubernetes; + +import java.util.HashMap; +import java.util.Map; +import org.etsi.osl.domain.model.DomainModelDefinition; +import org.etsi.osl.domain.model.ITMFRCM634_ModelTransformer; +import org.etsi.osl.domain.model.ITMFRI639_ModelTransformer; +import org.etsi.osl.tmf.common.model.ELifecycle; +import org.etsi.osl.tmf.common.model.EValueType; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; +import org.etsi.osl.tmf.ri639.model.ResourceCreate; +import org.etsi.osl.tmf.ri639.model.ResourceOperationalStateType; +import org.etsi.osl.tmf.ri639.model.ResourceStatusType; +import org.etsi.osl.tmf.ri639.model.ResourceUpdate; +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +/** + * @author ctranoris + */ +@Getter +@Setter +public class KubernetesCRDV1 extends DomainModelDefinition + implements ITMFRCM634_ModelTransformer, ITMFRI639_ModelTransformer { + + public static final String OSL_KUBCRD_RSPEC_NAME = "kubernetes-crd.openslice.io"; + public static final String OSL_KUBCRD_RSPEC_VERSION = "0.0.3"; + public static final String OSL_KUBCRD_RSPEC_CATEGORY = "KubernetesCRD-apiextensions.k8s.io/v1"; + public static final String OSL_KUBCRD_RESOURCE_CATEGORY = "KubernetesCRD-apiextensions.k8s.io/v1"; + public static final String OSL_KUBCRD_RSPEC_TYPE = "LogicalResourceSpecification"; + public static final String OSL_KUBCRD_RSPEC_DESCRIPTION = "This Specification is used to describe a generic KubernetesCRD"; + + private String osl_KUBCRD_RSPEC_UUID = null; //this is assigned by the system through the DB for a specific instance + + private String clusterMasterURL; + private String currentContextCluster; + private String fullResourceName; + private String kind; + private String apiGroup; + private String UID; + private String metadata; + private String yaml; + private String json; + private Map properties; + private Map additionalProperties; + private String cr_spec; + private String statusCheckFieldName; + private String statusCheckValueStandby; + private String statusCheckValueAlarm; + private String statusCheckValueAvailable; + private String statusCheckValueReserved; + private String statusCheckValueUnknown; + private String statusCheckValueSuspended; + + + @Builder + public KubernetesCRDV1(String osl_KUBCRD_RSPEC_UUID, String uuid, String name, String version, String description, String category, + String clusterMasterURL, String currentContextCluster, String fullResourceName, + String kind, String apiGroup, String uID, + String metadata, + String yaml, + String json) { + super(uuid, name, version, description, category); + this.osl_KUBCRD_RSPEC_UUID = osl_KUBCRD_RSPEC_UUID; + this.clusterMasterURL = clusterMasterURL; + this.currentContextCluster = currentContextCluster; + this.fullResourceName = fullResourceName; + this.kind = kind; + this.apiGroup = apiGroup; + this.UID = uID; + this.metadata = metadata; + this.yaml = yaml; + this.json = json; + this.properties = new HashMap<>(); + this.additionalProperties = new HashMap<>(); + } + + + + @Override + public ResourceSpecificationCreate toRSpecCreate_InitRepo() { + + ResourceSpecificationCreate rsc = this.toRSpecCreate(); + rsc.setName( OSL_KUBCRD_RSPEC_NAME ); + rsc.setCategory( OSL_KUBCRD_RSPEC_CATEGORY ); + rsc.setVersion(OSL_KUBCRD_RSPEC_VERSION); + rsc.setDescription( OSL_KUBCRD_RSPEC_DESCRIPTION ); + rsc.setType( OSL_KUBCRD_RSPEC_TYPE ); + + + + return rsc; + } + + @Override + public ResourceSpecificationCreate toRSpecCreate() { + + ResourceSpecificationCreate rsc = new ResourceSpecificationCreate(); + rsc.setName( this.name ); + rsc.setCategory( OSL_KUBCRD_RSPEC_CATEGORY ); + rsc.setVersion( this.version ); + rsc.setDescription( this.version ); + rsc.setType( OSL_KUBCRD_RSPEC_TYPE ); + + rsc.setLifecycleStatus( ELifecycle.ACTIVE.getValue() ); + rsc.addResourceSpecificationCharacteristicItemShort("clusterMasterURL", this.clusterMasterURL, EValueType.TEXT.getValue(), "URL of cluster", false); + rsc.addResourceSpecificationCharacteristicItemShort("currentContextCluster", this.currentContextCluster, EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort("fullResourceName", this.fullResourceName, EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort("Kind", this.kind, EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort("apiGroup", this.apiGroup, EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort("UID", this.UID, EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort("metadata", this.metadata, EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort("yaml", this.yaml, EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort("json", this.json, EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort( "_CR_SPEC", "", EValueType.TEXT.getValue(), "Used for providing the json Custom Resource description to apply", false); + rsc.addResourceSpecificationCharacteristicItemShort( "_CR_CHECK_FIELD", "", EValueType.TEXT.getValue(), "Used for providing the field that need to be checked for the resource status", false); + rsc.addResourceSpecificationCharacteristicItemShort( "_CR_CHECKVAL_STANDBY", "", EValueType.TEXT.getValue(), "Used for providing the equivalent value from resource to signal the standby status", false); + rsc.addResourceSpecificationCharacteristicItemShort( "_CR_CHECKVAL_ALARM", "", EValueType.TEXT.getValue(), "Used for providing the equivalent value from resource to signal the alarm status", false); + rsc.addResourceSpecificationCharacteristicItemShort( "_CR_CHECKVAL_AVAILABLE", "", EValueType.TEXT.getValue(), "Used for providing the equivalent value from resource to signal the available status", false); + rsc.addResourceSpecificationCharacteristicItemShort( "_CR_CHECKVAL_RESERVED", "", EValueType.TEXT.getValue(), "Used for providing the equivalent value from resource to signal the reserved status", false); + rsc.addResourceSpecificationCharacteristicItemShort( "_CR_CHECKVAL_UNKNOWN", "", EValueType.TEXT.getValue(), "Used for providing the equivalent value from resource to signal the unknown status", false); + rsc.addResourceSpecificationCharacteristicItemShort( "_CR_CHECKVAL_SUSPENDED", "", EValueType.TEXT.getValue(), "Used for providing the equivalent value from resource to signal the suspended status", false); + +// rsc.addResourceSpecificationCharacteristicItemShort( "properties", "", EValueType.SET.getValue()); +// rsc.addResourceSpecificationCharacteristicItemShort( "additionalProperties", "", EValueType.SET.getValue()); + if (this.properties != null) + this.properties.forEach((kPropName, vProVal) -> { + + EValueType etype; + if ( vProVal.getValueType().equalsIgnoreCase("boolean")) { + etype = EValueType.BOOLEAN; + } else if ( vProVal.getValueType().equalsIgnoreCase("integer")) { + etype = EValueType.INTEGER; + } else if ( vProVal.getValueType().equalsIgnoreCase("object")) { + etype = EValueType.OBJECT; + } else + etype = EValueType.TEXT; + + rsc.addResourceSpecificationCharacteristicItemShort(kPropName , vProVal.getDefaultValue(), etype.getValue(), vProVal.getDescription(), false); + + }); + + if (this.additionalProperties != null ) { + this.additionalProperties.forEach((kPropName, vProVal) -> { + rsc.addResourceSpecificationCharacteristicItemShort("additionalProperty." + kPropName, vProVal.getDefaultValue(), EValueType.TEXT.getValue(), vProVal.getDescription(), false); + + }); + } + + return rsc; + } + + @Override + public ResourceSpecificationUpdate toRSpecUpdate() { + return this.toRSpecCreate(); + } + + @Override + public KubernetesCRDV1 fromRSpec(ResourceSpecification rSpec) { + this.osl_KUBCRD_RSPEC_UUID = rSpec.getUuid(); + return this; + } + + @Override + public ResourceCreate toResourceCreate() { + + if (osl_KUBCRD_RSPEC_UUID == null) { + return null; + } + + ResourceSpecificationRef rSpecRef = new ResourceSpecificationRef(); + rSpecRef.setId( osl_KUBCRD_RSPEC_UUID ); + rSpecRef.setName( OSL_KUBCRD_RSPEC_NAME ); + rSpecRef.setVersion( OSL_KUBCRD_RSPEC_VERSION ); + + ResourceCreate rs = new ResourceCreate(); + rs.name( this.name ) + .category( OSL_KUBCRD_RESOURCE_CATEGORY ) + .description( this.description ) + .resourceStatus( ResourceStatusType.AVAILABLE ) + .operationalState( ResourceOperationalStateType.ENABLE ) + .resourceSpecification( rSpecRef ) + .resourceVersion( this.version); + + rs.addResourceCharacteristicItemShort("clusterMasterURL", this.clusterMasterURL, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("currentContextCluster", this.currentContextCluster, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("fullResourceName", this.fullResourceName, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("Kind", this.kind, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("apiGroup", this.apiGroup, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("UID", this.UID, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("metadata", this.metadata, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("yaml", this.yaml, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("json", this.json, EValueType.TEXT.getValue()); + + rs.addResourceCharacteristicItemShort("_CR_SPEC", this.cr_spec, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("_CR_CHECK_FIELD", this.statusCheckFieldName, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("_CR_CHECKVAL_STANDBY", this.statusCheckValueStandby, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("_CR_CHECKVAL_ALARM", this.statusCheckValueAlarm, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("_CR_CHECKVAL_AVAILABLE", this.statusCheckValueAvailable, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("_CR_CHECKVAL_RESERVED", this.statusCheckValueReserved, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("_CR_CHECKVAL_UNKNOWN", this.statusCheckValueUnknown, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("_CR_CHECKVAL_SUSPENDED", this.statusCheckValueSuspended, EValueType.TEXT.getValue()); + + + + if (this.properties != null) + this.properties.forEach((kPropName, vProVal) -> { + + EValueType etype; + if ( vProVal.getValueType().equalsIgnoreCase("boolean")) { + etype = EValueType.BOOLEAN; + } else if ( vProVal.getValueType().equalsIgnoreCase("integer")) { + etype = EValueType.INTEGER; + } else if ( vProVal.getValueType().equalsIgnoreCase("object")) { + etype = EValueType.OBJECT; + } else + etype = EValueType.TEXT; + + rs.addResourceCharacteristicItemShort(kPropName , "", etype.getValue()); + + }); + + if (this.additionalProperties != null ) { + this.additionalProperties.forEach((kPropName, vProVal) -> { + rs.addResourceCharacteristicItemShort("additionalProperty." + kPropName, "", EValueType.TEXT.getValue()); + + }); + } + + + return rs; + } + + @Override + public ResourceUpdate toResourceUpdate() { + + return this.toResourceCreate(); + } + +} diff --git a/src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesCRV1.java b/src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesCRV1.java new file mode 100644 index 0000000..effcda6 --- /dev/null +++ b/src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesCRV1.java @@ -0,0 +1,218 @@ +package org.etsi.osl.domain.model.kubernetes; + +import java.util.HashMap; +import java.util.Map; +import org.etsi.osl.domain.model.DomainModelDefinition; +import org.etsi.osl.domain.model.ITMFRCM634_ModelTransformer; +import org.etsi.osl.domain.model.ITMFRI639_ModelTransformer; +import org.etsi.osl.tmf.common.model.ELifecycle; +import org.etsi.osl.tmf.common.model.EValueType; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; +import org.etsi.osl.tmf.ri639.model.ResourceCreate; +import org.etsi.osl.tmf.ri639.model.ResourceOperationalStateType; +import org.etsi.osl.tmf.ri639.model.ResourceStatusType; +import org.etsi.osl.tmf.ri639.model.ResourceUpdate; +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +/** + * @author ctranoris + */ +@Getter +@Setter +public class KubernetesCRV1 extends DomainModelDefinition + implements ITMFRCM634_ModelTransformer, ITMFRI639_ModelTransformer { + + public static final String OSL_KUBCRV1_RSPEC_NAME = "kubernetes-cr-v1.openslice.io"; + public static final String OSL_KUBCRV1_RSPEC_VERSION = "0.0.4"; + public static final String OSL_KUBCRV1_RSPEC_CATEGORY = "KubernetesCRV1-apiextensions.k8s.io/v1"; + public static final String OSL_KUBCRV1_RSPEC_TYPE = "LogicalResourceSpecification"; + public static final String OSL_KUBCRV1_RSPEC_DESCRIPTION = "This Specification is used to describe a generic KubernetesCRV1"; + + private String osl_KUBCRV1_RSPEC_UUID = null; //this is assigned by the system through the DB for a specific instance + + private String clusterMasterURL; + private String currentContextCluster; + private String fullResourceName; + private String kind; + private String apiGroup; + private String namespace; + private String UID; + private String metadata; + private String yaml; + private String json; + private Map properties; + private Map additionalProperties; + private String cr_spec; + private String statusCheckFieldName; + private String statusCheckValueStandby; + private String statusCheckValueAlarm; + private String statusCheckValueAvailable; + private String statusCheckValueReserved; + private String statusCheckValueUnknown; + private String statusCheckValueSuspended; + private ResourceStatusType statusValue; + + @Builder + public KubernetesCRV1(String osl_KUBCRV1_RSPEC_UUID, String uuid, String name, String version, String description, String category, + String clusterMasterURL, String currentContextCluster, String fullResourceName, String namespace, + String kind, String apiGroup, String uID, String metadata, ResourceStatusType statusValue, + String yaml, + String json) { + super(uuid, name, version, description, category); + this.osl_KUBCRV1_RSPEC_UUID = osl_KUBCRV1_RSPEC_UUID; + this.clusterMasterURL = clusterMasterURL; + this.currentContextCluster = currentContextCluster; + this.fullResourceName = fullResourceName; + this.kind = kind; + this.apiGroup = apiGroup; + this.namespace = namespace; + this.UID = uID; + this.metadata = metadata; + this.yaml = yaml; + this.json = json; + this.statusValue = statusValue; + this.properties = new HashMap<>(); + this.additionalProperties = new HashMap<>(); + } + + + + @Override + public ResourceSpecificationCreate toRSpecCreate_InitRepo() { + + ResourceSpecificationCreate rsc = toRSpecCreate(); + rsc.setName( OSL_KUBCRV1_RSPEC_NAME ); + rsc.setCategory( OSL_KUBCRV1_RSPEC_CATEGORY ); + rsc.setVersion(OSL_KUBCRV1_RSPEC_VERSION); + rsc.setDescription( OSL_KUBCRV1_RSPEC_DESCRIPTION ); + rsc.setType( OSL_KUBCRV1_RSPEC_TYPE ); + + return rsc; + } + + + @Override + public ResourceSpecificationCreate toRSpecCreate() { + + ResourceSpecificationCreate rsc = new ResourceSpecificationCreate(); + rsc.setName( this.name ); + rsc.setCategory( OSL_KUBCRV1_RSPEC_CATEGORY ); + rsc.setVersion(this.version); + rsc.setDescription( this.description ); + rsc.setType( OSL_KUBCRV1_RSPEC_TYPE ); + + rsc.setLifecycleStatus( ELifecycle.ACTIVE.getValue() ); + rsc.addResourceSpecificationCharacteristicItemShort( "clusterMasterURL", "", EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort( "currentContextCluster", "", EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort( "fullResourceName", "", EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort( "Kind", "", EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort( "apiGroup", "", EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort( "UID", "", EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort( "namespace", "", EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort( "metadata", "", EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort( "yaml", "", EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort( "json", "", EValueType.TEXT.getValue(), "", false); + + rsc.addResourceSpecificationCharacteristicItemShort( "_CR_SPEC", "", EValueType.TEXT.getValue(), "Used for providing the json Custom Resource description to apply", false); + rsc.addResourceSpecificationCharacteristicItemShort( "_CR_CHECK_FIELD", "", EValueType.TEXT.getValue(), "Used for providing the field that need to be checked for the resource status", false); + rsc.addResourceSpecificationCharacteristicItemShort( "_CR_CHECKVAL_STANDBY", "", EValueType.TEXT.getValue(), "Used for providing the equivalent value from resource to signal the standby status", false); + rsc.addResourceSpecificationCharacteristicItemShort( "_CR_CHECKVAL_ALARM", "", EValueType.TEXT.getValue(), "Used for providing the equivalent value from resource to signal the alarm status", false); + rsc.addResourceSpecificationCharacteristicItemShort( "_CR_CHECKVAL_AVAILABLE", "", EValueType.TEXT.getValue(), "Used for providing the equivalent value from resource to signal the available status", false); + rsc.addResourceSpecificationCharacteristicItemShort( "_CR_CHECKVAL_RESERVED", "", EValueType.TEXT.getValue(), "Used for providing the equivalent value from resource to signal the reserved status", false); + rsc.addResourceSpecificationCharacteristicItemShort( "_CR_CHECKVAL_UNKNOWN", "", EValueType.TEXT.getValue(), "Used for providing the equivalent value from resource to signal the unknown status", false); + rsc.addResourceSpecificationCharacteristicItemShort( "_CR_CHECKVAL_SUSPENDED", "", EValueType.TEXT.getValue(), "Used for providing the equivalent value from resource to signal the suspended status", false); + +// rsc.addResourceSpecificationCharacteristicItemShort( "properties", "", EValueType.SET.getValue()); +// rsc.addResourceSpecificationCharacteristicItemShort( "additionalProperties", "", EValueType.SET.getValue()); + + + return rsc; + } + + @Override + public ResourceSpecificationUpdate toRSpecUpdate() { + return this.toRSpecCreate(); + } + + @Override + public KubernetesCRV1 fromRSpec(ResourceSpecification rSpec) { + osl_KUBCRV1_RSPEC_UUID = rSpec.getUuid(); + return this; + } + + @Override + public ResourceCreate toResourceCreate() { + + if (osl_KUBCRV1_RSPEC_UUID == null) { + return null; + } + + ResourceSpecificationRef rSpecRef = new ResourceSpecificationRef(); + rSpecRef.setId( osl_KUBCRV1_RSPEC_UUID ); + rSpecRef.setName( OSL_KUBCRV1_RSPEC_NAME ); + rSpecRef.setVersion( OSL_KUBCRV1_RSPEC_VERSION ); + + ResourceCreate rs = new ResourceCreate(); + rs.name( this.name ) + .category( this.category ) + .description( this.description ) + + .resourceStatus( ResourceStatusType.RESERVED ) + + .operationalState( ResourceOperationalStateType.ENABLE ) + .resourceSpecification( rSpecRef ) + .resourceVersion( this.version); + + rs.addResourceCharacteristicItemShort("clusterMasterURL", this.clusterMasterURL, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("currentContextCluster", this.currentContextCluster, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("fullResourceName", this.fullResourceName, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("Kind", this.kind, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("apiGroup", this.apiGroup, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("apiVersion", this.version , EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("UID", this.UID, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("namespace", this.namespace, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("metadata", this.metadata, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("yaml", this.yaml, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("json", this.json, EValueType.TEXT.getValue()); + + + rs.addResourceCharacteristicItemShort("_CR_SPEC", this.cr_spec, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("_CR_CHECK_FIELD", this.statusCheckFieldName, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("_CR_CHECKVAL_STANDBY", this.statusCheckValueStandby, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("_CR_CHECKVAL_ALARM", this.statusCheckValueAlarm, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("_CR_CHECKVAL_AVAILABLE", this.statusCheckValueAvailable, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("_CR_CHECKVAL_RESERVED", this.statusCheckValueReserved, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("_CR_CHECKVAL_UNKNOWN", this.statusCheckValueUnknown, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("_CR_CHECKVAL_SUSPENDED", this.statusCheckValueSuspended, EValueType.TEXT.getValue()); + + rs.resourceStatus( this.statusValue ); + + if (this.properties != null) + this.properties.forEach((kPropName, vProVal) -> { + rs.addResourceCharacteristicItemShort(kPropName , vProVal, EValueType.TEXT.getValue()); + + }); + + if (this.additionalProperties != null ) { + this.additionalProperties.forEach((kPropName, vProVal) -> { + rs.addResourceCharacteristicItemShort(kPropName, vProVal, EValueType.TEXT.getValue()); + + }); + } + + + return rs; + } + + @Override + public ResourceUpdate toResourceUpdate() { + + return this.toResourceCreate(); + } + +} diff --git a/src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesContextDefinition.java b/src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesContextDefinition.java new file mode 100644 index 0000000..c4f6a01 --- /dev/null +++ b/src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesContextDefinition.java @@ -0,0 +1,155 @@ +package org.etsi.osl.domain.model.kubernetes; + +import org.etsi.osl.domain.model.DomainModelDefinition; +import org.etsi.osl.domain.model.ITMFRCM634_ModelTransformer; +import org.etsi.osl.domain.model.ITMFRI639_ModelTransformer; +import org.etsi.osl.tmf.common.model.ELifecycle; +import org.etsi.osl.tmf.common.model.EValueType; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; +import org.etsi.osl.tmf.ri639.model.ResourceCreate; +import org.etsi.osl.tmf.ri639.model.ResourceOperationalStateType; +import org.etsi.osl.tmf.ri639.model.ResourceStatusType; +import org.etsi.osl.tmf.ri639.model.ResourceUpdate; +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +/** + * @author ctranoris + */ +@Getter +@Setter +public class KubernetesContextDefinition + extends DomainModelDefinition + implements ITMFRCM634_ModelTransformer, ITMFRI639_ModelTransformer { + + + public static final String OSL_KUBD_RSPEC_NAME = "kubernetes-context-definition.openslice.io"; + public static final String OSL_KUBD_RSPEC_VERSION = "0.0.1"; + public static final String OSL_KUBD_RSPEC_CATEGORY = "KubernetesContextDefinition"; + public static final String OSL_KUBD_RESOURCE_CATEGORY = "KubernetesContextDefinition"; + public static final String OSL_KUBD_RSPEC_TYPE = "LogicalResourceSpecification"; + public static final String OSL_KUBD_RSPEC_DESCRIPTION = "This Specification is used to describe a KubernetesClient"; + + private String osl_KUBD_SPEC_UUID = null; //this is assigned by the system through the DB for a specific instance + + //properties of an instance + private String masterURL; + private String currentContextName; + private String currentContextCluster; + private String currentContextUser; + private String clusterVersion; + + + @Builder + public KubernetesContextDefinition(String osl_KUBD_SPEC_UUID, String uuid, String name, String version, String description, String category, + String masterURL, String currentContextName, String currentContextCluster, String currentContextUser, + String clusterVersion) { + super(uuid, name, version, description, category); + this.osl_KUBD_SPEC_UUID = osl_KUBD_SPEC_UUID; + this.masterURL = masterURL; + this.currentContextName = currentContextName; + this.currentContextCluster = currentContextCluster; + this.currentContextUser = currentContextUser; + this.clusterVersion = clusterVersion; + } + + + @Override + public ResourceSpecificationCreate toRSpecCreate_InitRepo() { + ResourceSpecificationCreate rsc = this.toRSpecCreate(); + rsc.setName( OSL_KUBD_RSPEC_NAME ); + rsc.setVersion( OSL_KUBD_RSPEC_VERSION ); + rsc.setCategory( OSL_KUBD_RSPEC_CATEGORY ); + rsc.setDescription( OSL_KUBD_RSPEC_DESCRIPTION ); + rsc.setType( OSL_KUBD_RSPEC_TYPE ); + rsc.setLifecycleStatus( ELifecycle.ACTIVE.getValue() ); + + return rsc; + + } + + @Override + public ResourceSpecificationCreate toRSpecCreate() { + ResourceSpecificationCreate rsc = new ResourceSpecificationCreate(); + rsc.setName( this.name ); + rsc.setVersion( this.version ); + rsc.setCategory( OSL_KUBD_RSPEC_CATEGORY ); + rsc.setDescription( this.description ); + rsc.setType( OSL_KUBD_RSPEC_TYPE ); + rsc.setLifecycleStatus( ELifecycle.ACTIVE.getValue() ); + rsc.addResourceSpecificationCharacteristicItemShort( "masterURL", "", EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort( "resourceVersion", "", EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort( "currentContextName", "", EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort( "currentContextCluster", "", EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort( "currentContextUser", "", EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort( "clusterVersion", "", EValueType.TEXT.getValue(), "", false); + return rsc; + + } + + @Override + public ResourceSpecificationUpdate toRSpecUpdate() { + return this.toRSpecCreate(); + } + + /* we care only for the ID of the specification from the stored model. The definition will be static + * (non-Javadoc) + * @see org.etsi.osl.domain.model.ITMFRCM634_ModelTransformer#fromRSpec(org.etsi.osl.tmf.rcm634.model.ResourceSpecification) + */ + @Override + public KubernetesContextDefinition fromRSpec(ResourceSpecification rSpec) { + osl_KUBD_SPEC_UUID = rSpec.getUuid(); + return this; + } + + + /* + * returns Null if OSL_KUBD_RSPEC_UUID is not initialized + * (non-Javadoc) + * @see org.etsi.osl.domain.model.ITMFRI639_ModelTransformer#toResourceCreate() + */ + @Override + public ResourceCreate toResourceCreate() throws Exception { + if (this.osl_KUBD_SPEC_UUID == null) { + throw new Exception( "osl_UUID is null. Resource cannot be created without referring a Resource specification" ); + + } + + ResourceSpecificationRef rSpecRef = new ResourceSpecificationRef(); + rSpecRef.setId( this.osl_KUBD_SPEC_UUID ); + rSpecRef.setName( OSL_KUBD_RSPEC_NAME ); + rSpecRef.setVersion( OSL_KUBD_RSPEC_VERSION ); + + ResourceCreate rs = new ResourceCreate(); + rs.setName( this.name ); + rs.setResourceStatus( ResourceStatusType.AVAILABLE ); + rs.setOperationalState( ResourceOperationalStateType.ENABLE); + rs.setCategory( OSL_KUBD_RESOURCE_CATEGORY ); + rs.setResourceSpecification(rSpecRef); + rs.resourceVersion( this.clusterVersion ); + + rs.addResourceCharacteristicItemShort("masterUrl", this.masterURL, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("currentContextName", this.currentContextName , EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("currentContextCluster", this.currentContextCluster , EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("currentContextUser", this.currentContextUser , EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("clusterVersion", this.clusterVersion , EValueType.TEXT.getValue()); + + + + + return rs; + } + + @Override + public ResourceUpdate toResourceUpdate() throws Exception { + return this.toResourceCreate(); + } + + + + +} diff --git a/src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesSecret.java b/src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesSecret.java new file mode 100644 index 0000000..820c777 --- /dev/null +++ b/src/main/java/org/etsi/osl/domain/model/kubernetes/KubernetesSecret.java @@ -0,0 +1,213 @@ +package org.etsi.osl.domain.model.kubernetes; + +import java.util.HashMap; +import java.util.Map; +import org.etsi.osl.domain.model.DomainModelDefinition; +import org.etsi.osl.domain.model.ITMFRCM634_ModelTransformer; +import org.etsi.osl.domain.model.ITMFRI639_ModelTransformer; +import org.etsi.osl.tmf.common.model.ELifecycle; +import org.etsi.osl.tmf.common.model.EValueType; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; +import org.etsi.osl.tmf.ri639.model.ResourceCreate; +import org.etsi.osl.tmf.ri639.model.ResourceOperationalStateType; +import org.etsi.osl.tmf.ri639.model.ResourceStatusType; +import org.etsi.osl.tmf.ri639.model.ResourceUpdate; +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +/** + * @author ctranoris + */ +@Getter +@Setter +public class KubernetesSecret extends DomainModelDefinition + implements ITMFRCM634_ModelTransformer, ITMFRI639_ModelTransformer { + + public static final String OSL_KUBSECRET_RSPEC_NAME = "kubernetes-secret.openslice.io"; + public static final String OSL_KUBSECRET_RSPEC_VERSION = "0.0.3"; + public static final String OSL_KUBSECRET_RSPEC_CATEGORY = "Secret/Kubernetes/v1"; + public static final String OSL_KUBSECRET_RESOURCE_CATEGORY = "Secret/Kubernetes/v1"; + public static final String OSL_KUBSECRET_RSPEC_TYPE = "LogicalResourceSpecification"; + public static final String OSL_KUBSECRET_RSPEC_DESCRIPTION = "This Specification is used to describe a generic Kubernetes Secret"; + + private String osl_KUBCRD_RSPEC_UUID = null; //this is assigned by the system through the DB for a specific instance + + private String clusterMasterURL; + private String currentContextCluster; + private String fullResourceName; + private String kind; + private String apiGroup; + private String UID; + private String metadata; + private String yaml; + private String json; + private String namespace; + + + private Map data; + private String dataObj; + private Map properties; + + + @Builder + public KubernetesSecret(String osl_KUBCRD_RSPEC_UUID, String uuid, String name, String version, String description, String category, + String clusterMasterURL, String currentContextCluster, String fullResourceName, String namespace, + String kind, String apiGroup, String uID, + String metadata, + String yaml, + String json) { + super(uuid, name, version, description, category); + this.osl_KUBCRD_RSPEC_UUID = osl_KUBCRD_RSPEC_UUID; + this.clusterMasterURL = clusterMasterURL; + this.currentContextCluster = currentContextCluster; + this.fullResourceName = fullResourceName; + this.kind = kind; + this.apiGroup = apiGroup; + this.namespace = namespace; + this.UID = uID; + this.metadata = metadata; + this.yaml = yaml; + this.json = json; + this.properties = new HashMap<>(); + this.data = new HashMap<>(); + this.category = OSL_KUBSECRET_RSPEC_CATEGORY; + } + + + + @Override + public ResourceSpecificationCreate toRSpecCreate_InitRepo() { + + ResourceSpecificationCreate rsc = this.toRSpecCreate(); + rsc.setName( OSL_KUBSECRET_RSPEC_NAME ); + rsc.setCategory( OSL_KUBSECRET_RSPEC_CATEGORY ); + rsc.setVersion(OSL_KUBSECRET_RSPEC_VERSION); + rsc.setDescription( OSL_KUBSECRET_RSPEC_DESCRIPTION ); + rsc.setType( OSL_KUBSECRET_RSPEC_TYPE ); + + + + return rsc; + } + + @Override + public ResourceSpecificationCreate toRSpecCreate() { + + ResourceSpecificationCreate rsc = new ResourceSpecificationCreate(); + rsc.setName( this.name ); + rsc.setCategory( OSL_KUBSECRET_RSPEC_CATEGORY ); + rsc.setVersion( this.version ); + rsc.setDescription( this.version ); + rsc.setType( OSL_KUBSECRET_RSPEC_TYPE ); + + rsc.setLifecycleStatus( ELifecycle.ACTIVE.getValue() ); + rsc.addResourceSpecificationCharacteristicItemShort("clusterMasterURL", this.clusterMasterURL, EValueType.TEXT.getValue(), "URL of cluster", false); + rsc.addResourceSpecificationCharacteristicItemShort("currentContextCluster", this.currentContextCluster, EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort("fullResourceName", this.fullResourceName, EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort("Kind", this.kind, EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort("apiGroup", this.apiGroup, EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort("UID", this.UID, EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort("metadata", this.metadata, EValueType.OBJECT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort("yaml", this.yaml, EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort("json", this.json, EValueType.TEXT.getValue(), "", false); + rsc.addResourceSpecificationCharacteristicItemShort("data", this.dataObj, EValueType.OBJECT.getValue(), "", false); + + if (this.properties != null) + this.properties.forEach((kPropName, vProVal) -> { + EValueType etype; + etype = EValueType.TEXT; + rsc.addResourceSpecificationCharacteristicItemShort(kPropName , vProVal, etype.getValue(), "", false); + + }); + if (this.data != null) + this.data.forEach((kPropName, vProVal) -> { + EValueType etype; + etype = EValueType.TEXT; + rsc.addResourceSpecificationCharacteristicItemShort(kPropName , vProVal, etype.getValue(), "", false); + + }); + + + + return rsc; + } + + @Override + public ResourceSpecificationUpdate toRSpecUpdate() { + return this.toRSpecCreate(); + } + + @Override + public KubernetesSecret fromRSpec(ResourceSpecification rSpec) { + this.osl_KUBCRD_RSPEC_UUID = rSpec.getUuid(); + return this; + } + + @Override + public ResourceCreate toResourceCreate() { + + if (osl_KUBCRD_RSPEC_UUID == null) { + return null; + } + + ResourceSpecificationRef rSpecRef = new ResourceSpecificationRef(); + rSpecRef.setId( osl_KUBCRD_RSPEC_UUID ); + rSpecRef.setName( OSL_KUBSECRET_RSPEC_NAME ); + rSpecRef.setVersion( OSL_KUBSECRET_RSPEC_VERSION ); + + ResourceCreate rs = new ResourceCreate(); + rs.name( this.name ) + .category( OSL_KUBSECRET_RESOURCE_CATEGORY ) + .description( this.description ) + .resourceStatus( ResourceStatusType.AVAILABLE ) + .operationalState( ResourceOperationalStateType.ENABLE ) + .resourceSpecification( rSpecRef ) + .resourceVersion( this.version); + + rs.addResourceCharacteristicItemShort("clusterMasterURL", this.clusterMasterURL, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("currentContextCluster", this.currentContextCluster, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("fullResourceName", this.fullResourceName, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("Kind", this.kind, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("apiGroup", this.apiGroup, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("UID", this.UID, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("metadata", this.metadata, EValueType.OBJECT.getValue()); + rs.addResourceCharacteristicItemShort("yaml", this.yaml, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("json", this.json, EValueType.TEXT.getValue()); + rs.addResourceCharacteristicItemShort("data", this.dataObj, EValueType.OBJECT.getValue()); + + + + + if (this.properties != null) + this.properties.forEach((kPropName, vProVal) -> { + EValueType etype; + etype = EValueType.TEXT; + + rs.addResourceCharacteristicItemShort(kPropName , vProVal, etype.getValue()); + + }); + if (this.data != null) + this.data.forEach((kPropName, vProVal) -> { + EValueType etype; + etype = EValueType.TEXT; + rs.addResourceCharacteristicItemShort(kPropName , vProVal, etype.getValue()); + + }); + + + + + return rs; + } + + @Override + public ResourceUpdate toResourceUpdate() { + + return this.toResourceCreate(); + } + +} diff --git a/src/main/java/org/etsi/osl/sd/model/ServiceDescriptor.java b/src/main/java/org/etsi/osl/sd/model/ServiceDescriptor.java new file mode 100644 index 0000000..94e7296 --- /dev/null +++ b/src/main/java/org/etsi/osl/sd/model/ServiceDescriptor.java @@ -0,0 +1,139 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.sd.model; + +import java.util.HashSet; +import java.util.Set; +import org.etsi.osl.tmf.scm633.model.ServiceSpecification; +import org.hibernate.annotations.GenericGenerator; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import jakarta.validation.Valid; + +/** + * This model will hold information that will help later on service orchestration. + * It should be attached to entities that we need to orchestrate in general, like {@link ServiceSpecification} + * + * @author ctranoris + * + */ +@Schema(description = "This model will hold information that will help later on service orchestration.") +@Validated +@Entity(name = "ServiceDescriptor") +public class ServiceDescriptor { + + @Id + @GeneratedValue(generator = "uuid") + @GenericGenerator(name = "uuid", strategy = "uuid2") + protected String uuid = null; + + + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + Set metadata = new HashSet<>(); + + + /** + * references the root entity ID of this SD + */ + private String rootEntityID; + + /** + * references the root entity ID of this SD + */ + private String rootEntityType; + + + public ServiceDescriptor() { + + } + + + /** + * @return the metadata + */ + public Set getMetadata() { + return metadata; + } + + + /** + * @param metadata the metadata to set + */ + public void setMetadata(Set metadata) { + this.metadata = metadata; + } + + + /** + * @return the uuid + */ + public String getUuid() { + return uuid; + } + + + /** + * @param uuid the uuid to set + */ + public void setUuid(String uuid) { + this.uuid = uuid; + } + + + /** + * @return the rootEntityID + */ + public String getRootEntityID() { + return rootEntityID; + } + + + /** + * @param rootEntityID the rootEntityID to set + */ + public void setRootEntityID(String rootEntityID) { + this.rootEntityID = rootEntityID; + } + + + /** + * @return the rootEntityType + */ + public String getRootEntityType() { + return rootEntityType; + } + + + /** + * @param rootEntityType the rootEntityType to set + */ + public void setRootEntityType(String rootEntityType) { + this.rootEntityType = rootEntityType; + } + + + +} diff --git a/src/main/java/org/etsi/osl/sd/model/ServiceDescriptorAttr.java b/src/main/java/org/etsi/osl/sd/model/ServiceDescriptorAttr.java new file mode 100644 index 0000000..364dd46 --- /dev/null +++ b/src/main/java/org/etsi/osl/sd/model/ServiceDescriptorAttr.java @@ -0,0 +1,100 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.sd.model; + +import org.etsi.osl.tmf.scm633.model.ServiceSpecification; +import org.hibernate.annotations.GenericGenerator; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; + +/** + * This model will hold information that will help later on service + * orchestration. It should be attached to entities that we need to orchestrate + * in general, like {@link ServiceSpecification} + * + * @author ctranoris + * + */ +@Entity(name = "ServiceDescriptorAttr") +public class ServiceDescriptorAttr { + + @Id + @GeneratedValue(generator = "uuid") + @GenericGenerator(name = "uuid", strategy = "uuid2") + protected String uuid = null; + + private String name; + + private String value; + + public ServiceDescriptorAttr() { + + } + + public ServiceDescriptorAttr(String name, String value) { + super(); + this.name = name; + this.value = value; + } + + /** + * @return the name + */ + public String getName() { + return name; + } + + /** + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + + /** + * @return the value + */ + public String getValue() { + return value; + } + + /** + * @param value the value to set + */ + public void setValue(String value) { + this.value = value; + } + + /** + * @return the uuid + */ + public String getUuid() { + return uuid; + } + + /** + * @param uuid the uuid to set + */ + public void setUuid(String uuid) { + this.uuid = uuid; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/BootstrapRepository.java b/src/main/java/org/etsi/osl/tmf/BootstrapRepository.java new file mode 100644 index 0000000..31cc63f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/BootstrapRepository.java @@ -0,0 +1,183 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceSpecificationRepoService; +import org.etsi.osl.tmf.scm633.model.ServiceCandidateUpdate; +import org.etsi.osl.tmf.scm633.model.ServiceCatalog; +import org.etsi.osl.tmf.scm633.model.ServiceCatalogCreate; +import org.etsi.osl.tmf.scm633.model.ServiceCategory; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryCreate; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryRef; +import org.etsi.osl.tmf.scm633.model.ServiceSpecification; +import org.etsi.osl.tmf.scm633.reposervices.CandidateRepoService; +import org.etsi.osl.tmf.scm633.reposervices.CatalogRepoService; +import org.etsi.osl.tmf.scm633.reposervices.CategoryRepoService; +import org.etsi.osl.tmf.scm633.reposervices.ServiceSpecificationRepoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import jakarta.annotation.PostConstruct; + +/** + * @author ctranoris + * + */ +@Service +public class BootstrapRepository { + + private static final transient Log logger = LogFactory.getLog(BootstrapRepository.class.getName()); + + private static final boolean ADDGST = true; + + private static final boolean ADDVINNISBT = false; + + private static final String GST_EXAMPLE_NAME = "A GST(NEST) Service Example"; + + private static final String VINNI_EXAMPLE_NAME = "A VINNI Service Example"; + + @Autowired + CatalogRepoService catalogRepoService; + + @Autowired + CategoryRepoService categRepoService; + + @Autowired + CandidateRepoService candidateRepoService; + + @Autowired + ServiceSpecificationRepoService specRepoService; + + @Autowired + ResourceSpecificationRepoService resourceSpecRepoService; + + + @Autowired + ObjectMapper objectMapper; + + @PostConstruct + @Transactional + public void initRepo() { + if (this.catalogRepoService.findAll().size() == 0) { + ServiceCatalogCreate sc = new ServiceCatalogCreate(); + sc.setName("Catalog"); + sc.setDescription("Primary Catalog"); + sc.setVersion("1.0"); + ServiceCatalog scatalog = this.catalogRepoService.addCatalog(sc); + + ServiceCategoryCreate scatCreate = new ServiceCategoryCreate(); + scatCreate.setName("Generic Services"); + scatCreate.setDescription("Generic Services of this catalog"); + scatCreate.setVersion("1.0"); + scatCreate.setIsRoot(true); + ServiceCategory scategory = this.categRepoService.addCategory(scatCreate); + + scatalog.getCategoryObj().add(scategory); + scatalog = this.catalogRepoService.updateCatalog(scatalog); + /** + * Add GST + */ + if (ADDGST) { + this.createFirstTimeGSTRepo( scategory ); + } + /** + * Add VINNI-SB + */ + if (ADDVINNISBT) { + this.createFirstTimeVINNISBTRepo( scategory ); + } + + + } else { //check if we have the latest version of GST + if (ADDGST) { + ServiceCategory scategory = this.categRepoService.findByName("Generic Services"); + ServiceSpecification serviceSpecificationObj = this.specRepoService.findByNameAndVersion( GST_EXAMPLE_NAME , "5.0.0"); + + if ( ( scategory != null ) && ( serviceSpecificationObj == null )) + { + this.createFirstTimeGSTRepo( scategory ); + } + } + if (ADDVINNISBT) { + ServiceCategory scategory = this.categRepoService.findByName("Generic Services"); + ServiceSpecification serviceSpecificationObj = this.specRepoService.findByNameAndVersion(VINNI_EXAMPLE_NAME, "0.1.0"); + if ( ( scategory != null ) && ( serviceSpecificationObj == null ) ) + { + this.createFirstTimeVINNISBTRepo( scategory ); + } + } + + + } + } + + + @Transactional + private void createFirstTimeGSTRepo(ServiceCategory scategory) { + + ServiceSpecification serviceSpecificationObj = this.specRepoService.cloneGSTServiceSpecification( GST_EXAMPLE_NAME); + //serviceSpecificationObj = this.specRepoService.updateServiceSpecification( serviceSpecificationObj ); + serviceSpecificationObj = this.specRepoService.findByUuid( serviceSpecificationObj.getId() ); + + ServiceCandidateUpdate scand = new ServiceCandidateUpdate(); + ServiceSpecificationRef serviceSpecificationRef = new ServiceSpecificationRef(); + serviceSpecificationRef.setId(serviceSpecificationObj.getId()); + ServiceCategoryRef categoryItem = new ServiceCategoryRef(); + categoryItem.setId(scategory.getId()); + scand.addCategoryItem(categoryItem); + scand.setServiceSpecification(serviceSpecificationRef); + + this.candidateRepoService.updateCandidate( + serviceSpecificationObj.getServiceCandidateObjId() , + scand); + + } + + + @Transactional + public void createFirstTimeVINNISBTRepo( ServiceCategory scategory ) { + + ServiceSpecification serviceSpecVinniSB = this.specRepoService.cloneVINNIServiceSpecification( VINNI_EXAMPLE_NAME, true, true, true, true, true, true, true, true, true, true); + + + /** + * add VINNI-SB Service Spec to Catalog + */ + + + ServiceCandidateUpdate scand = new ServiceCandidateUpdate(); + ServiceSpecificationRef serviceSpecificationRef = new ServiceSpecificationRef(); + serviceSpecificationRef.setId(serviceSpecVinniSB.getId()); + ServiceCategoryRef categoryItem = new ServiceCategoryRef(); + categoryItem.setId(scategory.getId()); + scand.addCategoryItem(categoryItem); + scand.setServiceSpecification(serviceSpecificationRef); + + this.candidateRepoService.updateCandidate( + serviceSpecVinniSB.getServiceCandidateObjId(), + scand); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/BootstrapResources.java b/src/main/java/org/etsi/osl/tmf/BootstrapResources.java new file mode 100644 index 0000000..7b4432f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/BootstrapResources.java @@ -0,0 +1,299 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf; + +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import org.etsi.osl.domain.model.kubernetes.KubernetesCRDV1; +import org.etsi.osl.domain.model.kubernetes.KubernetesCRV1; +import org.etsi.osl.domain.model.kubernetes.KubernetesContextDefinition; +import org.etsi.osl.domain.model.kubernetes.KubernetesSecret; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidate; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidateCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidateUpdate; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalog; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalogCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalogUpdate; +import org.etsi.osl.tmf.rcm634.model.ResourceCategory; +import org.etsi.osl.tmf.rcm634.model.ResourceCategoryCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceCategoryRef; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRelationship; +import org.etsi.osl.tmf.rcm634.repo.ResourceCatalogRepository; +import org.etsi.osl.tmf.rcm634.repo.ResourceSpecificationRepository; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceCandidateRepoService; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceCatalogRepoService; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceCategoryRepoService; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceSpecificationRepoService; +import org.etsi.osl.tmf.ri639.reposervices.ResourceRepoService; +import org.etsi.osl.tmf.scm633.model.ServiceSpecification; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.annotation.PostConstruct; + +@Service +public class BootstrapResources { + + @Autowired + ResourceCatalogRepoService resourceCatalogRepoService; + + @Autowired + ResourceCategoryRepoService resourceCategRepoService; + + @Autowired + ResourceCandidateRepoService resourceCandidateRepoService; + + @Autowired + ResourceSpecificationRepoService resourceSpecRepoService; + + @Autowired + ResourceRepoService resourceRepoService; + + @Autowired + ResourceCatalogRepository resourceCatalogRepository; + + @Autowired + ResourceSpecificationRepository resourceSpecificationRepo; + + @Autowired + ObjectMapper objectMapper; + + + private static final String OSM_TENANT = "osm-tenant.openslice.io"; + + private static final String VIM_ACCOUNT = "vim-account.openslice.io.json"; + + private static final String GNB_TENANT = "gnodeb.openslice.io"; + + + private static final String INFRA_RESOURCES = "Infrastructure Resources"; + + private static final String NETWORK_RESOURCES = "Network Resources"; + + + + @PostConstruct + @Transactional + public void initRepo() { + + ResourceCatalog scatalog = this.resourceCatalogRepoService.findByName( "Catalog" ); + if ( scatalog == null) { + + //Create a new ResourceCatalogCreate named Catalog + ResourceCatalogCreate sc = new ResourceCatalogCreate(); + sc.setName("Catalog"); + sc.setDescription("Primary Resource Catalog"); + sc.setVersion("1.0"); + //Turns ResourceCatalogCreate to a ResourceCatalog with the same attributes set at the ResourceCatalogCreate + scatalog = this.resourceCatalogRepoService.addCatalog(sc); + + // Create a new ResourceCategoryCreate named Generic Resources + ResourceCategoryCreate scatCreate = new ResourceCategoryCreate(); + scatCreate.setName("Generic Resources"); + scatCreate.setDescription("Generic Resources of this catalog"); + scatCreate.setVersion("1.0"); + scatCreate.setIsRoot(true); + + ResourceCategory scategory = this.resourceCategRepoService.addCategory(scatCreate); + //Adds the ResourceCategory to the Primary Resource Catalog and then saves it to the resourceCatalogRepository + //scatalog.getCategoryObj().add(scategory); +// ResourceCategoryRef catref = new ResourceCategoryRef(); +// catref.setId( scategory.getId() ); +// catref.setName( scategory.getName()); + scatalog.addCategory(scategory); + } + + ResourceCategory scategoryNetw = this.resourceCategRepoService.findByName(NETWORK_RESOURCES ); + if ( scategoryNetw == null ){ + ResourceCategoryCreate scategoryNetwCreate = new ResourceCategoryCreate(); + scategoryNetwCreate.setName(NETWORK_RESOURCES); + scategoryNetwCreate.setDescription("Network Resources on this catalog"); + scategoryNetwCreate.setVersion("1.0"); + scategoryNetwCreate.setIsRoot(true); + // Turns ResourceCategoryCreate to a ResourceCategory with the same attributes set at the ResourceCategoryCreate + scategoryNetw = this.resourceCategRepoService.addCategory( scategoryNetwCreate ); + //Adds the ResourceCategory to the Primary Resource Catalog and then saves it to the resourceCatalogRepository +// ResourceCategoryRef catref = new ResourceCategoryRef(); +// catref.setId( scategoryNetw.getId() ); +// catref.setName( scategoryNetw.getName()); + scatalog.addCategory( scategoryNetw ); + } + + ResourceCategory scategoryInfra = this.resourceCategRepoService.findByName(INFRA_RESOURCES ); + if ( scategoryInfra == null ){ + ResourceCategoryCreate scategoryInfraCreate = new ResourceCategoryCreate(); + scategoryInfraCreate.setName( INFRA_RESOURCES ); + scategoryInfraCreate.setDescription("Infrastructure Resources on this catalog"); + scategoryInfraCreate.setVersion("1.0"); + scategoryInfraCreate.setIsRoot(true); + scategoryInfra = this.resourceCategRepoService.addCategory( scategoryInfraCreate ); +// ResourceCategoryRef catref = new ResourceCategoryRef(); +// catref.setId( scategoryInfra.getId() ); +// catref.setName( scategoryInfra.getName()); + scatalog.addCategory( scategoryInfra ); + } + + scatalog = this.resourceCatalogRepoService.updateCatalog( scatalog ); + + + ResourceSpecification resourceSpecificationObj = this.resourceSpecRepoService.findByNameAndVersion( VIM_ACCOUNT , "0.2.0"); + if ( ( resourceSpecificationObj == null )) + { + this.createBootResourceSpec( scategoryNetw, VIM_ACCOUNT , "vim-account.openslice.io.json" ); + } + + resourceSpecificationObj = this.resourceSpecRepoService.findByNameAndVersion( OSM_TENANT , "0.2.0"); + if ( ( resourceSpecificationObj == null )) + { + this.createBootResourceSpec( scategoryNetw, OSM_TENANT , "osm-tenant.openslice.io.json" ); + } + resourceSpecificationObj = this.resourceSpecRepoService.findByNameAndVersion( GNB_TENANT , "0.2.0"); + if ( ( resourceSpecificationObj == null )) + { + this.createBootPhysicalResourceSpec( scategoryNetw,GNB_TENANT, "gnodeb.openslice.io.json"); + } + + + + + resourceSpecificationObj = this.resourceSpecRepoService.findByNameAndVersion( + KubernetesContextDefinition.OSL_KUBD_RSPEC_NAME , + KubernetesContextDefinition.OSL_KUBD_RSPEC_VERSION); + + if ( ( scategoryInfra != null ) && ( resourceSpecificationObj == null )) + { + ResourceSpecification resourceSpecificationKubernetes = + this.resourceSpecRepoService.addResourceSpecification( KubernetesContextDefinition.builder().build().toRSpecCreate_InitRepo() ); + //KubernetesContextDefinition.builder().build().fromRSpec(resourceSpecificationKubernetes);//to update any details + this.addToCategory( scategoryInfra, resourceSpecificationKubernetes ); + } + + resourceSpecificationObj = this.resourceSpecRepoService.findByNameAndVersion( + KubernetesCRDV1.OSL_KUBCRD_RSPEC_NAME , + KubernetesCRDV1.OSL_KUBCRD_RSPEC_VERSION); + + if ( ( scategoryInfra != null ) && ( resourceSpecificationObj == null )) + { + ResourceSpecification resourceSpecificationKubernetesCRD = + this.resourceSpecRepoService.addResourceSpecification( KubernetesCRDV1.builder().build().toRSpecCreate_InitRepo() ); + KubernetesCRDV1.builder().build().fromRSpec(resourceSpecificationKubernetesCRD);//to update any details + this.addToCategory( scategoryInfra, resourceSpecificationKubernetesCRD ); + } + + + resourceSpecificationObj = this.resourceSpecRepoService.findByNameAndVersion( + KubernetesCRV1.OSL_KUBCRV1_RSPEC_NAME , + KubernetesCRV1.OSL_KUBCRV1_RSPEC_VERSION); + + if ( ( scategoryInfra != null ) && ( resourceSpecificationObj == null )) + { + ResourceSpecification rspecKubCRV1 = + this.resourceSpecRepoService.addResourceSpecification( KubernetesCRV1.builder().build().toRSpecCreate_InitRepo() ); + KubernetesCRV1.builder().build().fromRSpec(rspecKubCRV1);//to update any details + this.addToCategory( scategoryInfra, rspecKubCRV1 ); + } + + resourceSpecificationObj = this.resourceSpecRepoService.findByNameAndVersion( + KubernetesSecret.OSL_KUBSECRET_RSPEC_NAME , + KubernetesSecret.OSL_KUBSECRET_RSPEC_VERSION); + + if ( ( scategoryInfra != null ) && ( resourceSpecificationObj == null )) + { + ResourceSpecification rspecKubSecret = + this.resourceSpecRepoService.addResourceSpecification( KubernetesSecret.builder().build().toRSpecCreate_InitRepo() ); + KubernetesSecret.builder().build().fromRSpec(rspecKubSecret);//to update any details + this.addToCategory( scategoryInfra, rspecKubSecret ); + } + + + + } + + + private void createBootResourceSpec( ResourceCategory scategory, String aname, String afile) { + + ResourceSpecificationCreate rsc = this.resourceSpecRepoService.readFromLocalLogicalResourceSpec( afile ); + rsc.setName( aname ); + ResourceSpecification resourceSpecificationObj = this.resourceSpecRepoService.addResourceSpecification( rsc ); + + addToCategory(scategory, resourceSpecificationObj); + + } + + private void addToCategory(ResourceCategory scategory, ResourceSpecification resourceSpecificationObj) { + + //Turn the ResourceSpecification to a ResourceCanditate to save it to the ResourceCatalogRepo + ResourceCandidateUpdate scand = new ResourceCandidateUpdate(); + scand.setName( resourceSpecificationObj.getName()); + ResourceSpecificationRef resSpecificationRef = new ResourceSpecificationRef(); + resSpecificationRef.setId(resourceSpecificationObj.getId()); + resSpecificationRef.setName(resourceSpecificationObj.getName()); + scand.resourceSpecification(resSpecificationRef); + ResourceCategoryRef categoryItem = new ResourceCategoryRef(); + categoryItem.setId(scategory.getId()); + scand.addCategoryItem(categoryItem); + + this.resourceCandidateRepoService.updateCandidate(resourceSpecificationObj.getResourceCandidateObjId() , scand); + } + + private void createBootPhysicalResourceSpec( ResourceCategory scategory, String aname, String afile) { + //Find the MANO Provider Spec, get its href and use it to create a dependency with the VIM + + ResourceSpecification resourceSpecificationObj = this.resourceSpecRepoService.clonePhysicalResourceSpec( aname , afile); + resourceSpecificationObj = resourceSpecificationRepo.save(resourceSpecificationObj); + + //Turn the ResourceSpecification to a ResourceCanditate to save it to the ResourceCatalogRepo + ResourceCandidateUpdate scand = new ResourceCandidateUpdate(); + scand.setName( resourceSpecificationObj.getName()); + ResourceSpecificationRef resSpecificationRef = new ResourceSpecificationRef(); + resSpecificationRef.setId(resourceSpecificationObj.getId()); + resSpecificationRef.setName(resourceSpecificationObj.getName()); + scand.resourceSpecification(resSpecificationRef); + ResourceCategoryRef categoryItem = new ResourceCategoryRef(); + categoryItem.setId(scategory.getId()); + scand.addCategoryItem(categoryItem); + + this.resourceCandidateRepoService.updateCandidate(resourceSpecificationObj.getResourceCandidateObjId() , scand); + } + + + + public ResourceSpecification demoResourceSpecification() { + + ResourceSpecificationCreate spec = new ResourceSpecificationCreate(); + spec.setName("Example Logical Resource"); + spec.setVersion("1.0.0"); + + return this.resourceSpecRepoService.addLogicalResourceSpecification(spec); + } + + + +} + + diff --git a/src/main/java/org/etsi/osl/tmf/JsonUtils.java b/src/main/java/org/etsi/osl/tmf/JsonUtils.java new file mode 100644 index 0000000..92689cb --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/JsonUtils.java @@ -0,0 +1,39 @@ +package org.etsi.osl.tmf; + +import java.io.IOException; +import java.io.InputStream; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; + +/** + * @author ctranoris + * + */ +public class JsonUtils { + + static byte[] toJson(Object object) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.writeValueAsBytes(object); + } + + static String toJsonString(Object object) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.writeValueAsString(object); + } + + public static T toJsonObj(String content, Class valueType) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.readValue(content, valueType); + } + + static T toJsonObj(InputStream content, Class valueType) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.readValue(content, valueType); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/LocalMysqlDialect.java b/src/main/java/org/etsi/osl/tmf/LocalMysqlDialect.java new file mode 100644 index 0000000..9220b97 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/LocalMysqlDialect.java @@ -0,0 +1,29 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf; + +import org.hibernate.dialect.MySQLDialect; ; + +public class LocalMysqlDialect extends MySQLDialect { + @Override + public String getTableTypeString() { + return " DEFAULT CHARSET=utf8"; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/MvcConfig.java b/src/main/java/org/etsi/osl/tmf/MvcConfig.java new file mode 100644 index 0000000..bb104c6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/MvcConfig.java @@ -0,0 +1,129 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf; + +import java.io.File; +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.OffsetDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; +import org.springframework.http.converter.ByteArrayHttpMessageConverter; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.StringHttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.springframework.web.servlet.resource.EncodedResourceResolver; +import org.springframework.web.servlet.resource.PathResourceResolver; + +@Configuration +//@EnableWebMvc - removed 30/7/2021 +public class MvcConfig implements WebMvcConfigurer { + @Autowired + Environment env; + + public MvcConfig() { + super(); + } + + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + registry.addViewController("/index.html"); + + } + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + // registry.addResourceHandler("/testweb/**").addResourceLocations("file:///C:/Users/ctranoris/git/org.etsi.osl.portal.web/src/").setCachePeriod(0); + String a = (new File("../org.etsi.osl.tmf.web/dist/io-openslice-portal-web/")).getAbsoluteFile().toURI().toString(); + System.out.println("======================> " + a); + registry.addResourceHandler("/services/**").addResourceLocations(a) // "file:///./../org.etsi.osl.portal.web/src/") + .setCachePeriod(0).resourceChain(true).addResolver(new EncodedResourceResolver()) + .addResolver(new PathResourceResolver()); + +// registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); +// +// registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); + + } + + @Override + public void extendMessageConverters(List> converters) { + // DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd + // HH:mm:ss"); + DateTimeFormatter formatter = DateTimeFormatter.ISO_ZONED_DATE_TIME; + LocalDateTimeSerializer localDateTimeSerializer = new LocalDateTimeSerializer(formatter); + LocalDateTimeDeserializer localDateTimeDeserializer = new LocalDateTimeDeserializer(formatter); + + JavaTimeModule module = new JavaTimeModule(); + module.addSerializer(LocalDateTime.class, localDateTimeSerializer); + module.addDeserializer(LocalDateTime.class, localDateTimeDeserializer); + + ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(module); + + SimpleModule simpleModule = new SimpleModule(); + simpleModule.addSerializer(OffsetDateTime.class, new JsonSerializer() { + @Override + public void serialize(OffsetDateTime offsetDateTime, JsonGenerator jsonGenerator, + SerializerProvider serializerProvider) throws IOException, JsonProcessingException { + jsonGenerator.writeString(DateTimeFormatter.ISO_ZONED_DATE_TIME.format(offsetDateTime)); + + } + }); + + + + + mapper.registerModule(simpleModule); + + // add converter at the very front + // if there are same type mappers in converters, setting in first mapper + // is used. + converters.add(new MappingJackson2HttpMessageConverter(mapper)); + + + + } + + @Override + public void configureMessageConverters(List> converters) { + converters.add(new StringHttpMessageConverter()); + converters.add(new ByteArrayHttpMessageConverter()); + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/OpenAPISpringBoot.java b/src/main/java/org/etsi/osl/tmf/OpenAPISpringBoot.java new file mode 100644 index 0000000..f42df10 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/OpenAPISpringBoot.java @@ -0,0 +1,87 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf; + +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.ExitCodeGenerator; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.domain.EntityScan; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.ComponentScan; + + +/** + * For implementing the callback and events, it might be useful to check the DDD pattern: https://www.baeldung.com/spring-data-ddd + * + * + * @author ctranoris + * + */ +@SpringBootApplication +@ComponentScan( basePackages = { + "org.etsi.osl", + "org.etsi.osl.centrallog" + } ) +@EntityScan( basePackages = { + "org.etsi.osl", + "org.etsi.osl.sd", + "org.etsi.osl.sd.model", + "org.etsi.osl.tmf", + "org.etsi.osl.tmf.configuration", + "org.etsi.osl.tmf.scm633", + "org.etsi.osl.tmf.scm633.api", + "org.etsi.osl.tmf.scm633.repo", + "org.etsi.osl.tmf.scm633.reposervices", + "org.etsi.osl.tmf.scm634", + "org.etsi.osl.tmf.scm634.api", + "org.etsi.osl.centrallog.client"} ) + +public class OpenAPISpringBoot implements CommandLineRunner { + + private static ApplicationContext applicationContext; + + @Override + public void run(String... arg0) throws Exception { + if (arg0.length > 0 && arg0[0].equals("exitcode")) { + throw new ExitException(); + } + } + + public static void main(String[] args) throws Exception { + + applicationContext = new SpringApplication(OpenAPISpringBoot.class).run(args); + +// for (String beanName : applicationContext.getBeanDefinitionNames()) { +// System.out.println(beanName); +// } + } + + class ExitException extends RuntimeException implements ExitCodeGenerator { + private static final long serialVersionUID = 1L; + + @Override + public int getExitCode() { + return 10; + } + + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/AckAlarmsApi.java b/src/main/java/org/etsi/osl/tmf/am642/api/AckAlarmsApi.java new file mode 100644 index 0000000..75edd44 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/AckAlarmsApi.java @@ -0,0 +1,165 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am642.api; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am642.model.AckAlarms; +import org.etsi.osl.tmf.am642.model.AckAlarmsCreate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Tag(name = "ackAlarms", description = "the ackAlarms API") +public interface AckAlarmsApi { + + Logger log = LoggerFactory.getLogger(AckAlarmsApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a AckAlarms", operationId = "createAckAlarms", description = "This operation creates a AckAlarms entity.", tags={ "ackAlarms", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created"), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/ackAlarms", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createAckAlarms(@Parameter(description = "The AckAlarms to be created" ,required=true ) @Valid @RequestBody AckAlarmsCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"ackedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"ackTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"ackUserId\" : \"ackUserId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"alarmPattern\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", AckAlarms.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AckAlarmsApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find AckAlarms objects", operationId = "listAckAlarms", description = "This operation list or find AckAlarms entities" , tags={ "ackAlarms", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/ackAlarms", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listAckAlarms(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit, +Map allParams +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"ackedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"ackTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"ackUserId\" : \"ackUserId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"alarmPattern\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}, {\r\n \"ackedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"ackTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"ackUserId\" : \"ackUserId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"alarmPattern\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AckAlarmsApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a AckAlarms by ID", operationId = "retrieveAckAlarms", description = "This operation retrieves a AckAlarms entity. Attribute selection is enabled for all first level attributes.", tags={ "ackAlarms", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success"), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/ackAlarms/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveAckAlarms(@Parameter(description = "Identifier of the AckAlarms",required=true) @PathVariable("id") String id +,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"ackedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"ackTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"ackUserId\" : \"ackUserId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"alarmPattern\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", AckAlarms.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AckAlarmsApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/AckAlarmsApiController.java b/src/main/java/org/etsi/osl/tmf/am642/api/AckAlarmsApiController.java new file mode 100644 index 0000000..a84959e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/AckAlarmsApiController.java @@ -0,0 +1,130 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.api; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am642.model.AckAlarms; +import org.etsi.osl.tmf.am642.model.AckAlarmsCreate; +import org.etsi.osl.tmf.am642.reposervices.AckAlarmsRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Controller +@RequestMapping("/alarmManagement/v4/") +public class AckAlarmsApiController implements AckAlarmsApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + private static final Logger log = LoggerFactory.getLogger(AckAlarmsApiController.class); + + @org.springframework.beans.factory.annotation.Autowired + public AckAlarmsApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + + @Autowired + AckAlarmsRepoService ackAlarmRepoService; + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity createAckAlarms(@Valid AckAlarmsCreate body) { + try { + + AckAlarms c = ackAlarmRepoService.addAckAlarm( body ); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity> listAckAlarms(@Valid String fields, @Valid Integer offset, + @Valid Integer limit, Map allParams) { + try { + if (allParams != null) { + allParams.remove("fields"); + allParams.remove("offset"); + allParams.remove("limit"); + } else { + allParams = new HashMap<>(); + } + if ((fields == null) && (allParams.size() == 0)) { + + String myfields = "lastUpdate,lifecycleStatus"; + return new ResponseEntity>( + ackAlarmRepoService.findAll( myfields, allParams), HttpStatus.OK); + + + } else { + + + return new ResponseEntity>( + ackAlarmRepoService.findAll(fields, allParams), HttpStatus.OK); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity retrieveAckAlarms(String id, @Valid String fields) { + try { + + return new ResponseEntity( ackAlarmRepoService.findById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/AlarmApi.java b/src/main/java/org/etsi/osl/tmf/am642/api/AlarmApi.java new file mode 100644 index 0000000..0c518ae --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/AlarmApi.java @@ -0,0 +1,222 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am642.api; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am642.model.Alarm; +import org.etsi.osl.tmf.am642.model.AlarmCreate; +import org.etsi.osl.tmf.am642.model.AlarmUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Tag(name = "alarm", description = "the alarm API") +public interface AlarmApi { + + Logger log = LoggerFactory.getLogger(AlarmApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a Alarm", operationId = "createAlarm", description = "This operation creates a Alarm entity.", tags={ "alarm", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/alarm", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createAlarm(@Parameter(description = "The Alarm to be created" ,required=true ) @Valid @RequestBody AlarmCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n}", Alarm.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AlarmApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a Alarm", operationId = "deleteAlarm", description = "This operation deletes a Alarm entity.", tags={ "alarm", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/alarm/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteAlarm(@Parameter(description = "Identifier of the Alarm",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AlarmApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find Alarm objects", operationId = "listAlarm", description = "This operation list or find Alarm entities" , tags={ "alarm", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/alarm", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listAlarm(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit, +@Parameter(hidden = true) @Valid @RequestParam Map allParams +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n}, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AlarmApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a Alarm", operationId = "patchAlarm", description = "This operation updates partially a Alarm entity.", tags={ "alarm", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/alarm/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchAlarm(@Parameter(description = "The Alarm to be updated" ,required=true ) @Valid @RequestBody AlarmUpdate body +,@Parameter(description = "Identifier of the Alarm",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n}", Alarm.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AlarmApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a Alarm by ID", operationId = "retrieveAlarm", description = "This operation retrieves a Alarm entity. Attribute selection is enabled for all first level attributes.", tags={ "alarm", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/alarm/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveAlarm(@Parameter(description = "Identifier of the Alarm",required=true) @PathVariable("id") String id +,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n}", Alarm.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AlarmApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/AlarmApiController.java b/src/main/java/org/etsi/osl/tmf/am642/api/AlarmApiController.java new file mode 100644 index 0000000..f82067c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/AlarmApiController.java @@ -0,0 +1,152 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.api; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am642.model.Alarm; +import org.etsi.osl.tmf.am642.model.AlarmCreate; +import org.etsi.osl.tmf.am642.model.AlarmUpdate; +import org.etsi.osl.tmf.am642.reposervices.AlarmRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Controller +@RequestMapping("/alarmManagement/v4/") + +public class AlarmApiController implements AlarmApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + + private static final Logger log = LoggerFactory.getLogger(AlarmApiController.class); + + @Autowired + AlarmRepoService alarmRepoService; + + @org.springframework.beans.factory.annotation.Autowired + public AlarmApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity createAlarm(@Valid AlarmCreate body) { + try { + + Alarm c = alarmRepoService.addAlarm( body ); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity deleteAlarm(String id) { + try { + + return new ResponseEntity( alarmRepoService.deleteById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity> listAlarm(@Valid String fields, @Valid Integer offset, @Valid Integer limit, + Map allParams) { + try { + if (allParams != null) { + allParams.remove("fields"); + allParams.remove("offset"); + allParams.remove("limit"); + } else { + allParams = new HashMap<>(); + } + if ((fields == null) && (allParams.size() == 0)) { + + String myfields = null; + return new ResponseEntity>( + alarmRepoService.findAll( myfields, allParams), HttpStatus.OK); + + + } else { + + + return new ResponseEntity>( + alarmRepoService.findAll(fields, allParams), HttpStatus.OK); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity patchAlarm(@Valid AlarmUpdate body, String id) { + Alarm c = alarmRepoService.updateAlarm( id, body ); + + return new ResponseEntity(c, HttpStatus.OK); + } + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity retrieveAlarm(String id, @Valid String fields) { + try { + + return new ResponseEntity( alarmRepoService.findById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/AlarmApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/am642/api/AlarmApiRouteBuilder.java new file mode 100644 index 0000000..c9f7dd6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/AlarmApiRouteBuilder.java @@ -0,0 +1,111 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.api; + +import java.io.IOException; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.camel.LoggingLevel; +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.model.dataformat.JsonLibrary; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.centrallog.client.CentralLogger; +import org.etsi.osl.tmf.am642.model.AlarmCreate; +import org.etsi.osl.tmf.am642.model.AlarmUpdate; +import org.etsi.osl.tmf.am642.reposervices.AlarmRepoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +@Configuration +@Component +public class AlarmApiRouteBuilder extends RouteBuilder { + + private static final transient Log logger = LogFactory.getLog(AlarmApiRouteBuilder.class.getName()); + + + @Value("${ALARMS_ADD_ALARM}") + private String ALARMS_ADD_ALARM =""; + + @Value("${ALARMS_UPDATE_ALARM}") + private String ALARMS_UPDATE_ALARM =""; + + @Value("${ALARMS_GET_ALARM}") + private String ALARMS_GET_ALARM =""; + + + + @Value("${spring.application.name}") + private String compname; + + @Autowired + AlarmRepoService alarmRepoService; + + + @Autowired + private ProducerTemplate template; + + + @Autowired + private CentralLogger centralLogger; + + @Override + public void configure() throws Exception { + + from( ALARMS_ADD_ALARM ) + .log(LoggingLevel.INFO, log, ALARMS_ADD_ALARM + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal() + .json(JsonLibrary.Jackson, AlarmCreate.class, true) + .bean( alarmRepoService, "addAlarm(${body})") + .marshal().json( JsonLibrary.Jackson, String.class) + .convertBodyTo( String.class ); + + from( ALARMS_UPDATE_ALARM ) + .log(LoggingLevel.INFO, log, ALARMS_UPDATE_ALARM + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal() + .json(JsonLibrary.Jackson, AlarmUpdate.class, true) + .bean( alarmRepoService, "updateAlarm(${header.alarmid}, ${body})") + .bean( alarmRepoService, "findByUuidEager(${header.alarmid})") + .marshal().json( JsonLibrary.Jackson, String.class) + .convertBodyTo( String.class ); + + from( ALARMS_GET_ALARM ) + .log(LoggingLevel.INFO, log, ALARMS_GET_ALARM + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean( alarmRepoService, "findByUuidEager(${header.alarmid})") + .marshal().json( JsonLibrary.Jackson, String.class) + .convertBodyTo( String.class ); + + } + + + static String toJsonString(Object object) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.writeValueAsString(object); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/AlarmApiRouteBuilderEvents.java b/src/main/java/org/etsi/osl/tmf/am642/api/AlarmApiRouteBuilderEvents.java new file mode 100644 index 0000000..b53aea6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/AlarmApiRouteBuilderEvents.java @@ -0,0 +1,105 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.api; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.centrallog.client.CLevel; +import org.etsi.osl.centrallog.client.CentralLogger; +import org.etsi.osl.tmf.am642.model.AlarmCreateEvent; +import org.etsi.osl.tmf.common.model.OpensliceEvent; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +@Configuration +@Component +public class AlarmApiRouteBuilderEvents extends RouteBuilder { + + private static final transient Log logger = LogFactory.getLog(AlarmApiRouteBuilderEvents.class.getName()); + + + + @Value("${EVENT_ALARM_CREATE}") + private String EVENT_ALARM_CREATE =""; + + + @Value("${spring.application.name}") + private String compname; + + + @Autowired + private ProducerTemplate template; + + + @Autowired + private CentralLogger centralLogger; + + @Override + public void configure() throws Exception { + + + + } + + /** + * @param n + */ + public void publishEvent(final OpensliceEvent n, final String objId) { + n.setEventType( n.getClass().getName()); + logger.info("will send Event for type " + n.getEventType()); + try { + String msgtopic=""; + + if ( n instanceof AlarmCreateEvent) { + msgtopic = EVENT_ALARM_CREATE; + } + Map map = new HashMap<>(); + map.put("eventid", n.getEventId() ); + map.put("objId", objId ); + + String apayload = toJsonString(n); + template.sendBodyAndHeaders(msgtopic, apayload , map); + + + centralLogger.log( CLevel.INFO, apayload, compname ); + + } catch (Exception e) { + e.printStackTrace(); + logger.error("Cannot send Event . " + e.getMessage() ); + } + } + + static String toJsonString(Object object) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.writeValueAsString(object); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/ApiException.java b/src/main/java/org/etsi/osl/tmf/am642/api/ApiException.java new file mode 100644 index 0000000..c4c5c2d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/ApiException.java @@ -0,0 +1,29 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/ApiOriginFilter.java b/src/main/java/org/etsi/osl/tmf/am642/api/ApiOriginFilter.java new file mode 100644 index 0000000..5ac39b2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/ApiOriginFilter.java @@ -0,0 +1,50 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.api; + +import java.io.IOException; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class ApiOriginFilter implements jakarta.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/ApiResponseMessage.java b/src/main/java/org/etsi/osl/tmf/am642/api/ApiResponseMessage.java new file mode 100644 index 0000000..abe2367 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/ApiResponseMessage.java @@ -0,0 +1,88 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.api; + +import jakarta.xml.bind.annotation.XmlTransient; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@jakarta.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/ClearAlarmsApi.java b/src/main/java/org/etsi/osl/tmf/am642/api/ClearAlarmsApi.java new file mode 100644 index 0000000..5d3a614 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/ClearAlarmsApi.java @@ -0,0 +1,169 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am642.api; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am642.model.ClearAlarms; +import org.etsi.osl.tmf.am642.model.ClearAlarmsCreate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Tag(name = "clearAlarms", description = "the clearAlarms API") +public interface ClearAlarmsApi { + + Logger log = LoggerFactory.getLogger(ClearAlarmsApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + +// schema = @Schema(implementation = ClearAlarms.class) + + @Operation(summary = "Creates a ClearAlarms", operationId = "createClearAlarms", description = "This operation creates a ClearAlarms entity.", responses = { @ApiResponse( content= @Content( schema =@Schema(implementation = ClearAlarms.class) ) ) }, tags={ "clearAlarms", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created"), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/clearAlarms", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createClearAlarms(@Parameter(description = "The ClearAlarms to be created" ,required=true ) @Valid @RequestBody ClearAlarmsCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"alarmPattern\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"clearedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"clearSystemId\" : \"clearSystemId\"\r\n}", ClearAlarms.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ClearAlarmsApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find ClearAlarms objects", operationId = "listClearAlarms", description = "This operation list or find ClearAlarms entities" , tags={ "clearAlarms", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/clearAlarms", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listClearAlarms(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit +, Map allParams +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"alarmPattern\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"clearedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"clearSystemId\" : \"clearSystemId\"\r\n}, {\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"alarmPattern\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"clearedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"clearSystemId\" : \"clearSystemId\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ClearAlarmsApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a ClearAlarms by ID", operationId = "retrieveClearAlarms", description = "This operation retrieves a ClearAlarms entity. Attribute selection is enabled for all first level attributes.", tags={ "clearAlarms", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/clearAlarms/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveClearAlarms(@Parameter(description = "Identifier of the ClearAlarms",required=true) @PathVariable("id") String id +,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"alarmPattern\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"clearedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"clearSystemId\" : \"clearSystemId\"\r\n}", ClearAlarms.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ClearAlarmsApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/ClearAlarmsApiController.java b/src/main/java/org/etsi/osl/tmf/am642/api/ClearAlarmsApiController.java new file mode 100644 index 0000000..3bcd494 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/ClearAlarmsApiController.java @@ -0,0 +1,132 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.api; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am642.model.ClearAlarms; +import org.etsi.osl.tmf.am642.model.ClearAlarmsCreate; +import org.etsi.osl.tmf.am642.reposervices.ClearAlarmsRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Controller +@RequestMapping("/alarmManagement/v4/") +public class ClearAlarmsApiController implements ClearAlarmsApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + private static final Logger log = LoggerFactory.getLogger(ClearAlarmsApiController.class); + + @Autowired + ClearAlarmsRepoService clearAlarmRepoService; + + + @org.springframework.beans.factory.annotation.Autowired + public ClearAlarmsApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity createClearAlarms(@Valid ClearAlarmsCreate body) { + try { + + ClearAlarms c = clearAlarmRepoService.addClearAlarm( body ); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity> listClearAlarms(@Valid String fields, @Valid Integer offset, + @Valid Integer limit, Map allParams) { + try { + if (allParams != null) { + allParams.remove("fields"); + allParams.remove("offset"); + allParams.remove("limit"); + } else { + allParams = new HashMap<>(); + } + if ((fields == null) && (allParams.size() == 0)) { + + String myfields = "lastUpdate,lifecycleStatus"; + return new ResponseEntity>( + clearAlarmRepoService.findAll( myfields, allParams), HttpStatus.OK); + + + } else { + + + return new ResponseEntity>( + clearAlarmRepoService.findAll(fields, allParams), HttpStatus.OK); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity retrieveClearAlarms(String id, @Valid String fields) { + try { + + return new ResponseEntity( clearAlarmRepoService.findById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/CommentAlarmsApi.java b/src/main/java/org/etsi/osl/tmf/am642/api/CommentAlarmsApi.java new file mode 100644 index 0000000..529bf3d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/CommentAlarmsApi.java @@ -0,0 +1,164 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am642.api; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am642.model.CommentAlarms; +import org.etsi.osl.tmf.am642.model.CommentAlarmsCreate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Tag(name = "commentAlarms", description = "the commentAlarms API") +public interface CommentAlarmsApi { + + Logger log = LoggerFactory.getLogger(CommentAlarmsApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a CommentAlarms", operationId = "createCommentAlarms", description = "This operation creates a CommentAlarms entity.", tags={ "commentAlarms", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created"), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/commentAlarms", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createCommentAlarms(@Parameter(description = "The CommentAlarms to be created" ,required=true ) @Valid @RequestBody CommentAlarmsCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"commentedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"alarmPattern\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"comment\" : {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n },\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", CommentAlarms.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CommentAlarmsApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find CommentAlarms objects", operationId = "listCommentAlarms", description = "This operation list or find CommentAlarms entities" , tags={ "commentAlarms", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/commentAlarms", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listCommentAlarms(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit +, Map allParams) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"commentedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"alarmPattern\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"comment\" : {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n },\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}, {\r\n \"commentedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"alarmPattern\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"comment\" : {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n },\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CommentAlarmsApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a CommentAlarms by ID", operationId = "retrieveCommentAlarms", description = "This operation retrieves a CommentAlarms entity. Attribute selection is enabled for all first level attributes.", tags={ "commentAlarms", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/commentAlarms/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveCommentAlarms(@Parameter(description = "Identifier of the CommentAlarms",required=true) @PathVariable("id") String id +,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"commentedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"alarmPattern\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"comment\" : {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n },\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", CommentAlarms.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CommentAlarmsApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/CommentAlarmsApiController.java b/src/main/java/org/etsi/osl/tmf/am642/api/CommentAlarmsApiController.java new file mode 100644 index 0000000..b5fe327 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/CommentAlarmsApiController.java @@ -0,0 +1,129 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.api; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am642.model.CommentAlarms; +import org.etsi.osl.tmf.am642.model.CommentAlarmsCreate; +import org.etsi.osl.tmf.am642.reposervices.CommentAlarmsRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Controller +@RequestMapping("/alarmManagement/v4/") +public class CommentAlarmsApiController implements CommentAlarmsApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @Autowired + CommentAlarmsRepoService commentAlarmRepoService; + + private static final Logger log = LoggerFactory.getLogger(CommentAlarmsApiController.class); + + @org.springframework.beans.factory.annotation.Autowired + public CommentAlarmsApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity createCommentAlarms(@Valid CommentAlarmsCreate body) { + try { + + CommentAlarms c = commentAlarmRepoService.addCommentAlarms(body); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity retrieveCommentAlarms(String id, @Valid String fields) { + try { + + return new ResponseEntity(commentAlarmRepoService.findById(id), HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity> listCommentAlarms(@Valid String fields, @Valid Integer offset, + @Valid Integer limit, Map allParams) { + try { + if (allParams != null) { + allParams.remove("fields"); + allParams.remove("offset"); + allParams.remove("limit"); + } else { + allParams = new HashMap<>(); + } + if ((fields == null) && (allParams.size() == 0)) { + + String myfields = "lastUpdate,lifecycleStatus"; + return new ResponseEntity>(commentAlarmRepoService.findAll(myfields, allParams), + HttpStatus.OK); + + } else { + + return new ResponseEntity>(commentAlarmRepoService.findAll(fields, allParams), + HttpStatus.OK); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/GroupAlarmsApi.java b/src/main/java/org/etsi/osl/tmf/am642/api/GroupAlarmsApi.java new file mode 100644 index 0000000..d595a82 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/GroupAlarmsApi.java @@ -0,0 +1,169 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am642.api; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am642.model.GroupAlarms; +import org.etsi.osl.tmf.am642.model.GroupAlarmsCreate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Tag(name = "groupAlarms", description = "the groupAlarms API") +public interface GroupAlarmsApi { + + Logger log = LoggerFactory.getLogger(GroupAlarmsApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a GroupAlarms", operationId = "createGroupAlarms", description = "This operation creates a GroupAlarms entity." , tags = { + "groupAlarms", }) + @ApiResponses(value = { @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/groupAlarms", produces = { "application/json;charset=utf-8" }, consumes = { + "application/json;charset=utf-8" }, method = RequestMethod.POST) + default ResponseEntity createGroupAlarms( + @Parameter(description = "The GroupAlarms to be created", required = true) @Valid @RequestBody GroupAlarmsCreate body) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue( + "{\r\n \"@baseType\" : \"@baseType\",\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"@type\" : \"@type\",\r\n \"groupedAlarm\" : [ null, null ],\r\n \"correlatedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}", + GroupAlarms.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default GroupAlarmsApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "List or find GroupAlarms objects", operationId = "listGroupAlarms", description = "This operation list or find GroupAlarms entities" , tags = { + "groupAlarms", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/groupAlarms", produces = { "application/json;charset=utf-8" }, method = RequestMethod.GET) + default ResponseEntity> listGroupAlarms( + @Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit, + Map allParams) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue( + "[ {\r\n \"@baseType\" : \"@baseType\",\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"@type\" : \"@type\",\r\n \"groupedAlarm\" : [ null, null ],\r\n \"correlatedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}, {\r\n \"@baseType\" : \"@baseType\",\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"@type\" : \"@type\",\r\n \"groupedAlarm\" : [ null, null ],\r\n \"correlatedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n} ]", + List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default GroupAlarmsApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "Retrieves a GroupAlarms by ID", operationId = "retrieveGroupAlarms", description = "This operation retrieves a GroupAlarms entity. Attribute selection is enabled for all first level attributes." , tags = { + "groupAlarms", }) + @ApiResponses(value = { @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/groupAlarms/{id}", produces = { + "application/json;charset=utf-8" }, method = RequestMethod.GET) + default ResponseEntity retrieveGroupAlarms( + @Parameter(description = "Identifier of the GroupAlarms", required = true) @PathVariable("id") String id, + @Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue( + "{\r\n \"@baseType\" : \"@baseType\",\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"@type\" : \"@type\",\r\n \"groupedAlarm\" : [ null, null ],\r\n \"correlatedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}", + GroupAlarms.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default GroupAlarmsApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/GroupAlarmsApiController.java b/src/main/java/org/etsi/osl/tmf/am642/api/GroupAlarmsApiController.java new file mode 100644 index 0000000..39c68d7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/GroupAlarmsApiController.java @@ -0,0 +1,124 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.api; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am642.model.GroupAlarms; +import org.etsi.osl.tmf.am642.model.GroupAlarmsCreate; +import org.etsi.osl.tmf.am642.reposervices.GroupAlarmsRepoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Controller +@RequestMapping("/alarmManagement/v4/") +public class GroupAlarmsApiController implements GroupAlarmsApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @Autowired + GroupAlarmsRepoService groupAlarmRepoService; + + @org.springframework.beans.factory.annotation.Autowired + public GroupAlarmsApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity createGroupAlarms(@Valid GroupAlarmsCreate body) { + try { + + GroupAlarms c = groupAlarmRepoService.addGroupAlarms(body); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity retrieveGroupAlarms(String id, @Valid String fields) { + try { + + return new ResponseEntity(groupAlarmRepoService.findById(id), HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity> listGroupAlarms(@Valid String fields, @Valid Integer offset, + @Valid Integer limit, Map allParams) { + try { + if (allParams != null) { + allParams.remove("fields"); + allParams.remove("offset"); + allParams.remove("limit"); + } else { + allParams = new HashMap<>(); + } + if ((fields == null) && (allParams.size() == 0)) { + + String myfields = "lastUpdate,lifecycleStatus"; + return new ResponseEntity>(groupAlarmRepoService.findAll(myfields, allParams), + HttpStatus.OK); + + } else { + + return new ResponseEntity>(groupAlarmRepoService.findAll(fields, allParams), + HttpStatus.OK); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/am642/api/HubApi.java new file mode 100644 index 0000000..7463e6b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/HubApi.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am642.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am642.model.EventSubscription; +import org.etsi.osl.tmf.am642.model.EventSubscriptionInput; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Tag(name = "hub", description = "the hub API") +public interface HubApi { + + Logger log = LoggerFactory.getLogger(HubApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Register a listener", operationId = "registerListener642", description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Subscribed" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Unregister a listener", operationId = "unregisterListener642", description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method not allowed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/am642/api/HubApiController.java new file mode 100644 index 0000000..b3c83b8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/HubApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") + +@Controller("HubApiController642") +@RequestMapping("/alarmManagement/v4/") +public class HubApiController implements HubApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public HubApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/ListenerApi.java b/src/main/java/org/etsi/osl/tmf/am642/api/ListenerApi.java new file mode 100644 index 0000000..e00e253 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/ListenerApi.java @@ -0,0 +1,591 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am642.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am642.model.AckAlarmsCreateEvent; +import org.etsi.osl.tmf.am642.model.AckAlarmsStateChangeEvent; +import org.etsi.osl.tmf.am642.model.AlarmAttributeValueChangeEvent; +import org.etsi.osl.tmf.am642.model.AlarmCreateEvent; +import org.etsi.osl.tmf.am642.model.AlarmDeleteEvent; +import org.etsi.osl.tmf.am642.model.AlarmStateChangeEvent; +import org.etsi.osl.tmf.am642.model.ClearAlarmsCreateEvent; +import org.etsi.osl.tmf.am642.model.ClearAlarmsStateChangeEvent; +import org.etsi.osl.tmf.am642.model.CommentAlarmsCreateEvent; +import org.etsi.osl.tmf.am642.model.CommentAlarmsStateChangeEvent; +import org.etsi.osl.tmf.am642.model.EventSubscription; +import org.etsi.osl.tmf.am642.model.GroupAlarmsCreateEvent; +import org.etsi.osl.tmf.am642.model.GroupAlarmsStateChangeEvent; +import org.etsi.osl.tmf.am642.model.UnAckAlarmsCreateEvent; +import org.etsi.osl.tmf.am642.model.UnAckAlarmsStateChangeEvent; +import org.etsi.osl.tmf.am642.model.UnGroupAlarmsCreateEvent; +import org.etsi.osl.tmf.am642.model.UnGroupAlarmsStateChangeEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Tag(name = "listener", description = "the listener API") +public interface ListenerApi { + + Logger log = LoggerFactory.getLogger(ListenerApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Client listener for entity AckAlarmsCreateEvent", operationId = "listenToAckAlarmsCreateEvent", description = "Example of a client listener for receiving the notification AckAlarmsCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/ackAlarmsCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToAckAlarmsCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody AckAlarmsCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity AckAlarmsStateChangeEvent", operationId = "listenToAckAlarmsStateChangeEvent", description = "Example of a client listener for receiving the notification AckAlarmsStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/ackAlarmsStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToAckAlarmsStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody AckAlarmsStateChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity AlarmAttributeValueChangeEvent", operationId = "listenToAlarmAttributeValueChangeEvent", description = "Example of a client listener for receiving the notification AlarmAttributeValueChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/alarmAttributeValueChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToAlarmAttributeValueChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody AlarmAttributeValueChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity AlarmCreateEvent", operationId = "listenToAlarmCreateEvent", description = "Example of a client listener for receiving the notification AlarmCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/alarmCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToAlarmCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody AlarmCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity AlarmDeleteEvent", operationId = "listenToAlarmDeleteEvent", description = "Example of a client listener for receiving the notification AlarmDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/alarmDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToAlarmDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody AlarmDeleteEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity AlarmStateChangeEvent", operationId = "listenToAlarmStateChangeEvent", description = "Example of a client listener for receiving the notification AlarmStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/alarmStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToAlarmStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody AlarmStateChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ClearAlarmsCreateEvent", operationId = "listenToClearAlarmsCreateEvent", description = "Example of a client listener for receiving the notification ClearAlarmsCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/clearAlarmsCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToClearAlarmsCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ClearAlarmsCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ClearAlarmsStateChangeEvent", operationId = "listenToClearAlarmsStateChangeEvent", description = "Example of a client listener for receiving the notification ClearAlarmsStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/clearAlarmsStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToClearAlarmsStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ClearAlarmsStateChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity CommentAlarmsCreateEvent", operationId = "listenToCommentAlarmsCreateEvent", description = "Example of a client listener for receiving the notification CommentAlarmsCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/commentAlarmsCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToCommentAlarmsCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody CommentAlarmsCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity CommentAlarmsStateChangeEvent", operationId = "listenToCommentAlarmsStateChangeEvent", description = "Example of a client listener for receiving the notification CommentAlarmsStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/commentAlarmsStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToCommentAlarmsStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody CommentAlarmsStateChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity GroupAlarmsCreateEvent", operationId = "listenToGroupAlarmsCreateEvent", description = "Example of a client listener for receiving the notification GroupAlarmsCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/groupAlarmsCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToGroupAlarmsCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody GroupAlarmsCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity GroupAlarmsStateChangeEvent", operationId = "listenToGroupAlarmsStateChangeEvent", description = "Example of a client listener for receiving the notification GroupAlarmsStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/groupAlarmsStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToGroupAlarmsStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody GroupAlarmsStateChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity UnAckAlarmsCreateEvent", operationId = "listenToUnAckAlarmsCreateEvent", description = "Example of a client listener for receiving the notification UnAckAlarmsCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/unAckAlarmsCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToUnAckAlarmsCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody UnAckAlarmsCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity UnAckAlarmsStateChangeEvent", operationId = "listenToUnAckAlarmsStateChangeEvent", description = "Example of a client listener for receiving the notification UnAckAlarmsStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/unAckAlarmsStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToUnAckAlarmsStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody UnAckAlarmsStateChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity UnGroupAlarmsCreateEvent", operationId = "listenToUnGroupAlarmsCreateEvent", description = "Example of a client listener for receiving the notification UnGroupAlarmsCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/unGroupAlarmsCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToUnGroupAlarmsCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody UnGroupAlarmsCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity UnGroupAlarmsStateChangeEvent", operationId = "listenToUnGroupAlarmsStateChangeEvent", description = "Example of a client listener for receiving the notification UnGroupAlarmsStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/unGroupAlarmsStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToUnGroupAlarmsStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody UnGroupAlarmsStateChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/ListenerApiController.java b/src/main/java/org/etsi/osl/tmf/am642/api/ListenerApiController.java new file mode 100644 index 0000000..c6e443a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/ListenerApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") + +@Controller("ListenerApiController642") +@RequestMapping("/alarmManagement/v4/") +public class ListenerApiController implements ListenerApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ListenerApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/NotFoundException.java b/src/main/java/org/etsi/osl/tmf/am642/api/NotFoundException.java new file mode 100644 index 0000000..47d4eda --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/NotFoundException.java @@ -0,0 +1,29 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class NotFoundException extends ApiException { + private int code; + public NotFoundException (int code, String msg) { + super(code, msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/UnAckAlarmsApi.java b/src/main/java/org/etsi/osl/tmf/am642/api/UnAckAlarmsApi.java new file mode 100644 index 0000000..4fefc82 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/UnAckAlarmsApi.java @@ -0,0 +1,164 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am642.api; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am642.model.UnAckAlarms; +import org.etsi.osl.tmf.am642.model.UnAckAlarmsCreate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Tag(name = "unAckAlarms", description = "the unAckAlarms API") +public interface UnAckAlarmsApi { + + Logger log = LoggerFactory.getLogger(UnAckAlarmsApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a UnAckAlarms", operationId = "createUnAckAlarms", description = "This operation creates a UnAckAlarms entity.", tags={ "unAckAlarms", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/unAckAlarms", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createUnAckAlarms(@Parameter(description = "The UnAckAlarms to be created" ,required=true ) @Valid @RequestBody UnAckAlarmsCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"ackTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"ackUserId\" : \"ackUserId\",\r\n \"unAckedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"alarmPattern\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", UnAckAlarms.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default UnAckAlarmsApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find UnAckAlarms objects", operationId = "listUnAckAlarms", description = "This operation list or find UnAckAlarms entities" , tags={ "unAckAlarms", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/unAckAlarms", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listUnAckAlarms(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit +, Map allParams) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"ackTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"ackUserId\" : \"ackUserId\",\r\n \"unAckedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"alarmPattern\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}, {\r\n \"ackTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"ackUserId\" : \"ackUserId\",\r\n \"unAckedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"alarmPattern\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default UnAckAlarmsApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a UnAckAlarms by ID", operationId = "retrieveUnAckAlarms", description = "This operation retrieves a UnAckAlarms entity. Attribute selection is enabled for all first level attributes.", tags={ "unAckAlarms", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/unAckAlarms/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveUnAckAlarms(@Parameter(description = "Identifier of the UnAckAlarms",required=true) @PathVariable("id") String id +,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"ackTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"ackUserId\" : \"ackUserId\",\r\n \"unAckedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"alarmPattern\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", UnAckAlarms.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default UnAckAlarmsApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/UnAckAlarmsApiController.java b/src/main/java/org/etsi/osl/tmf/am642/api/UnAckAlarmsApiController.java new file mode 100644 index 0000000..6ca16ef --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/UnAckAlarmsApiController.java @@ -0,0 +1,137 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.api; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am642.model.UnAckAlarms; +import org.etsi.osl.tmf.am642.model.UnAckAlarmsCreate; +import org.etsi.osl.tmf.am642.reposervices.UnAckAlarmsRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Controller +@RequestMapping("/alarmManagement/v4/") +public class UnAckAlarmsApiController implements UnAckAlarmsApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + private static final Logger log = LoggerFactory.getLogger(UnAckAlarmsApiController.class); + + + + @Autowired + UnAckAlarmsRepoService unackAlarmRepoService; + + + @org.springframework.beans.factory.annotation.Autowired + public UnAckAlarmsApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity createUnAckAlarms(@Valid UnAckAlarmsCreate body) { + try { + + UnAckAlarms c = unackAlarmRepoService.addAckAlarm( body ); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity> listUnAckAlarms(@Valid String fields, @Valid Integer offset, + @Valid Integer limit, Map allParams) { + try { + if (allParams != null) { + allParams.remove("fields"); + allParams.remove("offset"); + allParams.remove("limit"); + } else { + allParams = new HashMap<>(); + } + if ((fields == null) && (allParams.size() == 0)) { + + String myfields = "lastUpdate,lifecycleStatus"; + return new ResponseEntity>( + unackAlarmRepoService.findAll( myfields, allParams), HttpStatus.OK); + + + } else { + + + return new ResponseEntity>( + unackAlarmRepoService.findAll(fields, allParams), HttpStatus.OK); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity retrieveUnAckAlarms(String id, @Valid String fields) { + try { + + return new ResponseEntity( unackAlarmRepoService.findById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/UnGroupAlarmsApi.java b/src/main/java/org/etsi/osl/tmf/am642/api/UnGroupAlarmsApi.java new file mode 100644 index 0000000..d9d855f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/UnGroupAlarmsApi.java @@ -0,0 +1,164 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am642.api; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am642.model.UnGroupAlarms; +import org.etsi.osl.tmf.am642.model.UnGroupAlarmsCreate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Tag(name = "unGroupAlarms", description = "the unGroupAlarms API") +public interface UnGroupAlarmsApi { + + Logger log = LoggerFactory.getLogger(UnGroupAlarmsApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a UnGroupAlarms", operationId = "createUnGroupAlarms", description = "This operation creates a UnGroupAlarms entity.", tags={ "unGroupAlarms", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/unGroupAlarms", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createUnGroupAlarms(@Parameter(description = "The UnGroupAlarms to be created" ,required=true ) @Valid @RequestBody UnGroupAlarmsCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"@baseType\" : \"@baseType\",\r\n \"unGroupedAlarm\" : [ null, null ],\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"@type\" : \"@type\",\r\n \"correlatedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}", UnGroupAlarms.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default UnGroupAlarmsApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find UnGroupAlarms objects", operationId = "listUnGroupAlarms", description = "This operation list or find UnGroupAlarms entities" , tags={ "unGroupAlarms", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/unGroupAlarms", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listUnGroupAlarms(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit +, Map allParams) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"@baseType\" : \"@baseType\",\r\n \"unGroupedAlarm\" : [ null, null ],\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"@type\" : \"@type\",\r\n \"correlatedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}, {\r\n \"@baseType\" : \"@baseType\",\r\n \"unGroupedAlarm\" : [ null, null ],\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"@type\" : \"@type\",\r\n \"correlatedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default UnGroupAlarmsApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a UnGroupAlarms by ID", operationId = "retrieveUnGroupAlarms", description = "This operation retrieves a UnGroupAlarms entity. Attribute selection is enabled for all first level attributes.", tags={ "unGroupAlarms", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/unGroupAlarms/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveUnGroupAlarms(@Parameter(description = "Identifier of the UnGroupAlarms",required=true) @PathVariable("id") String id +,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"@baseType\" : \"@baseType\",\r\n \"unGroupedAlarm\" : [ null, null ],\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"@type\" : \"@type\",\r\n \"correlatedAlarm\" : [ {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n }, {\r\n \"reportingSystemId\" : \"reportingSystemId\",\r\n \"alarmRaisedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@referredType\" : \"@referredType\",\r\n \"alarmClearedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObjectType\" : \"alarmedObjectType\",\r\n \"@type\" : \"@type\",\r\n \"proposedRepairedActions\" : \"proposedRepairedActions\",\r\n \"correlatedAlarm\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"alarmReportingTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"alarmedObject\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"alarmEscalation\" : true,\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"perceivedSeverity\" : \"perceivedSeverity\",\r\n \"probableCause\" : \"probableCause\",\r\n \"affectedService\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"ackSystemId\" : \"ackSystemId\",\r\n \"id\" : 0,\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"crossedThresholdInformation\" : {\r\n \"indicatorName\" : \"indicatorName\",\r\n \"@baseType\" : \"@baseType\",\r\n \"thresholdCrossingDescription\" : \"thresholdCrossingDescription\",\r\n \"granularity\" : \"granularity\",\r\n \"@type\" : \"@type\",\r\n \"observedValue\" : \"observedValue\",\r\n \"threshold\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"direction\" : \"direction\",\r\n \"indicatorUnit\" : \"indicatorUnit\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"externalAlarmId\" : \"externalAlarmId\",\r\n \"clearSystemId\" : \"clearSystemId\",\r\n \"parentAlarm\" : [ null, null ],\r\n \"isRootCause\" : true,\r\n \"ackUserId\" : \"ackUserId\",\r\n \"clearUserId\" : \"clearUserId\",\r\n \"serviceAffecting\" : true,\r\n \"sourceSystemId\" : \"sourceSystemId\",\r\n \"ackState\" : \"ackState\",\r\n \"alarmType\" : \"alarmType\",\r\n \"specificProblem\" : \"specificProblem\",\r\n \"name\" : \"name\",\r\n \"plannedOutageIndicator\" : \"plannedOutageIndicator\",\r\n \"comment\" : [ {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n }, {\r\n \"systemId\" : \"systemId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"comment\" : \"comment\",\r\n \"time\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"userId\" : \"userId\"\r\n } ],\r\n \"alarmDetails\" : \"alarmDetails\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"alarmChangedTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}", UnGroupAlarms.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default UnGroupAlarmsApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/api/UnGroupAlarmsApiController.java b/src/main/java/org/etsi/osl/tmf/am642/api/UnGroupAlarmsApiController.java new file mode 100644 index 0000000..edbc36b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/api/UnGroupAlarmsApiController.java @@ -0,0 +1,132 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.api; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am642.model.UnGroupAlarms; +import org.etsi.osl.tmf.am642.model.UnGroupAlarmsCreate; +import org.etsi.osl.tmf.am642.reposervices.UnGroupAlarmsRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Controller +@RequestMapping("/alarmManagement/v4/") +public class UnGroupAlarmsApiController implements UnGroupAlarmsApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + private static final Logger log = LoggerFactory.getLogger(UnGroupAlarmsApiController.class); + + + @Autowired + UnGroupAlarmsRepoService UnGroupAlarmRepoService; + + + @org.springframework.beans.factory.annotation.Autowired + public UnGroupAlarmsApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity createUnGroupAlarms(@Valid UnGroupAlarmsCreate body) { + try { + + UnGroupAlarms c = UnGroupAlarmRepoService.addUnGroupAlarms(body); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity retrieveUnGroupAlarms(String id, @Valid String fields) { + try { + + return new ResponseEntity(UnGroupAlarmRepoService.findById(id), HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity> listUnGroupAlarms(@Valid String fields, @Valid Integer offset, + @Valid Integer limit, Map allParams) { + try { + if (allParams != null) { + allParams.remove("fields"); + allParams.remove("offset"); + allParams.remove("limit"); + } else { + allParams = new HashMap<>(); + } + if ((fields == null) && (allParams.size() == 0)) { + + String myfields = "lastUpdate,lifecycleStatus"; + return new ResponseEntity>(UnGroupAlarmRepoService.findAll(myfields, allParams), + HttpStatus.OK); + + } else { + + return new ResponseEntity>(UnGroupAlarmRepoService.findAll(fields, allParams), + HttpStatus.OK); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AckAlarms.java b/src/main/java/org/etsi/osl/tmf/am642/model/AckAlarms.java new file mode 100644 index 0000000..7749774 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AckAlarms.java @@ -0,0 +1,292 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * Task resource for the acknowledge alarms operation + */ +@Schema(description = "Task resource for the acknowledge alarms operation") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Entity(name = "AMAckAlarms") +@Table(name = "AMAckAlarms") +public class AckAlarms extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("ackSystemId") + private String ackSystemId = null; + + private OffsetDateTime ackTime = null; + + @JsonProperty("ackUserId") + private String ackUserId = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("ackedAlarm") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set ackedAlarm = new HashSet<>(); + + @JsonProperty("alarmPattern") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set alarmPattern = new HashSet<>(); + + /** + * @return the id + */ + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + + + public AckAlarms ackSystemId(String ackSystemId) { + this.ackSystemId = ackSystemId; + return this; + } + + /** + * Name of the acknowledging system + * + * @return ackSystemId + **/ + @Schema(description = "Name of the acknowledging system") + + public String getAckSystemId() { + return ackSystemId; + } + + public void setAckSystemId(String ackSystemId) { + this.ackSystemId = ackSystemId; + } + + public AckAlarms ackTime(OffsetDateTime ackTime) { + this.ackTime = ackTime; + return this; + } + + /** + * Time of the acknowledgement + * + * @return ackTime + **/ + @Schema(description = "Time of the acknowledgement") + + @Valid + public OffsetDateTime getAckTime() { + return ackTime; + } + + public void setAckTime(OffsetDateTime ackTime) { + this.ackTime = ackTime; + } + + + @JsonProperty("ackTime") + public String getAckTimeStr() { + if (this.ackTime != null) { + return this.ackTime.toString(); + } else { + return null; + } + } + + public AckAlarms ackUserId(String ackUserId) { + this.ackUserId = ackUserId; + return this; + } + + /** + * Name of the acknowledging user + * + * @return ackUserId + **/ + @Schema(description = "Name of the acknowledging user") + + public String getAckUserId() { + return ackUserId; + } + + public void setAckUserId(String ackUserId) { + this.ackUserId = ackUserId; + } + + public AckAlarms state(String state) { + this.state = state; + return this; + } + + /** + * Current state of the operation task + * + * @return state + **/ + @Schema(description = "Current state of the operation task") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public AckAlarms ackedAlarm(Set ackedAlarm) { + this.ackedAlarm = ackedAlarm; + return this; + } + + public AckAlarms addAckedAlarmItem(AlarmRefOrValue ackedAlarmItem) { + if (this.ackedAlarm == null) { + this.ackedAlarm = new HashSet<>(); + } + this.ackedAlarm.add(ackedAlarmItem); + return this; + } + + /** + * The successfully acknowledged alarms + * + * @return ackedAlarm + **/ + @Schema(description = "The successfully acknowledged alarms") + @Valid + public Set getAckedAlarm() { + return ackedAlarm; + } + + public void setAckedAlarm(Set ackedAlarm) { + this.ackedAlarm = ackedAlarm; + } + + public AckAlarms alarmPattern(Set alarmPattern) { + this.alarmPattern = alarmPattern; + return this; + } + + public AckAlarms addAlarmPatternItem(Alarm alarmPatternItem) { + if (this.alarmPattern == null) { + this.alarmPattern = new HashSet<>(); + } + this.alarmPattern.add(alarmPatternItem); + return this; + } + + /** + * Alarm patterns to match target alarms. An alarm will match if all of the + * sttributes in any of the patterns compare equal to those attributes of the + * alarm. + * + * @return alarmPattern + **/ + @Schema(description = "Alarm patterns to match target alarms. An alarm will match if all of the sttributes in any of the patterns compare equal to those attributes of the alarm.") + @Valid + public Set getAlarmPattern() { + return alarmPattern; + } + + public void setAlarmPattern(Set alarmPattern) { + this.alarmPattern = alarmPattern; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AckAlarms ackAlarms = (AckAlarms) o; + return Objects.equals(this.id, ackAlarms.id) && Objects.equals(this.href, ackAlarms.href) + && Objects.equals(this.ackSystemId, ackAlarms.ackSystemId) + && Objects.equals(this.ackTime, ackAlarms.ackTime) + && Objects.equals(this.ackUserId, ackAlarms.ackUserId) && Objects.equals(this.state, ackAlarms.state) + && Objects.equals(this.ackedAlarm, ackAlarms.ackedAlarm) + && Objects.equals(this.alarmPattern, ackAlarms.alarmPattern) + && Objects.equals(this.baseType, ackAlarms.baseType) + && Objects.equals(this.schemaLocation, ackAlarms.schemaLocation) + && Objects.equals(this.type, ackAlarms.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, ackSystemId, ackTime, ackUserId, state, ackedAlarm, alarmPattern, baseType, + schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AckAlarms {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" ackSystemId: ").append(toIndentedString(ackSystemId)).append("\n"); + sb.append(" ackTime: ").append(toIndentedString(ackTime)).append("\n"); + sb.append(" ackUserId: ").append(toIndentedString(ackUserId)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" ackedAlarm: ").append(toIndentedString(ackedAlarm)).append("\n"); + sb.append(" alarmPattern: ").append(toIndentedString(alarmPattern)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsCreate.java b/src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsCreate.java new file mode 100644 index 0000000..2171d83 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsCreate.java @@ -0,0 +1,314 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * Task resource for the acknowledge alarms operation Skipped properties: id,href + */ +@Schema(description = "Task resource for the acknowledge alarms operation Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class AckAlarmsCreate { + @JsonProperty("ackSystemId") + private String ackSystemId = null; + + @JsonProperty("ackTime") + private OffsetDateTime ackTime = null; + + @JsonProperty("ackUserId") + private String ackUserId = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("ackedAlarm") + @Valid + private List ackedAlarm = null; + + @JsonProperty("alarmPattern") + @Valid + private List alarmPattern = new ArrayList<>(); + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public AckAlarmsCreate ackSystemId(String ackSystemId) { + this.ackSystemId = ackSystemId; + return this; + } + + /** + * Name of the acknowledging system + * @return ackSystemId + **/ + @Schema(description = "Name of the acknowledging system") + @NotNull + + public String getAckSystemId() { + return ackSystemId; + } + + public void setAckSystemId(String ackSystemId) { + this.ackSystemId = ackSystemId; + } + + public AckAlarmsCreate ackTime(OffsetDateTime ackTime) { + this.ackTime = ackTime; + return this; + } + + /** + * Time of the acknowledgement + * @return ackTime + **/ + @Schema(description = "Time of the acknowledgement") + + @Valid + public OffsetDateTime getAckTime() { + return ackTime; + } + + public void setAckTime(OffsetDateTime ackTime) { + this.ackTime = ackTime; + } + + public AckAlarmsCreate ackUserId(String ackUserId) { + this.ackUserId = ackUserId; + return this; + } + + /** + * Name of the acknowledging user + * @return ackUserId + **/ + @Schema(description = "Name of the acknowledging user") + @NotNull + + public String getAckUserId() { + return ackUserId; + } + + public void setAckUserId(String ackUserId) { + this.ackUserId = ackUserId; + } + + public AckAlarmsCreate state(String state) { + this.state = state; + return this; + } + + /** + * Current state of the operation task + * @return state + **/ + @Schema(description = "Current state of the operation task") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public AckAlarmsCreate ackedAlarm(List ackedAlarm) { + this.ackedAlarm = ackedAlarm; + return this; + } + + public AckAlarmsCreate addAckedAlarmItem(AlarmRefOrValue ackedAlarmItem) { + if (this.ackedAlarm == null) { + this.ackedAlarm = new ArrayList<>(); + } + this.ackedAlarm.add(ackedAlarmItem); + return this; + } + + /** + * The successfully acknowledged alarms + * @return ackedAlarm + **/ + @Schema(description = "The successfully acknowledged alarms") + @Valid + public List getAckedAlarm() { + return ackedAlarm; + } + + public void setAckedAlarm(List ackedAlarm) { + this.ackedAlarm = ackedAlarm; + } + + public AckAlarmsCreate alarmPattern(List alarmPattern) { + this.alarmPattern = alarmPattern; + return this; + } + + public AckAlarmsCreate addAlarmPatternItem(Alarm alarmPatternItem) { + this.alarmPattern.add(alarmPatternItem); + return this; + } + + /** + * Alarm patterns to match target alarms. An alarm will match if all of the sttributes in any of the patterns compare equal to those attributes of the alarm. + * @return alarmPattern + **/ + @Schema(description = "Alarm patterns to match target alarms. An alarm will match if all of the sttributes in any of the patterns compare equal to those attributes of the alarm.") + @NotNull + @Valid + @Size(min=1) public List getAlarmPattern() { + return alarmPattern; + } + + public void setAlarmPattern(List alarmPattern) { + this.alarmPattern = alarmPattern; + } + + public AckAlarmsCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public AckAlarmsCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public AckAlarmsCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AckAlarmsCreate ackAlarmsCreate = (AckAlarmsCreate) o; + return Objects.equals(this.ackSystemId, ackAlarmsCreate.ackSystemId) && + Objects.equals(this.ackTime, ackAlarmsCreate.ackTime) && + Objects.equals(this.ackUserId, ackAlarmsCreate.ackUserId) && + Objects.equals(this.state, ackAlarmsCreate.state) && + Objects.equals(this.ackedAlarm, ackAlarmsCreate.ackedAlarm) && + Objects.equals(this.alarmPattern, ackAlarmsCreate.alarmPattern) && + Objects.equals(this.baseType, ackAlarmsCreate.baseType) && + Objects.equals(this.schemaLocation, ackAlarmsCreate.schemaLocation) && + Objects.equals(this.type, ackAlarmsCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(ackSystemId, ackTime, ackUserId, state, ackedAlarm, alarmPattern, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AckAlarmsCreate {\n"); + + sb.append(" ackSystemId: ").append(toIndentedString(ackSystemId)).append("\n"); + sb.append(" ackTime: ").append(toIndentedString(ackTime)).append("\n"); + sb.append(" ackUserId: ").append(toIndentedString(ackUserId)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" ackedAlarm: ").append(toIndentedString(ackedAlarm)).append("\n"); + sb.append(" alarmPattern: ").append(toIndentedString(alarmPattern)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsCreateEvent.java b/src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsCreateEvent.java new file mode 100644 index 0000000..a515722 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsCreateEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class AckAlarmsCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private AckAlarmsCreateEventPayload event = null; + + public AckAlarmsCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AckAlarmsCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public AckAlarmsCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public AckAlarmsCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public AckAlarmsCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public AckAlarmsCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public AckAlarmsCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public AckAlarmsCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public AckAlarmsCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public AckAlarmsCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public AckAlarmsCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public AckAlarmsCreateEvent event(AckAlarmsCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public AckAlarmsCreateEventPayload getEvent() { + return event; + } + + public void setEvent(AckAlarmsCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AckAlarmsCreateEvent ackAlarmsCreateEvent = (AckAlarmsCreateEvent) o; + return Objects.equals(this.id, ackAlarmsCreateEvent.id) && + Objects.equals(this.href, ackAlarmsCreateEvent.href) && + Objects.equals(this.eventId, ackAlarmsCreateEvent.eventId) && + Objects.equals(this.eventTime, ackAlarmsCreateEvent.eventTime) && + Objects.equals(this.eventType, ackAlarmsCreateEvent.eventType) && + Objects.equals(this.correlationId, ackAlarmsCreateEvent.correlationId) && + Objects.equals(this.domain, ackAlarmsCreateEvent.domain) && + Objects.equals(this.title, ackAlarmsCreateEvent.title) && + Objects.equals(this.description, ackAlarmsCreateEvent.description) && + Objects.equals(this.priority, ackAlarmsCreateEvent.priority) && + Objects.equals(this.timeOcurred, ackAlarmsCreateEvent.timeOcurred) && + Objects.equals(this.event, ackAlarmsCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AckAlarmsCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsCreateEventPayload.java new file mode 100644 index 0000000..788d11c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsCreateEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class AckAlarmsCreateEventPayload { + @JsonProperty("ackAlarms") + private AckAlarms ackAlarms = null; + + public AckAlarmsCreateEventPayload ackAlarms(AckAlarms ackAlarms) { + this.ackAlarms = ackAlarms; + return this; + } + + /** + * Get ackAlarms + * @return ackAlarms + **/ + @Schema(description = "") + + @Valid + public AckAlarms getAckAlarms() { + return ackAlarms; + } + + public void setAckAlarms(AckAlarms ackAlarms) { + this.ackAlarms = ackAlarms; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AckAlarmsCreateEventPayload ackAlarmsCreateEventPayload = (AckAlarmsCreateEventPayload) o; + return Objects.equals(this.ackAlarms, ackAlarmsCreateEventPayload.ackAlarms); + } + + @Override + public int hashCode() { + return Objects.hash(ackAlarms); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AckAlarmsCreateEventPayload {\n"); + + sb.append(" ackAlarms: ").append(toIndentedString(ackAlarms)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsStateChangeEvent.java new file mode 100644 index 0000000..9600644 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsStateChangeEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class AckAlarmsStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private AckAlarmsStateChangeEventPayload event = null; + + public AckAlarmsStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AckAlarmsStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public AckAlarmsStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public AckAlarmsStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public AckAlarmsStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public AckAlarmsStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public AckAlarmsStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public AckAlarmsStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public AckAlarmsStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public AckAlarmsStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public AckAlarmsStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public AckAlarmsStateChangeEvent event(AckAlarmsStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public AckAlarmsStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(AckAlarmsStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AckAlarmsStateChangeEvent ackAlarmsStateChangeEvent = (AckAlarmsStateChangeEvent) o; + return Objects.equals(this.id, ackAlarmsStateChangeEvent.id) && + Objects.equals(this.href, ackAlarmsStateChangeEvent.href) && + Objects.equals(this.eventId, ackAlarmsStateChangeEvent.eventId) && + Objects.equals(this.eventTime, ackAlarmsStateChangeEvent.eventTime) && + Objects.equals(this.eventType, ackAlarmsStateChangeEvent.eventType) && + Objects.equals(this.correlationId, ackAlarmsStateChangeEvent.correlationId) && + Objects.equals(this.domain, ackAlarmsStateChangeEvent.domain) && + Objects.equals(this.title, ackAlarmsStateChangeEvent.title) && + Objects.equals(this.description, ackAlarmsStateChangeEvent.description) && + Objects.equals(this.priority, ackAlarmsStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, ackAlarmsStateChangeEvent.timeOcurred) && + Objects.equals(this.event, ackAlarmsStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AckAlarmsStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsStateChangeEventPayload.java new file mode 100644 index 0000000..16c385e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AckAlarmsStateChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class AckAlarmsStateChangeEventPayload { + @JsonProperty("ackAlarms") + private AckAlarms ackAlarms = null; + + public AckAlarmsStateChangeEventPayload ackAlarms(AckAlarms ackAlarms) { + this.ackAlarms = ackAlarms; + return this; + } + + /** + * Get ackAlarms + * @return ackAlarms + **/ + @Schema(description = "") + + @Valid + public AckAlarms getAckAlarms() { + return ackAlarms; + } + + public void setAckAlarms(AckAlarms ackAlarms) { + this.ackAlarms = ackAlarms; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AckAlarmsStateChangeEventPayload ackAlarmsStateChangeEventPayload = (AckAlarmsStateChangeEventPayload) o; + return Objects.equals(this.ackAlarms, ackAlarmsStateChangeEventPayload.ackAlarms); + } + + @Override + public int hashCode() { + return Objects.hash(ackAlarms); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AckAlarmsStateChangeEventPayload {\n"); + + sb.append(" ackAlarms: ").append(toIndentedString(ackAlarms)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AffectedService.java b/src/main/java/org/etsi/osl/tmf/am642/model/AffectedService.java new file mode 100644 index 0000000..a6110ff --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AffectedService.java @@ -0,0 +1,98 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; + +/** + * AffectedService + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Entity(name = "AMAffectedService") +@Table(name = "AMAffectedService") +public class AffectedService extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + + public void setId(String anid) { + + this.id = anid; + } + + /** + * @return the id + */ + public String getId() { + + return id; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AffectedService affectedService = (AffectedService) o; + return Objects.equals(this.id, affectedService.id) && Objects.equals(this.href, affectedService.href) + && Objects.equals(this.baseType, affectedService.baseType) + && Objects.equals(this.schemaLocation, affectedService.schemaLocation) + && Objects.equals(this.type, affectedService.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AffectedService {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/Alarm.java b/src/main/java/org/etsi/osl/tmf/am642/model/Alarm.java new file mode 100644 index 0000000..b86f344 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/Alarm.java @@ -0,0 +1,1067 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Lob; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * This resource represents an alarm supporting the information model defined in + * ITU-T X.733. + */ +@Schema(description = "This resource represents an alarm supporting the information model defined in ITU-T X.733.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") + +@Entity(name = "AMAlarm") +@Table(name = "AMAlarm") +public class Alarm extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("ackState") + private String ackState = null; + + @JsonProperty("ackSystemId") + private String ackSystemId = null; + + @JsonProperty("ackUserId") + private String ackUserId = null; + + private OffsetDateTime alarmChangedTime = null; + + private OffsetDateTime alarmClearedTime = null; + + @JsonProperty("alarmDetails") + @Lob + @Column(name = "LALARMDETAILS", columnDefinition = "LONGTEXT") + private String alarmDetails = null; + + @JsonProperty("alarmEscalation") + private Boolean alarmEscalation = null; + + private OffsetDateTime alarmRaisedTime = null; + + private OffsetDateTime alarmReportingTime = null; + + @JsonProperty("alarmType") + private String alarmType = null; + + @JsonProperty("alarmedObjectType") + private String alarmedObjectType = null; + + @JsonProperty("clearSystemId") + private String clearSystemId = null; + + @JsonProperty("clearUserId") + private String clearUserId = null; + + @JsonProperty("externalAlarmId") + private String externalAlarmId = null; + + @JsonProperty("isRootCause") + private Boolean isRootCause = null; + + @JsonProperty("perceivedSeverity") + private String perceivedSeverity = null; + + @JsonProperty("plannedOutageIndicator") + private String plannedOutageIndicator = null; + + @JsonProperty("probableCause") + private String probableCause = null; + + @JsonProperty("proposedRepairedActions") + private String proposedRepairedActions = null; + + @JsonProperty("reportingSystemId") + private String reportingSystemId = null; + + @JsonProperty("serviceAffecting") + private Boolean serviceAffecting = null; + + @JsonProperty("sourceSystemId") + private String sourceSystemId = null; + + @JsonProperty("specificProblem") + @Lob + @Column(name = "LSPECIFICPROB", columnDefinition = "LONGTEXT") + private String specificProblem = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("affectedService") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set affectedService = new HashSet<>(); + + @JsonProperty("alarmedObject") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private AlarmedObject alarmedObject = null; + + @JsonProperty("comment") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set comment = new HashSet<>(); + + @JsonProperty("correlatedAlarm") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set correlatedAlarm = new HashSet<>(); + + @JsonProperty("crossedThresholdInformation") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private CrossedThresholdInformation crossedThresholdInformation = null; + + @JsonProperty("parentAlarm") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set parentAlarm = new HashSet<>(); + + @JsonProperty("place") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set place = new HashSet<>(); + + + + /** + * @return the id + */ + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + public Alarm href(String href) { + this.href = href; + return this; + } + + /** + * A reference to the alarm. + * + * @return href + **/ + @Schema(description = "A reference to the alarm.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public Alarm ackState(String ackState) { + this.ackState = ackState; + return this; + } + + /** + * Provides the Acknowledgement State of the alarm + * + * @return ackState + **/ + @Schema(description = "Provides the Acknowledgement State of the alarm") + + public String getAckState() { + return ackState; + } + + public void setAckState(String ackState) { + this.ackState = ackState; + } + + public Alarm ackSystemId(String ackSystemId) { + this.ackSystemId = ackSystemId; + return this; + } + + /** + * Provides the name of the system that last changed the ackState of an alarm, + * i.e. acknowledged or unacknowledged the alarm. + * + * @return ackSystemId + **/ + @Schema(description = "Provides the name of the system that last changed the ackState of an alarm, i.e. acknowledged or unacknowledged the alarm.") + + public String getAckSystemId() { + return ackSystemId; + } + + public void setAckSystemId(String ackSystemId) { + this.ackSystemId = ackSystemId; + } + + public Alarm ackUserId(String ackUserId) { + this.ackUserId = ackUserId; + return this; + } + + /** + * Provides the id of the user who has last changed the ack state of the alarm, + * i.e. acknowledged or unacknowledged the alarm. + * + * @return ackUserId + **/ + @Schema(description = "Provides the id of the user who has last changed the ack state of the alarm, i.e. acknowledged or unacknowledged the alarm.") + + public String getAckUserId() { + return ackUserId; + } + + public void setAckUserId(String ackUserId) { + this.ackUserId = ackUserId; + } + + public Alarm alarmChangedTime(OffsetDateTime alarmChangedTime) { + this.alarmChangedTime = alarmChangedTime; + return this; + } + + /** + * Indicates the last date and time when the alarm is changed on the + * alarm-owning system. Any change to the alarm whether coming from the alarmed + * resource, or triggered by a change from the client is changing this time. + * + * @return alarmChangedTime + **/ + @Schema(description = "Indicates the last date and time when the alarm is changed on the alarm-owning system. Any change to the alarm whether coming from the alarmed resource, or triggered by a change from the client is changing this time.") + + @Valid + public OffsetDateTime getAlarmChangedTime() { + return alarmChangedTime; + } + + public void setAlarmChangedTime(OffsetDateTime alarmChangedTime) { + this.alarmChangedTime = alarmChangedTime; + } + + public void setAlarmChangedTime(String alarmChangedTime) { + if ( alarmChangedTime != null) { + this.alarmChangedTime = OffsetDateTime.parse( alarmChangedTime ); + + } + } + + @JsonProperty("alarmChangedTime") + public String getAlarmChangedTimeStr() { + if (this.alarmChangedTime != null) { + return this.alarmChangedTime.toString(); + } else { + return null; + } + } + + public Alarm alarmClearedTime(OffsetDateTime alarmClearedTime) { + this.alarmClearedTime = alarmClearedTime; + return this; + } + + + + + + + + /** + * Indicates the time (as a date + time) at which the alarm is cleared at the + * source. + * + * @return alarmClearedTime + **/ + @Schema(description = "Indicates the time (as a date + time) at which the alarm is cleared at the source. ") + + @Valid + public OffsetDateTime getAlarmClearedTime() { + return alarmClearedTime; + } + + public void setAlarmClearedTime(OffsetDateTime alarmClearedTime) { + this.alarmClearedTime = alarmClearedTime; + } + + public void setAlarmClearedTime(String alarmClearedTime) { + if ( alarmClearedTime != null) { + this.alarmClearedTime = OffsetDateTime.parse( alarmClearedTime ); + } + } + + + @JsonProperty("alarmClearedTime") + public String getAlarmClearedTimeStr() { + if (this.alarmClearedTime != null) { + return this.alarmClearedTime.toString(); + } else { + return null; + } + } + + public Alarm alarmDetails(String alarmDetails) { + this.alarmDetails = alarmDetails; + return this; + } + + /** + * Contains further information on the alarm. + * + * @return alarmDetails + **/ + @Schema(description = "Contains further information on the alarm.") + + public String getAlarmDetails() { + return alarmDetails; + } + + public void setAlarmDetails(String alarmDetails) { + this.alarmDetails = alarmDetails; + } + + public Alarm alarmEscalation(Boolean alarmEscalation) { + this.alarmEscalation = alarmEscalation; + return this; + } + + /** + * Indicates if this alarm has been escalated or not. + * + * @return alarmEscalation + **/ + @Schema(description = "Indicates if this alarm has been escalated or not. ") + + public Boolean isAlarmEscalation() { + return alarmEscalation; + } + + public void setAlarmEscalation(Boolean alarmEscalation) { + this.alarmEscalation = alarmEscalation; + } + + public Alarm alarmRaisedTime(OffsetDateTime alarmRaisedTime) { + this.alarmRaisedTime = alarmRaisedTime; + return this; + } + + /** + * Indicates the time (as a date + time) at which the alarm occurred at its + * source. + * + * @return alarmRaisedTime + **/ + @Schema(description = "Indicates the time (as a date + time) at which the alarm occurred at its source.") + + @Valid + public OffsetDateTime getAlarmRaisedTime() { + return alarmRaisedTime; + } + + public void setAlarmRaisedTime(OffsetDateTime alarmRaisedTime) { + this.alarmRaisedTime = alarmRaisedTime; + } + + public void setAlarmRaisedTime(String alarmRaisedTime) { + + if ( alarmRaisedTime != null) { + this.alarmRaisedTime = OffsetDateTime.parse( alarmRaisedTime ); + + } + } + + + @JsonProperty("alarmRaisedTime") + public String getAlarmRaisedTimeStr() { + if (this.alarmRaisedTime != null) { + return this.alarmRaisedTime.toString(); + } else { + return null; + } + } + + + + public Alarm alarmReportingTime(OffsetDateTime alarmReportingTime) { + this.alarmReportingTime = alarmReportingTime; + return this; + } + + /** + * Indicates the time (as a date + time) at which the alarm was reported by the + * owning OSS. It might be different from the alarmRaisedTime. For instance, if + * the alarm list is maintained by an EMS, the alarmRaisedtime would be the time + * the alarm was detected by the NE, while the alarmReportingTime would be the + * time this alarm was stored in the alarm list of the EMS. + * + * @return alarmReportingTime + **/ + @Schema(description = "Indicates the time (as a date + time) at which the alarm was reported by the owning OSS. It might be different from the alarmRaisedTime. For instance, if the alarm list is maintained by an EMS, the alarmRaisedtime would be the time the alarm was detected by the NE, while the alarmReportingTime would be the time this alarm was stored in the alarm list of the EMS.") + + @Valid + public OffsetDateTime getAlarmReportingTime() { + return alarmReportingTime; + } + + public void setAlarmReportingTime(OffsetDateTime alarmReportingTime) { + this.alarmReportingTime = alarmReportingTime; + } + + + public void setAlarmReportingTime(String alarmReportingTime) { + if ( alarmReportingTime != null) { + this.alarmReportingTime = OffsetDateTime.parse( alarmReportingTime ); + + } + } + + @JsonProperty("alarmReportingTime") + public String getAlarmReportingTimeStr() { + if (this.alarmReportingTime != null) { + return this.alarmReportingTime.toString(); + } else { + return null; + } + } + + + public Alarm alarmType(String alarmType) { + this.alarmType = alarmType; + return this; + } + + /** + * Categorize the alarm. Should be one of the values defined in X.733 8.1.1 or + * 3GPP TS 32.111-2 Annex A: Communications Alarm Processing Error Alarm + * Environmental Alarm Quality of Service Alarm Equipment Alarm Integrity + * Violation Operational Violation Physical Violation Security Service or + * Mechanism Violation Time Domain Violation + * + * @return alarmType + **/ + @Schema(description = "Categorize the alarm. Should be one of the values defined in X.733 8.1.1 or 3GPP TS 32.111-2 Annex A: Communications Alarm Processing Error Alarm Environmental Alarm Quality of Service Alarm Equipment Alarm Integrity Violation Operational Violation Physical Violation Security Service or Mechanism Violation Time Domain Violation") + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public Alarm alarmedObjectType(String alarmedObjectType) { + this.alarmedObjectType = alarmedObjectType; + return this; + } + + /** + * The type (class) of the managed object associated with the event. + * + * @return alarmedObjectType + **/ + @Schema(description = "The type (class) of the managed object associated with the event.") + + public String getAlarmedObjectType() { + return alarmedObjectType; + } + + public void setAlarmedObjectType(String alarmedObjectType) { + this.alarmedObjectType = alarmedObjectType; + } + + public Alarm clearSystemId(String clearSystemId) { + this.clearSystemId = clearSystemId; + return this; + } + + /** + * Provides the id of the system where the user who invoked the alarmCleared + * operation is located. + * + * @return clearSystemId + **/ + @Schema(description = "Provides the id of the system where the user who invoked the alarmCleared operation is located. ") + + public String getClearSystemId() { + return clearSystemId; + } + + public void setClearSystemId(String clearSystemId) { + this.clearSystemId = clearSystemId; + } + + public Alarm clearUserId(String clearUserId) { + this.clearUserId = clearUserId; + return this; + } + + /** + * Provides the id of the user who invoked the alarmCleared operation + * + * @return clearUserId + **/ + @Schema(description = "Provides the id of the user who invoked the alarmCleared operation") + + public String getClearUserId() { + return clearUserId; + } + + public void setClearUserId(String clearUserId) { + this.clearUserId = clearUserId; + } + + public Alarm externalAlarmId(String externalAlarmId) { + this.externalAlarmId = externalAlarmId; + return this; + } + + /** + * An identifier of the alarm in the source system. + * + * @return externalAlarmId + **/ + @Schema(description = "An identifier of the alarm in the source system.") + + public String getExternalAlarmId() { + return externalAlarmId; + } + + public void setExternalAlarmId(String externalAlarmId) { + this.externalAlarmId = externalAlarmId; + } + + public Alarm isRootCause(Boolean isRootCause) { + this.isRootCause = isRootCause; + return this; + } + + /** + * Indicates whether the alarm is a root cause alarm.. + * + * @return isRootCause + **/ + @Schema(description = "Indicates whether the alarm is a root cause alarm.. ") + + public Boolean isIsRootCause() { + return isRootCause; + } + + public void setIsRootCause(Boolean isRootCause) { + this.isRootCause = isRootCause; + } + + public Alarm perceivedSeverity(String perceivedSeverity) { + this.perceivedSeverity = perceivedSeverity; + return this; + } + + /** + * Lists the possible severities that can be allocated to an Alarm. The values + * are consistent with ITU-T Recommendation X.733. Once an alarm has been + * cleared, its perceived severity is set to 'cleared' and can no longer be set. + * + * @return perceivedSeverity + **/ + @Schema(description = "Lists the possible severities that can be allocated to an Alarm. The values are consistent with ITU-T Recommendation X.733. Once an alarm has been cleared, its perceived severity is set to 'cleared' and can no longer be set.") + + public String getPerceivedSeverity() { + return perceivedSeverity; + } + + public void setPerceivedSeverity(String perceivedSeverity) { + this.perceivedSeverity = perceivedSeverity; + } + + public Alarm plannedOutageIndicator(String plannedOutageIndicator) { + this.plannedOutageIndicator = plannedOutageIndicator; + return this; + } + + /** + * Indicates that the Managed Object (related to this alarm) is in planned + * outage (in planned maintenance, or out-of-service). + * + * @return plannedOutageIndicator + **/ + @Schema(description = "Indicates that the Managed Object (related to this alarm) is in planned outage (in planned maintenance, or out-of-service). ") + + public String getPlannedOutageIndicator() { + return plannedOutageIndicator; + } + + public void setPlannedOutageIndicator(String plannedOutageIndicator) { + this.plannedOutageIndicator = plannedOutageIndicator; + } + + public Alarm probableCause(String probableCause) { + this.probableCause = probableCause; + return this; + } + + /** + * Provides the probable cause of the alarm. The values are consistent with + * ITU-T Recommendation X.733 or 3GPP TS 32.111-2 Annex B. + * + * @return probableCause + **/ + @Schema(description = "Provides the probable cause of the alarm. The values are consistent with ITU-T Recommendation X.733 or 3GPP TS 32.111-2 Annex B.") + + public String getProbableCause() { + return probableCause; + } + + public void setProbableCause(String probableCause) { + this.probableCause = probableCause; + } + + public Alarm proposedRepairedActions(String proposedRepairedActions) { + this.proposedRepairedActions = proposedRepairedActions; + return this; + } + + /** + * Indicates proposed repair actions, if known to the system emitting the alarm. + * + * @return proposedRepairedActions + **/ + @Schema(description = "Indicates proposed repair actions, if known to the system emitting the alarm.") + + public String getProposedRepairedActions() { + return proposedRepairedActions; + } + + public void setProposedRepairedActions(String proposedRepairedActions) { + this.proposedRepairedActions = proposedRepairedActions; + } + + public Alarm reportingSystemId(String reportingSystemId) { + this.reportingSystemId = reportingSystemId; + return this; + } + + /** + * Reporting system identity. + * + * @return reportingSystemId + **/ + @Schema(description = "Reporting system identity.") + + public String getReportingSystemId() { + return reportingSystemId; + } + + public void setReportingSystemId(String reportingSystemId) { + this.reportingSystemId = reportingSystemId; + } + + public Alarm serviceAffecting(Boolean serviceAffecting) { + this.serviceAffecting = serviceAffecting; + return this; + } + + /** + * Indicates whether the alarm affects service or not. + * + * @return serviceAffecting + **/ + @Schema(description = "Indicates whether the alarm affects service or not.") + + public Boolean isServiceAffecting() { + return serviceAffecting; + } + + public void setServiceAffecting(Boolean serviceAffecting) { + this.serviceAffecting = serviceAffecting; + } + + public Alarm sourceSystemId(String sourceSystemId) { + this.sourceSystemId = sourceSystemId; + return this; + } + + /** + * Source system identity. + * + * @return sourceSystemId + **/ + @Schema(description = "Source system identity.") + + public String getSourceSystemId() { + return sourceSystemId; + } + + public void setSourceSystemId(String sourceSystemId) { + this.sourceSystemId = sourceSystemId; + } + + public Alarm specificProblem(String specificProblem) { + this.specificProblem = specificProblem; + return this; + } + + /** + * Provides more specific information about the alarm. + * + * @return specificProblem + **/ + @Schema(description = "Provides more specific information about the alarm.") + + public String getSpecificProblem() { + return specificProblem; + } + + public void setSpecificProblem(String specificProblem) { + this.specificProblem = specificProblem; + } + + public Alarm state(String state) { + this.state = state; + return this; + } + + /** + * Defines the alarm state during its life cycle + * + * @return state + **/ + @Schema(description = "Defines the alarm state during its life cycle") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public Alarm affectedService(Set affectedService) { + this.affectedService = affectedService; + return this; + } + + public Alarm addAffectedServiceItem(AffectedService affectedServiceItem) { + if (this.affectedService == null) { + this.affectedService = new HashSet<>(); + } + this.affectedService.add(affectedServiceItem); + return this; + } + + /** + * Get affectedService + * + * @return affectedService + **/ + @Schema(description = "") + @Valid + public Set getAffectedService() { + return affectedService; + } + + public void setAffectedService(Set affectedService) { + this.affectedService = affectedService; + } + + public Alarm alarmedObject(AlarmedObject alarmedObject) { + this.alarmedObject = alarmedObject; + return this; + } + + /** + * Get alarmedObject + * + * @return alarmedObject + **/ + @Schema(description = "") + + @Valid + public AlarmedObject getAlarmedObject() { + return alarmedObject; + } + + public void setAlarmedObject(AlarmedObject alarmedObject) { + this.alarmedObject = alarmedObject; + } + + public Alarm comment(Set comment) { + this.comment = comment; + return this; + } + + public Alarm addCommentItem(Comment commentItem) { + if (this.comment == null) { + this.comment = new HashSet<>(); + } + this.comment.add(commentItem); + return this; + } + + /** + * Get comment + * + * @return comment + **/ + @Schema(description = "") + @Valid + public Set getComment() { + return comment; + } + + public void setComment(Set comment) { + this.comment = comment; + } + + public Alarm correlatedAlarm(Set correlatedAlarm) { + this.correlatedAlarm = correlatedAlarm; + return this; + } + + public Alarm addCorrelatedAlarmItem(AlarmRef correlatedAlarmItem) { + if (this.correlatedAlarm == null) { + this.correlatedAlarm = new HashSet<>(); + } + this.correlatedAlarm.add(correlatedAlarmItem); + return this; + } + + /** + * Get correlatedAlarm + * + * @return correlatedAlarm + **/ + @Schema(description = "") + @Valid + public Set getCorrelatedAlarm() { + return correlatedAlarm; + } + + public void setCorrelatedAlarm(Set correlatedAlarm) { + this.correlatedAlarm = correlatedAlarm; + } + + public Alarm crossedThresholdInformation(CrossedThresholdInformation crossedThresholdInformation) { + this.crossedThresholdInformation = crossedThresholdInformation; + return this; + } + + /** + * Get crossedThresholdInformation + * + * @return crossedThresholdInformation + **/ + @Schema(description = "") + + @Valid + public CrossedThresholdInformation getCrossedThresholdInformation() { + return crossedThresholdInformation; + } + + public void setCrossedThresholdInformation(CrossedThresholdInformation crossedThresholdInformation) { + this.crossedThresholdInformation = crossedThresholdInformation; + } + + public Alarm parentAlarm(Set parentAlarm) { + this.parentAlarm = parentAlarm; + return this; + } + + public Alarm addParentAlarmItem(AlarmRef parentAlarmItem) { + if (this.parentAlarm == null) { + this.parentAlarm = new HashSet<>(); + } + this.parentAlarm.add(parentAlarmItem); + return this; + } + + /** + * Get parentAlarm + * + * @return parentAlarm + **/ + @Schema(description = "") + @Valid + public Set getParentAlarm() { + return parentAlarm; + } + + public void setParentAlarm(Set parentAlarm) { + this.parentAlarm = parentAlarm; + } + + public Alarm place(Set place) { + this.place = place; + return this; + } + + public Alarm addPlaceItem(RelatedPlaceRefOrValue placeItem) { + if (this.place == null) { + this.place = new HashSet<>(); + } + this.place.add(placeItem); + return this; + } + + /** + * Get place + * + * @return place + **/ + @Schema(description = "") + @Valid + public Set getPlace() { + return place; + } + + public void setPlace(Set place) { + this.place = place; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Alarm alarm = (Alarm) o; + return Objects.equals(this.id, alarm.id) && Objects.equals(this.href, alarm.href) + && Objects.equals(this.ackState, alarm.ackState) && Objects.equals(this.ackSystemId, alarm.ackSystemId) + && Objects.equals(this.ackUserId, alarm.ackUserId) + && Objects.equals(this.alarmChangedTime, alarm.alarmChangedTime) + && Objects.equals(this.alarmClearedTime, alarm.alarmClearedTime) + && Objects.equals(this.alarmDetails, alarm.alarmDetails) + && Objects.equals(this.alarmEscalation, alarm.alarmEscalation) + && Objects.equals(this.alarmRaisedTime, alarm.alarmRaisedTime) + && Objects.equals(this.alarmReportingTime, alarm.alarmReportingTime) + && Objects.equals(this.alarmType, alarm.alarmType) + && Objects.equals(this.alarmedObjectType, alarm.alarmedObjectType) + && Objects.equals(this.clearSystemId, alarm.clearSystemId) + && Objects.equals(this.clearUserId, alarm.clearUserId) + && Objects.equals(this.externalAlarmId, alarm.externalAlarmId) + && Objects.equals(this.isRootCause, alarm.isRootCause) + && Objects.equals(this.perceivedSeverity, alarm.perceivedSeverity) + && Objects.equals(this.plannedOutageIndicator, alarm.plannedOutageIndicator) + && Objects.equals(this.probableCause, alarm.probableCause) + && Objects.equals(this.proposedRepairedActions, alarm.proposedRepairedActions) + && Objects.equals(this.reportingSystemId, alarm.reportingSystemId) + && Objects.equals(this.serviceAffecting, alarm.serviceAffecting) + && Objects.equals(this.sourceSystemId, alarm.sourceSystemId) + && Objects.equals(this.specificProblem, alarm.specificProblem) + && Objects.equals(this.state, alarm.state) + && Objects.equals(this.affectedService, alarm.affectedService) + && Objects.equals(this.alarmedObject, alarm.alarmedObject) + && Objects.equals(this.comment, alarm.comment) + && Objects.equals(this.correlatedAlarm, alarm.correlatedAlarm) + && Objects.equals(this.crossedThresholdInformation, alarm.crossedThresholdInformation) + && Objects.equals(this.parentAlarm, alarm.parentAlarm) && Objects.equals(this.place, alarm.place) + && Objects.equals(this.baseType, alarm.baseType) + && Objects.equals(this.schemaLocation, alarm.schemaLocation) + && Objects.equals(this.type, alarm.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, ackState, ackSystemId, ackUserId, alarmChangedTime, alarmClearedTime, +// alarmDetails, alarmEscalation, alarmRaisedTime, alarmReportingTime, alarmType, alarmedObjectType, +// clearSystemId, clearUserId, externalAlarmId, isRootCause, perceivedSeverity, plannedOutageIndicator, +// probableCause, proposedRepairedActions, reportingSystemId, serviceAffecting, sourceSystemId, +// specificProblem, state, affectedService, alarmedObject, comment, correlatedAlarm, +// crossedThresholdInformation, parentAlarm, place, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Alarm {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" ackState: ").append(toIndentedString(ackState)).append("\n"); + sb.append(" ackSystemId: ").append(toIndentedString(ackSystemId)).append("\n"); + sb.append(" ackUserId: ").append(toIndentedString(ackUserId)).append("\n"); + sb.append(" alarmChangedTime: ").append(toIndentedString(alarmChangedTime)).append("\n"); + sb.append(" alarmClearedTime: ").append(toIndentedString(alarmClearedTime)).append("\n"); + sb.append(" alarmDetails: ").append(toIndentedString(alarmDetails)).append("\n"); + sb.append(" alarmEscalation: ").append(toIndentedString(alarmEscalation)).append("\n"); + sb.append(" alarmRaisedTime: ").append(toIndentedString(alarmRaisedTime)).append("\n"); + sb.append(" alarmReportingTime: ").append(toIndentedString(alarmReportingTime)).append("\n"); + sb.append(" alarmType: ").append(toIndentedString(alarmType)).append("\n"); + sb.append(" alarmedObjectType: ").append(toIndentedString(alarmedObjectType)).append("\n"); + sb.append(" clearSystemId: ").append(toIndentedString(clearSystemId)).append("\n"); + sb.append(" clearUserId: ").append(toIndentedString(clearUserId)).append("\n"); + sb.append(" externalAlarmId: ").append(toIndentedString(externalAlarmId)).append("\n"); + sb.append(" isRootCause: ").append(toIndentedString(isRootCause)).append("\n"); + sb.append(" perceivedSeverity: ").append(toIndentedString(perceivedSeverity)).append("\n"); + sb.append(" plannedOutageIndicator: ").append(toIndentedString(plannedOutageIndicator)).append("\n"); + sb.append(" probableCause: ").append(toIndentedString(probableCause)).append("\n"); + sb.append(" proposedRepairedActions: ").append(toIndentedString(proposedRepairedActions)).append("\n"); + sb.append(" reportingSystemId: ").append(toIndentedString(reportingSystemId)).append("\n"); + sb.append(" serviceAffecting: ").append(toIndentedString(serviceAffecting)).append("\n"); + sb.append(" sourceSystemId: ").append(toIndentedString(sourceSystemId)).append("\n"); + sb.append(" specificProblem: ").append(toIndentedString(specificProblem)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" affectedService: ").append(toIndentedString(affectedService)).append("\n"); + sb.append(" alarmedObject: ").append(toIndentedString(alarmedObject)).append("\n"); + sb.append(" comment: ").append(toIndentedString(comment)).append("\n"); + sb.append(" correlatedAlarm: ").append(toIndentedString(correlatedAlarm)).append("\n"); + sb.append(" crossedThresholdInformation: ").append(toIndentedString(crossedThresholdInformation)) + .append("\n"); + sb.append(" parentAlarm: ").append(toIndentedString(parentAlarm)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AlarmAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmAttributeValueChangeEvent.java new file mode 100644 index 0000000..87c66a8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmAttributeValueChangeEvent.java @@ -0,0 +1,342 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class AlarmAttributeValueChangeEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("event") + private AlarmAttributeValueChangeEventPayload event = null; + + public AlarmAttributeValueChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public AlarmAttributeValueChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public AlarmAttributeValueChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public AlarmAttributeValueChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public AlarmAttributeValueChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public AlarmAttributeValueChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public AlarmAttributeValueChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public AlarmAttributeValueChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public AlarmAttributeValueChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public AlarmAttributeValueChangeEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public AlarmAttributeValueChangeEvent event(AlarmAttributeValueChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public AlarmAttributeValueChangeEventPayload getEvent() { + return event; + } + + public void setEvent(AlarmAttributeValueChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlarmAttributeValueChangeEvent alarmAttributeValueChangeEvent = (AlarmAttributeValueChangeEvent) o; + return Objects.equals(this.eventId, alarmAttributeValueChangeEvent.eventId) && + Objects.equals(this.eventTime, alarmAttributeValueChangeEvent.eventTime) && + Objects.equals(this.eventType, alarmAttributeValueChangeEvent.eventType) && + Objects.equals(this.correlationId, alarmAttributeValueChangeEvent.correlationId) && + Objects.equals(this.domain, alarmAttributeValueChangeEvent.domain) && + Objects.equals(this.title, alarmAttributeValueChangeEvent.title) && + Objects.equals(this.description, alarmAttributeValueChangeEvent.description) && + Objects.equals(this.priority, alarmAttributeValueChangeEvent.priority) && + Objects.equals(this.timeOcurred, alarmAttributeValueChangeEvent.timeOcurred) && + Objects.equals(this.fieldPath, alarmAttributeValueChangeEvent.fieldPath) && + Objects.equals(this.event, alarmAttributeValueChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, fieldPath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlarmAttributeValueChangeEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AlarmAttributeValueChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmAttributeValueChangeEventPayload.java new file mode 100644 index 0000000..092af2f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmAttributeValueChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class AlarmAttributeValueChangeEventPayload { + @JsonProperty("alarm") + private Alarm alarm = null; + + public AlarmAttributeValueChangeEventPayload alarm(Alarm alarm) { + this.alarm = alarm; + return this; + } + + /** + * Get alarm + * @return alarm + **/ + @Schema(description = "") + + @Valid + public Alarm getAlarm() { + return alarm; + } + + public void setAlarm(Alarm alarm) { + this.alarm = alarm; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlarmAttributeValueChangeEventPayload alarmAttributeValueChangeEventPayload = (AlarmAttributeValueChangeEventPayload) o; + return Objects.equals(this.alarm, alarmAttributeValueChangeEventPayload.alarm); + } + + @Override + public int hashCode() { + return Objects.hash(alarm); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlarmAttributeValueChangeEventPayload {\n"); + + sb.append(" alarm: ").append(toIndentedString(alarm)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AlarmCreate.java b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmCreate.java new file mode 100644 index 0000000..22e01c6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmCreate.java @@ -0,0 +1,210 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * This resource represents an alarm supporting the information model defined in + * ITU-T X.733. Skipped properties: id,href + */ +@Schema(description = "This resource represents an alarm supporting the information model defined in ITU-T X.733. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class AlarmCreate extends AlarmUpdate { + + private OffsetDateTime alarmRaisedTime = null; + + @JsonProperty("sourceSystemId") + private String sourceSystemId = null; + + /** + * Indicates the time (as a date + time) at which the alarm occurred at its + * source. + * + * @return alarmRaisedTime + **/ + @Schema(description = "Indicates the time (as a date + time) at which the alarm occurred at its source.") + @NotNull + + @Valid + public OffsetDateTime getAlarmRaisedTime() { + return alarmRaisedTime; + } + + public void setAlarmRaisedTime(OffsetDateTime alarmRaisedTime) { + this.alarmRaisedTime = alarmRaisedTime; + } + + @JsonProperty("alarmRaisedTime") + public String getAlarmRaisedTimeStr() { + if (this.alarmRaisedTime != null) { + return this.alarmRaisedTime.toString(); + } else { + return null; + } + } + + public void setAlarmRaisedTime(String aalarmRaisedTime) { + if (aalarmRaisedTime != null) { + this.alarmRaisedTime = OffsetDateTime.parse(aalarmRaisedTime); + } + + } + + public AlarmCreate sourceSystemId(String sourceSystemId) { + this.sourceSystemId = sourceSystemId; + return this; + } + + /** + * Source system identity. + * + * @return sourceSystemId + **/ + @Schema(description = "Source system identity.") + @NotNull + + public String getSourceSystemId() { + return sourceSystemId; + } + + public void setSourceSystemId(String sourceSystemId) { + this.sourceSystemId = sourceSystemId; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlarmCreate alarmCreate = (AlarmCreate) o; + return Objects.equals(this.ackState, alarmCreate.ackState) + && Objects.equals(this.ackSystemId, alarmCreate.ackSystemId) + && Objects.equals(this.ackUserId, alarmCreate.ackUserId) + && Objects.equals(this.alarmChangedTime, alarmCreate.alarmChangedTime) + && Objects.equals(this.alarmClearedTime, alarmCreate.alarmClearedTime) + && Objects.equals(this.alarmDetails, alarmCreate.alarmDetails) + && Objects.equals(this.alarmEscalation, alarmCreate.alarmEscalation) + && Objects.equals(this.alarmRaisedTime, alarmCreate.alarmRaisedTime) + && Objects.equals(this.alarmReportingTime, alarmCreate.alarmReportingTime) + && Objects.equals(this.alarmType, alarmCreate.alarmType) + && Objects.equals(this.alarmedObjectType, alarmCreate.alarmedObjectType) + && Objects.equals(this.clearSystemId, alarmCreate.clearSystemId) + && Objects.equals(this.clearUserId, alarmCreate.clearUserId) + && Objects.equals(this.externalAlarmId, alarmCreate.externalAlarmId) + && Objects.equals(this.isRootCause, alarmCreate.isRootCause) + && Objects.equals(this.perceivedSeverity, alarmCreate.perceivedSeverity) + && Objects.equals(this.plannedOutageIndicator, alarmCreate.plannedOutageIndicator) + && Objects.equals(this.probableCause, alarmCreate.probableCause) + && Objects.equals(this.proposedRepairedActions, alarmCreate.proposedRepairedActions) + && Objects.equals(this.reportingSystemId, alarmCreate.reportingSystemId) + && Objects.equals(this.serviceAffecting, alarmCreate.serviceAffecting) + && Objects.equals(this.sourceSystemId, alarmCreate.sourceSystemId) + && Objects.equals(this.specificProblem, alarmCreate.specificProblem) + && Objects.equals(this.state, alarmCreate.state) + && Objects.equals(this.affectedService, alarmCreate.affectedService) + && Objects.equals(this.alarmedObject, alarmCreate.alarmedObject) + && Objects.equals(this.comment, alarmCreate.comment) + && Objects.equals(this.correlatedAlarm, alarmCreate.correlatedAlarm) + && Objects.equals(this.crossedThresholdInformation, alarmCreate.crossedThresholdInformation) + && Objects.equals(this.parentAlarm, alarmCreate.parentAlarm) + && Objects.equals(this.place, alarmCreate.place) && Objects.equals(this.baseType, alarmCreate.baseType) + && Objects.equals(this.schemaLocation, alarmCreate.schemaLocation) + && Objects.equals(this.type, alarmCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(ackState, ackSystemId, ackUserId, alarmChangedTime, alarmClearedTime, alarmDetails, + alarmEscalation, alarmRaisedTime, alarmReportingTime, alarmType, alarmedObjectType, clearSystemId, + clearUserId, externalAlarmId, isRootCause, perceivedSeverity, plannedOutageIndicator, probableCause, + proposedRepairedActions, reportingSystemId, serviceAffecting, sourceSystemId, specificProblem, state, + affectedService, alarmedObject, comment, correlatedAlarm, crossedThresholdInformation, parentAlarm, + place, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlarmCreate {\n"); + + sb.append(" ackState: ").append(toIndentedString(ackState)).append("\n"); + sb.append(" ackSystemId: ").append(toIndentedString(ackSystemId)).append("\n"); + sb.append(" ackUserId: ").append(toIndentedString(ackUserId)).append("\n"); + sb.append(" alarmChangedTime: ").append(toIndentedString(alarmChangedTime)).append("\n"); + sb.append(" alarmClearedTime: ").append(toIndentedString(alarmClearedTime)).append("\n"); + sb.append(" alarmDetails: ").append(toIndentedString(alarmDetails)).append("\n"); + sb.append(" alarmEscalation: ").append(toIndentedString(alarmEscalation)).append("\n"); + sb.append(" alarmRaisedTime: ").append(toIndentedString(alarmRaisedTime)).append("\n"); + sb.append(" alarmReportingTime: ").append(toIndentedString(alarmReportingTime)).append("\n"); + sb.append(" alarmType: ").append(toIndentedString(alarmType)).append("\n"); + sb.append(" alarmedObjectType: ").append(toIndentedString(alarmedObjectType)).append("\n"); + sb.append(" clearSystemId: ").append(toIndentedString(clearSystemId)).append("\n"); + sb.append(" clearUserId: ").append(toIndentedString(clearUserId)).append("\n"); + sb.append(" externalAlarmId: ").append(toIndentedString(externalAlarmId)).append("\n"); + sb.append(" isRootCause: ").append(toIndentedString(isRootCause)).append("\n"); + sb.append(" perceivedSeverity: ").append(toIndentedString(perceivedSeverity)).append("\n"); + sb.append(" plannedOutageIndicator: ").append(toIndentedString(plannedOutageIndicator)).append("\n"); + sb.append(" probableCause: ").append(toIndentedString(probableCause)).append("\n"); + sb.append(" proposedRepairedActions: ").append(toIndentedString(proposedRepairedActions)).append("\n"); + sb.append(" reportingSystemId: ").append(toIndentedString(reportingSystemId)).append("\n"); + sb.append(" serviceAffecting: ").append(toIndentedString(serviceAffecting)).append("\n"); + sb.append(" sourceSystemId: ").append(toIndentedString(sourceSystemId)).append("\n"); + sb.append(" specificProblem: ").append(toIndentedString(specificProblem)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" affectedService: ").append(toIndentedString(affectedService)).append("\n"); + sb.append(" alarmedObject: ").append(toIndentedString(alarmedObject)).append("\n"); + sb.append(" comment: ").append(toIndentedString(comment)).append("\n"); + sb.append(" correlatedAlarm: ").append(toIndentedString(correlatedAlarm)).append("\n"); + sb.append(" crossedThresholdInformation: ").append(toIndentedString(crossedThresholdInformation)) + .append("\n"); + sb.append(" parentAlarm: ").append(toIndentedString(parentAlarm)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AlarmCreateEvent.java b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmCreateEvent.java new file mode 100644 index 0000000..e1297e4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmCreateEvent.java @@ -0,0 +1,124 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.OpensliceEvent; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class AlarmCreateEvent extends OpensliceEvent { + + + @JsonProperty("event") + private AlarmCreateEventPayload event = null; + + + + public AlarmCreateEvent event(AlarmCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public AlarmCreateEventPayload getEvent() { + return event; + } + + public void setEvent(AlarmCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlarmCreateEvent alarmCreateEvent = (AlarmCreateEvent) o; + return Objects.equals(this.id, alarmCreateEvent.id) && + Objects.equals(this.href, alarmCreateEvent.href) && + Objects.equals(this.eventId, alarmCreateEvent.eventId) && + Objects.equals(this.eventTime, alarmCreateEvent.eventTime) && + Objects.equals(this.eventType, alarmCreateEvent.eventType) && + Objects.equals(this.correlationId, alarmCreateEvent.correlationId) && + Objects.equals(this.domain, alarmCreateEvent.domain) && + Objects.equals(this.title, alarmCreateEvent.title) && + Objects.equals(this.description, alarmCreateEvent.description) && + Objects.equals(this.priority, alarmCreateEvent.priority) && + Objects.equals(this.timeOcurred, alarmCreateEvent.timeOcurred) && + Objects.equals(this.event, alarmCreateEvent.event); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlarmCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AlarmCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmCreateEventPayload.java new file mode 100644 index 0000000..7a499c9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmCreateEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class AlarmCreateEventPayload { + @JsonProperty("alarm") + private Alarm alarm = null; + + public AlarmCreateEventPayload alarm(Alarm alarm) { + this.alarm = alarm; + return this; + } + + /** + * Get alarm + * @return alarm + **/ + @Schema(description = "") + + @Valid + public Alarm getAlarm() { + return alarm; + } + + public void setAlarm(Alarm alarm) { + this.alarm = alarm; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlarmCreateEventPayload alarmCreateEventPayload = (AlarmCreateEventPayload) o; + return Objects.equals(this.alarm, alarmCreateEventPayload.alarm); + } + + @Override + public int hashCode() { + return Objects.hash(alarm); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlarmCreateEventPayload {\n"); + + sb.append(" alarm: ").append(toIndentedString(alarm)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AlarmDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmDeleteEvent.java new file mode 100644 index 0000000..38d5a4d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmDeleteEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class AlarmDeleteEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private AlarmDeleteEventPayload event = null; + + public AlarmDeleteEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AlarmDeleteEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public AlarmDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public AlarmDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public AlarmDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public AlarmDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public AlarmDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public AlarmDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public AlarmDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public AlarmDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public AlarmDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public AlarmDeleteEvent event(AlarmDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public AlarmDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(AlarmDeleteEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlarmDeleteEvent alarmDeleteEvent = (AlarmDeleteEvent) o; + return Objects.equals(this.id, alarmDeleteEvent.id) && + Objects.equals(this.href, alarmDeleteEvent.href) && + Objects.equals(this.eventId, alarmDeleteEvent.eventId) && + Objects.equals(this.eventTime, alarmDeleteEvent.eventTime) && + Objects.equals(this.eventType, alarmDeleteEvent.eventType) && + Objects.equals(this.correlationId, alarmDeleteEvent.correlationId) && + Objects.equals(this.domain, alarmDeleteEvent.domain) && + Objects.equals(this.title, alarmDeleteEvent.title) && + Objects.equals(this.description, alarmDeleteEvent.description) && + Objects.equals(this.priority, alarmDeleteEvent.priority) && + Objects.equals(this.timeOcurred, alarmDeleteEvent.timeOcurred) && + Objects.equals(this.event, alarmDeleteEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlarmDeleteEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AlarmDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmDeleteEventPayload.java new file mode 100644 index 0000000..f9ce09e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmDeleteEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class AlarmDeleteEventPayload { + @JsonProperty("alarm") + private Alarm alarm = null; + + public AlarmDeleteEventPayload alarm(Alarm alarm) { + this.alarm = alarm; + return this; + } + + /** + * Get alarm + * @return alarm + **/ + @Schema(description = "") + + @Valid + public Alarm getAlarm() { + return alarm; + } + + public void setAlarm(Alarm alarm) { + this.alarm = alarm; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlarmDeleteEventPayload alarmDeleteEventPayload = (AlarmDeleteEventPayload) o; + return Objects.equals(this.alarm, alarmDeleteEventPayload.alarm); + } + + @Override + public int hashCode() { + return Objects.hash(alarm); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlarmDeleteEventPayload {\n"); + + sb.append(" alarm: ").append(toIndentedString(alarm)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AlarmRef.java b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmRef.java new file mode 100644 index 0000000..e62ef12 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmRef.java @@ -0,0 +1,127 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; + +/** + * AlarmRef + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Entity(name = "AMAlarmRef") +@Table(name = "AMAlarmRef") +public class AlarmRef extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + + + @JsonProperty("@referredType") + private String _atReferredType = null; + + + /** + * @return the id + */ + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + + + public AlarmRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlarmRef alarmRef = (AlarmRef) o; + return Objects.equals(this.id, alarmRef.id) && Objects.equals(this.href, alarmRef.href) + && Objects.equals(this.name, alarmRef.name) && Objects.equals(this.baseType, alarmRef.baseType) + && Objects.equals(this.schemaLocation, alarmRef.schemaLocation) + && Objects.equals(this.type, alarmRef.type) + && Objects.equals(this._atReferredType, alarmRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlarmRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AlarmRefOrValue.java b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmRefOrValue.java new file mode 100644 index 0000000..f092019 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmRefOrValue.java @@ -0,0 +1,1054 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * An alarm defined by reference or value. The polymorphic + * attributes @type, @schemaLocation & @referredType are related to the + * alarm entity and not the RelatedAlarmRefOrValue class itself + */ +@Schema(description = "An alarm defined by reference or value. The polymorphic attributes @type, @schemaLocation & @referredType are related to the alarm entity and not the RelatedAlarmRefOrValue class itself") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Entity(name = "AMAlarmRefOrVal") +@Table(name = "AMAlarmRefOrVal") +public class AlarmRefOrValue extends BaseRootNamedEntity { + + @JsonProperty("id") + private Integer id = null; + + @JsonProperty("ackState") + private String ackState = null; + + @JsonProperty("ackSystemId") + private String ackSystemId = null; + + @JsonProperty("ackUserId") + private String ackUserId = null; + + private OffsetDateTime alarmChangedTime = null; + + private OffsetDateTime alarmClearedTime = null; + + @JsonProperty("alarmDetails") + private String alarmDetails = null; + + @JsonProperty("alarmEscalation") + private Boolean alarmEscalation = null; + + private OffsetDateTime alarmRaisedTime = null; + + private OffsetDateTime alarmReportingTime = null; + + @JsonProperty("alarmType") + private String alarmType = null; + + @JsonProperty("alarmedObjectType") + private String alarmedObjectType = null; + + @JsonProperty("clearSystemId") + private String clearSystemId = null; + + @JsonProperty("clearUserId") + private String clearUserId = null; + + @JsonProperty("externalAlarmId") + private String externalAlarmId = null; + + @JsonProperty("isRootCause") + private Boolean isRootCause = null; + + @JsonProperty("perceivedSeverity") + private String perceivedSeverity = null; + + @JsonProperty("plannedOutageIndicator") + private String plannedOutageIndicator = null; + + @JsonProperty("probableCause") + private String probableCause = null; + + @JsonProperty("proposedRepairedActions") + private String proposedRepairedActions = null; + + @JsonProperty("reportingSystemId") + private String reportingSystemId = null; + + @JsonProperty("serviceAffecting") + private Boolean serviceAffecting = null; + + @JsonProperty("sourceSystemId") + private String sourceSystemId = null; + + @JsonProperty("specificProblem") + private String specificProblem = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("affectedService") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set affectedService = new HashSet<>(); + + @JsonProperty("alarmedObject") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private AlarmedObject alarmedObject = null; + + @JsonProperty("comment") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set comment = new HashSet<>(); + + @JsonProperty("correlatedAlarm") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set correlatedAlarm = new HashSet<>(); + + @JsonProperty("crossedThresholdInformation") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private CrossedThresholdInformation crossedThresholdInformation = null; + + @JsonProperty("parentAlarm") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set parentAlarm = new HashSet<>(); + + @JsonProperty("place") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set place = new HashSet<>(); + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public AlarmRefOrValue id(Integer id) { + this.id = id; + return this; + } + + /** + * Identifier of the alarm, determined by the alarm owning system + * + * @return id + **/ + @Schema(description = "Identifier of the alarm, determined by the alarm owning system") + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public AlarmRefOrValue href(String href) { + this.href = href; + return this; + } + + /** + * A reference to the alarm. + * + * @return href + **/ + @Schema(description = "A reference to the alarm.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public AlarmRefOrValue ackState(String ackState) { + this.ackState = ackState; + return this; + } + + /** + * Provides the Acknowledgement State of the alarm + * + * @return ackState + **/ + @Schema(description = "Provides the Acknowledgement State of the alarm") + + public String getAckState() { + return ackState; + } + + public void setAckState(String ackState) { + this.ackState = ackState; + } + + public AlarmRefOrValue ackSystemId(String ackSystemId) { + this.ackSystemId = ackSystemId; + return this; + } + + /** + * Provides the name of the system that last changed the ackState of an alarm, + * i.e. acknowledged or unacknowledged the alarm. + * + * @return ackSystemId + **/ + @Schema(description = "Provides the name of the system that last changed the ackState of an alarm, i.e. acknowledged or unacknowledged the alarm.") + + public String getAckSystemId() { + return ackSystemId; + } + + public void setAckSystemId(String ackSystemId) { + this.ackSystemId = ackSystemId; + } + + public AlarmRefOrValue ackUserId(String ackUserId) { + this.ackUserId = ackUserId; + return this; + } + + /** + * Provides the id of the user who has last changed the ack state of the alarm, + * i.e. acknowledged or unacknowledged the alarm. + * + * @return ackUserId + **/ + @Schema(description = "Provides the id of the user who has last changed the ack state of the alarm, i.e. acknowledged or unacknowledged the alarm.") + + public String getAckUserId() { + return ackUserId; + } + + public void setAckUserId(String ackUserId) { + this.ackUserId = ackUserId; + } + + public AlarmRefOrValue alarmChangedTime(OffsetDateTime alarmChangedTime) { + this.alarmChangedTime = alarmChangedTime; + return this; + } + + /** + * Indicates the last date and time when the alarm is changed on the + * alarm-owning system. Any change to the alarm whether coming from the alarmed + * resource, or triggered by a change from the client is changing this time. + * + * @return alarmChangedTime + **/ + @Schema(description = "Indicates the last date and time when the alarm is changed on the alarm-owning system. Any change to the alarm whether coming from the alarmed resource, or triggered by a change from the client is changing this time.") + + @Valid + public OffsetDateTime getAlarmChangedTime() { + return alarmChangedTime; + } + + public void setAlarmChangedTime(OffsetDateTime alarmChangedTime) { + this.alarmChangedTime = alarmChangedTime; + } + + @JsonProperty("alarmChangedTime") + public String getAlarmChangedTimeStr() { + if (this.alarmChangedTime != null) { + return this.alarmChangedTime.toString(); + } else { + return null; + } + } + + public AlarmRefOrValue alarmClearedTime(OffsetDateTime alarmClearedTime) { + this.alarmClearedTime = alarmClearedTime; + return this; + } + + /** + * Indicates the time (as a date + time) at which the alarm is cleared at the + * source. + * + * @return alarmClearedTime + **/ + @Schema(description = "Indicates the time (as a date + time) at which the alarm is cleared at the source. ") + + @Valid + public OffsetDateTime getAlarmClearedTime() { + return alarmClearedTime; + } + + public void setAlarmClearedTime(OffsetDateTime alarmClearedTime) { + this.alarmClearedTime = alarmClearedTime; + } + + @JsonProperty("alarmClearedTime") + public String getAlarmClearedTimeStr() { + if (this.alarmClearedTime != null) { + return this.alarmClearedTime.toString(); + } else { + return null; + } + } + + public AlarmRefOrValue alarmDetails(String alarmDetails) { + this.alarmDetails = alarmDetails; + return this; + } + + /** + * Contains further information on the alarm. + * + * @return alarmDetails + **/ + @Schema(description = "Contains further information on the alarm.") + + public String getAlarmDetails() { + return alarmDetails; + } + + public void setAlarmDetails(String alarmDetails) { + this.alarmDetails = alarmDetails; + } + + public AlarmRefOrValue alarmEscalation(Boolean alarmEscalation) { + this.alarmEscalation = alarmEscalation; + return this; + } + + /** + * Indicates if this alarm has been escalated or not. + * + * @return alarmEscalation + **/ + @Schema(description = "Indicates if this alarm has been escalated or not. ") + + public Boolean isAlarmEscalation() { + return alarmEscalation; + } + + public void setAlarmEscalation(Boolean alarmEscalation) { + this.alarmEscalation = alarmEscalation; + } + + public AlarmRefOrValue alarmRaisedTime(OffsetDateTime alarmRaisedTime) { + this.alarmRaisedTime = alarmRaisedTime; + return this; + } + + /** + * Indicates the time (as a date + time) at which the alarm occurred at its + * source. + * + * @return alarmRaisedTime + **/ + @Schema(description = "Indicates the time (as a date + time) at which the alarm occurred at its source.") + + @Valid + public OffsetDateTime getAlarmRaisedTime() { + return alarmRaisedTime; + } + + public void setAlarmRaisedTime(OffsetDateTime alarmRaisedTime) { + this.alarmRaisedTime = alarmRaisedTime; + } + + @JsonProperty("alarmRaisedTime") + public String getAlarmRaisedTimeStr() { + if (this.alarmRaisedTime != null) { + return this.alarmRaisedTime.toString(); + } else { + return null; + } + } + + public AlarmRefOrValue alarmReportingTime(OffsetDateTime alarmReportingTime) { + this.alarmReportingTime = alarmReportingTime; + return this; + } + + /** + * Indicates the time (as a date + time) at which the alarm was reported by the + * owning OSS. It might be different from the alarmRaisedTime. For instance, if + * the alarm list is maintained by an EMS, the alarmRaisedtime would be the time + * the alarm was detected by the NE, while the alarmReportingTime would be the + * time this alarm was stored in the alarm list of the EMS. + * + * @return alarmReportingTime + **/ + @Schema(description = "Indicates the time (as a date + time) at which the alarm was reported by the owning OSS. It might be different from the alarmRaisedTime. For instance, if the alarm list is maintained by an EMS, the alarmRaisedtime would be the time the alarm was detected by the NE, while the alarmReportingTime would be the time this alarm was stored in the alarm list of the EMS.") + + @Valid + public OffsetDateTime getAlarmReportingTime() { + return alarmReportingTime; + } + + public void setAlarmReportingTime(OffsetDateTime alarmReportingTime) { + this.alarmReportingTime = alarmReportingTime; + } + + @JsonProperty("alarmReportingTime") + public String getAlarmReportingTimeStr() { + if (this.alarmReportingTime != null) { + return this.alarmReportingTime.toString(); + } else { + return null; + } + } + + public AlarmRefOrValue alarmType(String alarmType) { + this.alarmType = alarmType; + return this; + } + + /** + * Categorize the alarm. Should be one of the values defined in X.733 8.1.1 or + * 3GPP TS 32.111-2 Annex A: Communications Alarm Processing Error Alarm + * Environmental Alarm Quality of Service Alarm Equipment Alarm Integrity + * Violation Operational Violation Physical Violation Security Service or + * Mechanism Violation Time Domain Violation + * + * @return alarmType + **/ + @Schema(description = "Categorize the alarm. Should be one of the values defined in X.733 8.1.1 or 3GPP TS 32.111-2 Annex A: Communications Alarm Processing Error Alarm Environmental Alarm Quality of Service Alarm Equipment Alarm Integrity Violation Operational Violation Physical Violation Security Service or Mechanism Violation Time Domain Violation") + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public AlarmRefOrValue alarmedObjectType(String alarmedObjectType) { + this.alarmedObjectType = alarmedObjectType; + return this; + } + + /** + * The type (class) of the managed object associated with the event. + * + * @return alarmedObjectType + **/ + @Schema(description = "The type (class) of the managed object associated with the event.") + + public String getAlarmedObjectType() { + return alarmedObjectType; + } + + public void setAlarmedObjectType(String alarmedObjectType) { + this.alarmedObjectType = alarmedObjectType; + } + + public AlarmRefOrValue clearSystemId(String clearSystemId) { + this.clearSystemId = clearSystemId; + return this; + } + + /** + * Provides the id of the system where the user who invoked the alarmCleared + * operation is located. + * + * @return clearSystemId + **/ + @Schema(description = "Provides the id of the system where the user who invoked the alarmCleared operation is located. ") + + public String getClearSystemId() { + return clearSystemId; + } + + public void setClearSystemId(String clearSystemId) { + this.clearSystemId = clearSystemId; + } + + public AlarmRefOrValue clearUserId(String clearUserId) { + this.clearUserId = clearUserId; + return this; + } + + /** + * Provides the id of the user who invoked the alarmCleared operation + * + * @return clearUserId + **/ + @Schema(description = "Provides the id of the user who invoked the alarmCleared operation") + + public String getClearUserId() { + return clearUserId; + } + + public void setClearUserId(String clearUserId) { + this.clearUserId = clearUserId; + } + + public AlarmRefOrValue externalAlarmId(String externalAlarmId) { + this.externalAlarmId = externalAlarmId; + return this; + } + + /** + * An identifier of the alarm in the source system. + * + * @return externalAlarmId + **/ + @Schema(description = "An identifier of the alarm in the source system.") + + public String getExternalAlarmId() { + return externalAlarmId; + } + + public void setExternalAlarmId(String externalAlarmId) { + this.externalAlarmId = externalAlarmId; + } + + public AlarmRefOrValue isRootCause(Boolean isRootCause) { + this.isRootCause = isRootCause; + return this; + } + + /** + * Indicates whether the alarm is a root cause alarm.. + * + * @return isRootCause + **/ + @Schema(description = "Indicates whether the alarm is a root cause alarm.. ") + + public Boolean isIsRootCause() { + return isRootCause; + } + + public void setIsRootCause(Boolean isRootCause) { + this.isRootCause = isRootCause; + } + + public AlarmRefOrValue perceivedSeverity(String perceivedSeverity) { + this.perceivedSeverity = perceivedSeverity; + return this; + } + + /** + * Lists the possible severities that can be allocated to an Alarm. The values + * are consistent with ITU-T Recommendation X.733. Once an alarm has been + * cleared, its perceived severity is set to 'cleared' and can no longer be set. + * + * @return perceivedSeverity + **/ + @Schema(description = "Lists the possible severities that can be allocated to an Alarm. The values are consistent with ITU-T Recommendation X.733. Once an alarm has been cleared, its perceived severity is set to 'cleared' and can no longer be set.") + + public String getPerceivedSeverity() { + return perceivedSeverity; + } + + public void setPerceivedSeverity(String perceivedSeverity) { + this.perceivedSeverity = perceivedSeverity; + } + + public AlarmRefOrValue plannedOutageIndicator(String plannedOutageIndicator) { + this.plannedOutageIndicator = plannedOutageIndicator; + return this; + } + + /** + * Indicates that the Managed Object (related to this alarm) is in planned + * outage (in planned maintenance, or out-of-service). + * + * @return plannedOutageIndicator + **/ + @Schema(description = "Indicates that the Managed Object (related to this alarm) is in planned outage (in planned maintenance, or out-of-service). ") + + public String getPlannedOutageIndicator() { + return plannedOutageIndicator; + } + + public void setPlannedOutageIndicator(String plannedOutageIndicator) { + this.plannedOutageIndicator = plannedOutageIndicator; + } + + public AlarmRefOrValue probableCause(String probableCause) { + this.probableCause = probableCause; + return this; + } + + /** + * Provides the probable cause of the alarm. The values are consistent with + * ITU-T Recommendation X.733 or 3GPP TS 32.111-2 Annex B. + * + * @return probableCause + **/ + @Schema(description = "Provides the probable cause of the alarm. The values are consistent with ITU-T Recommendation X.733 or 3GPP TS 32.111-2 Annex B.") + + public String getProbableCause() { + return probableCause; + } + + public void setProbableCause(String probableCause) { + this.probableCause = probableCause; + } + + public AlarmRefOrValue proposedRepairedActions(String proposedRepairedActions) { + this.proposedRepairedActions = proposedRepairedActions; + return this; + } + + /** + * Indicates proposed repair actions, if known to the system emitting the alarm. + * + * @return proposedRepairedActions + **/ + @Schema(description = "Indicates proposed repair actions, if known to the system emitting the alarm.") + + public String getProposedRepairedActions() { + return proposedRepairedActions; + } + + public void setProposedRepairedActions(String proposedRepairedActions) { + this.proposedRepairedActions = proposedRepairedActions; + } + + public AlarmRefOrValue reportingSystemId(String reportingSystemId) { + this.reportingSystemId = reportingSystemId; + return this; + } + + /** + * Reporting system identity. + * + * @return reportingSystemId + **/ + @Schema(description = "Reporting system identity.") + + public String getReportingSystemId() { + return reportingSystemId; + } + + public void setReportingSystemId(String reportingSystemId) { + this.reportingSystemId = reportingSystemId; + } + + public AlarmRefOrValue serviceAffecting(Boolean serviceAffecting) { + this.serviceAffecting = serviceAffecting; + return this; + } + + /** + * Indicates whether the alarm affects service or not. + * + * @return serviceAffecting + **/ + @Schema(description = "Indicates whether the alarm affects service or not.") + + public Boolean isServiceAffecting() { + return serviceAffecting; + } + + public void setServiceAffecting(Boolean serviceAffecting) { + this.serviceAffecting = serviceAffecting; + } + + public AlarmRefOrValue sourceSystemId(String sourceSystemId) { + this.sourceSystemId = sourceSystemId; + return this; + } + + /** + * Source system identity. + * + * @return sourceSystemId + **/ + @Schema(description = "Source system identity.") + + public String getSourceSystemId() { + return sourceSystemId; + } + + public void setSourceSystemId(String sourceSystemId) { + this.sourceSystemId = sourceSystemId; + } + + public AlarmRefOrValue specificProblem(String specificProblem) { + this.specificProblem = specificProblem; + return this; + } + + /** + * Provides more specific information about the alarm. + * + * @return specificProblem + **/ + @Schema(description = "Provides more specific information about the alarm.") + + public String getSpecificProblem() { + return specificProblem; + } + + public void setSpecificProblem(String specificProblem) { + this.specificProblem = specificProblem; + } + + public AlarmRefOrValue state(String state) { + this.state = state; + return this; + } + + /** + * Defines the alarm state during its life cycle + * + * @return state + **/ + @Schema(description = "Defines the alarm state during its life cycle") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public AlarmRefOrValue affectedService(Set affectedService) { + this.affectedService = affectedService; + return this; + } + + public AlarmRefOrValue addAffectedServiceItem(AffectedService affectedServiceItem) { + if (this.affectedService == null) { + this.affectedService = new HashSet<>(); + } + this.affectedService.add(affectedServiceItem); + return this; + } + + /** + * Get affectedService + * + * @return affectedService + **/ + @Schema(description = "") + @Valid + public Set getAffectedService() { + return affectedService; + } + + public void setAffectedService(Set affectedService) { + this.affectedService = affectedService; + } + + public AlarmRefOrValue alarmedObject(AlarmedObject alarmedObject) { + this.alarmedObject = alarmedObject; + return this; + } + + /** + * Get alarmedObject + * + * @return alarmedObject + **/ + @Schema(description = "") + + @Valid + public AlarmedObject getAlarmedObject() { + return alarmedObject; + } + + public void setAlarmedObject(AlarmedObject alarmedObject) { + this.alarmedObject = alarmedObject; + } + + public AlarmRefOrValue comment(Set comment) { + this.comment = comment; + return this; + } + + public AlarmRefOrValue addCommentItem(Comment commentItem) { + if (this.comment == null) { + this.comment = new HashSet<>(); + } + this.comment.add(commentItem); + return this; + } + + /** + * Get comment + * + * @return comment + **/ + @Schema(description = "") + @Valid + public Set getComment() { + return comment; + } + + public void setComment(Set comment) { + this.comment = comment; + } + + public AlarmRefOrValue correlatedAlarm(Set correlatedAlarm) { + this.correlatedAlarm = correlatedAlarm; + return this; + } + + public AlarmRefOrValue addCorrelatedAlarmItem(AlarmRef correlatedAlarmItem) { + if (this.correlatedAlarm == null) { + this.correlatedAlarm = new HashSet<>(); + } + this.correlatedAlarm.add(correlatedAlarmItem); + return this; + } + + /** + * Get correlatedAlarm + * + * @return correlatedAlarm + **/ + @Schema(description = "") + @Valid + public Set getCorrelatedAlarm() { + return correlatedAlarm; + } + + public void setCorrelatedAlarm(Set correlatedAlarm) { + this.correlatedAlarm = correlatedAlarm; + } + + public AlarmRefOrValue crossedThresholdInformation(CrossedThresholdInformation crossedThresholdInformation) { + this.crossedThresholdInformation = crossedThresholdInformation; + return this; + } + + /** + * Get crossedThresholdInformation + * + * @return crossedThresholdInformation + **/ + @Schema(description = "") + + @Valid + public CrossedThresholdInformation getCrossedThresholdInformation() { + return crossedThresholdInformation; + } + + public void setCrossedThresholdInformation(CrossedThresholdInformation crossedThresholdInformation) { + this.crossedThresholdInformation = crossedThresholdInformation; + } + + public AlarmRefOrValue parentAlarm(Set parentAlarm) { + this.parentAlarm = parentAlarm; + return this; + } + + public AlarmRefOrValue addParentAlarmItem(AlarmRef parentAlarmItem) { + if (this.parentAlarm == null) { + this.parentAlarm = new HashSet<>(); + } + this.parentAlarm.add(parentAlarmItem); + return this; + } + + /** + * Get parentAlarm + * + * @return parentAlarm + **/ + @Schema(description = "") + @Valid + public Set getParentAlarm() { + return parentAlarm; + } + + public void setParentAlarm(Set parentAlarm) { + this.parentAlarm = parentAlarm; + } + + public AlarmRefOrValue place(Set place) { + this.place = place; + return this; + } + + public AlarmRefOrValue addPlaceItem(RelatedPlaceRefOrValue placeItem) { + if (this.place == null) { + this.place = new HashSet<>(); + } + this.place.add(placeItem); + return this; + } + + /** + * Get place + * + * @return place + **/ + @Schema(description = "") + @Valid + public Set getPlace() { + return place; + } + + public void setPlace(Set place) { + this.place = place; + } + + public AlarmRefOrValue _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlarmRefOrValue alarmRefOrValue = (AlarmRefOrValue) o; + return Objects.equals(this.id, alarmRefOrValue.id) && Objects.equals(this.href, alarmRefOrValue.href) + && Objects.equals(this.ackState, alarmRefOrValue.ackState) + && Objects.equals(this.ackSystemId, alarmRefOrValue.ackSystemId) + && Objects.equals(this.ackUserId, alarmRefOrValue.ackUserId) + && Objects.equals(this.alarmChangedTime, alarmRefOrValue.alarmChangedTime) + && Objects.equals(this.alarmClearedTime, alarmRefOrValue.alarmClearedTime) + && Objects.equals(this.alarmDetails, alarmRefOrValue.alarmDetails) + && Objects.equals(this.alarmEscalation, alarmRefOrValue.alarmEscalation) + && Objects.equals(this.alarmRaisedTime, alarmRefOrValue.alarmRaisedTime) + && Objects.equals(this.alarmReportingTime, alarmRefOrValue.alarmReportingTime) + && Objects.equals(this.alarmType, alarmRefOrValue.alarmType) + && Objects.equals(this.alarmedObjectType, alarmRefOrValue.alarmedObjectType) + && Objects.equals(this.clearSystemId, alarmRefOrValue.clearSystemId) + && Objects.equals(this.clearUserId, alarmRefOrValue.clearUserId) + && Objects.equals(this.externalAlarmId, alarmRefOrValue.externalAlarmId) + && Objects.equals(this.isRootCause, alarmRefOrValue.isRootCause) + && Objects.equals(this.name, alarmRefOrValue.name) + && Objects.equals(this.perceivedSeverity, alarmRefOrValue.perceivedSeverity) + && Objects.equals(this.plannedOutageIndicator, alarmRefOrValue.plannedOutageIndicator) + && Objects.equals(this.probableCause, alarmRefOrValue.probableCause) + && Objects.equals(this.proposedRepairedActions, alarmRefOrValue.proposedRepairedActions) + && Objects.equals(this.reportingSystemId, alarmRefOrValue.reportingSystemId) + && Objects.equals(this.serviceAffecting, alarmRefOrValue.serviceAffecting) + && Objects.equals(this.sourceSystemId, alarmRefOrValue.sourceSystemId) + && Objects.equals(this.specificProblem, alarmRefOrValue.specificProblem) + && Objects.equals(this.state, alarmRefOrValue.state) + && Objects.equals(this.affectedService, alarmRefOrValue.affectedService) + && Objects.equals(this.alarmedObject, alarmRefOrValue.alarmedObject) + && Objects.equals(this.comment, alarmRefOrValue.comment) + && Objects.equals(this.correlatedAlarm, alarmRefOrValue.correlatedAlarm) + && Objects.equals(this.crossedThresholdInformation, alarmRefOrValue.crossedThresholdInformation) + && Objects.equals(this.parentAlarm, alarmRefOrValue.parentAlarm) + && Objects.equals(this.place, alarmRefOrValue.place) + && Objects.equals(this.baseType, alarmRefOrValue.baseType) + && Objects.equals(this.schemaLocation, alarmRefOrValue.schemaLocation) + && Objects.equals(this.type, alarmRefOrValue.type) + && Objects.equals(this._atReferredType, alarmRefOrValue._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, ackState, ackSystemId, ackUserId, alarmChangedTime, alarmClearedTime, + alarmDetails, alarmEscalation, alarmRaisedTime, alarmReportingTime, alarmType, alarmedObjectType, + clearSystemId, clearUserId, externalAlarmId, isRootCause, name, perceivedSeverity, + plannedOutageIndicator, probableCause, proposedRepairedActions, reportingSystemId, serviceAffecting, + sourceSystemId, specificProblem, state, affectedService, alarmedObject, comment, correlatedAlarm, + crossedThresholdInformation, parentAlarm, place, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlarmRefOrValue {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" ackState: ").append(toIndentedString(ackState)).append("\n"); + sb.append(" ackSystemId: ").append(toIndentedString(ackSystemId)).append("\n"); + sb.append(" ackUserId: ").append(toIndentedString(ackUserId)).append("\n"); + sb.append(" alarmChangedTime: ").append(toIndentedString(alarmChangedTime)).append("\n"); + sb.append(" alarmClearedTime: ").append(toIndentedString(alarmClearedTime)).append("\n"); + sb.append(" alarmDetails: ").append(toIndentedString(alarmDetails)).append("\n"); + sb.append(" alarmEscalation: ").append(toIndentedString(alarmEscalation)).append("\n"); + sb.append(" alarmRaisedTime: ").append(toIndentedString(alarmRaisedTime)).append("\n"); + sb.append(" alarmReportingTime: ").append(toIndentedString(alarmReportingTime)).append("\n"); + sb.append(" alarmType: ").append(toIndentedString(alarmType)).append("\n"); + sb.append(" alarmedObjectType: ").append(toIndentedString(alarmedObjectType)).append("\n"); + sb.append(" clearSystemId: ").append(toIndentedString(clearSystemId)).append("\n"); + sb.append(" clearUserId: ").append(toIndentedString(clearUserId)).append("\n"); + sb.append(" externalAlarmId: ").append(toIndentedString(externalAlarmId)).append("\n"); + sb.append(" isRootCause: ").append(toIndentedString(isRootCause)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" perceivedSeverity: ").append(toIndentedString(perceivedSeverity)).append("\n"); + sb.append(" plannedOutageIndicator: ").append(toIndentedString(plannedOutageIndicator)).append("\n"); + sb.append(" probableCause: ").append(toIndentedString(probableCause)).append("\n"); + sb.append(" proposedRepairedActions: ").append(toIndentedString(proposedRepairedActions)).append("\n"); + sb.append(" reportingSystemId: ").append(toIndentedString(reportingSystemId)).append("\n"); + sb.append(" serviceAffecting: ").append(toIndentedString(serviceAffecting)).append("\n"); + sb.append(" sourceSystemId: ").append(toIndentedString(sourceSystemId)).append("\n"); + sb.append(" specificProblem: ").append(toIndentedString(specificProblem)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" affectedService: ").append(toIndentedString(affectedService)).append("\n"); + sb.append(" alarmedObject: ").append(toIndentedString(alarmedObject)).append("\n"); + sb.append(" comment: ").append(toIndentedString(comment)).append("\n"); + sb.append(" correlatedAlarm: ").append(toIndentedString(correlatedAlarm)).append("\n"); + sb.append(" crossedThresholdInformation: ").append(toIndentedString(crossedThresholdInformation)) + .append("\n"); + sb.append(" parentAlarm: ").append(toIndentedString(parentAlarm)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AlarmStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmStateChangeEvent.java new file mode 100644 index 0000000..98667f5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmStateChangeEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class AlarmStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private AlarmStateChangeEventPayload event = null; + + public AlarmStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AlarmStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public AlarmStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public AlarmStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public AlarmStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public AlarmStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public AlarmStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public AlarmStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public AlarmStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public AlarmStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public AlarmStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public AlarmStateChangeEvent event(AlarmStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public AlarmStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(AlarmStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlarmStateChangeEvent alarmStateChangeEvent = (AlarmStateChangeEvent) o; + return Objects.equals(this.id, alarmStateChangeEvent.id) && + Objects.equals(this.href, alarmStateChangeEvent.href) && + Objects.equals(this.eventId, alarmStateChangeEvent.eventId) && + Objects.equals(this.eventTime, alarmStateChangeEvent.eventTime) && + Objects.equals(this.eventType, alarmStateChangeEvent.eventType) && + Objects.equals(this.correlationId, alarmStateChangeEvent.correlationId) && + Objects.equals(this.domain, alarmStateChangeEvent.domain) && + Objects.equals(this.title, alarmStateChangeEvent.title) && + Objects.equals(this.description, alarmStateChangeEvent.description) && + Objects.equals(this.priority, alarmStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, alarmStateChangeEvent.timeOcurred) && + Objects.equals(this.event, alarmStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlarmStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AlarmStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmStateChangeEventPayload.java new file mode 100644 index 0000000..8aa83a1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmStateChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class AlarmStateChangeEventPayload { + @JsonProperty("alarm") + private Alarm alarm = null; + + public AlarmStateChangeEventPayload alarm(Alarm alarm) { + this.alarm = alarm; + return this; + } + + /** + * Get alarm + * @return alarm + **/ + @Schema(description = "") + + @Valid + public Alarm getAlarm() { + return alarm; + } + + public void setAlarm(Alarm alarm) { + this.alarm = alarm; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlarmStateChangeEventPayload alarmStateChangeEventPayload = (AlarmStateChangeEventPayload) o; + return Objects.equals(this.alarm, alarmStateChangeEventPayload.alarm); + } + + @Override + public int hashCode() { + return Objects.hash(alarm); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlarmStateChangeEventPayload {\n"); + + sb.append(" alarm: ").append(toIndentedString(alarm)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AlarmStateType.java b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmStateType.java new file mode 100644 index 0000000..3fee537 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmStateType.java @@ -0,0 +1,28 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +public enum AlarmStateType { + + raised, + updated, + cleared; + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AlarmType.java b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmType.java new file mode 100644 index 0000000..a8625e0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmType.java @@ -0,0 +1,36 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +public enum AlarmType { + + communicationsAlarm, + processingErrorAlarm, + environmentalAlarm, + qualityOfServiceAlarm, + equipmentAlarm, + integrityViolation, + operationalViolation, + physicalViolation, + securityService, + mechanismViolation, + timeDomainViolation; + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AlarmUpdate.java b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmUpdate.java new file mode 100644 index 0000000..af3fde9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmUpdate.java @@ -0,0 +1,997 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * This resource represents an alarm supporting the information model defined in + * ITU-T X.733. Skipped properties: id,href,alarmRaisedTime,sourceSystemId + */ +@Schema(description = "This resource represents an alarm supporting the information model defined in ITU-T X.733. Skipped properties: id,href,alarmRaisedTime,sourceSystemId") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class AlarmUpdate { + @JsonProperty("ackState") + protected String ackState = null; + + @JsonProperty("ackSystemId") + protected String ackSystemId = null; + + @JsonProperty("ackUserId") + protected String ackUserId = null; + + protected OffsetDateTime alarmChangedTime = null; + + protected OffsetDateTime alarmClearedTime = null; + + @JsonProperty("alarmDetails") + protected String alarmDetails = null; + + @JsonProperty("alarmEscalation") + protected Boolean alarmEscalation = null; + + protected OffsetDateTime alarmReportingTime = null; + + @JsonProperty("alarmType") + protected String alarmType = null; + + @JsonProperty("alarmedObjectType") + protected String alarmedObjectType = null; + + @JsonProperty("clearSystemId") + protected String clearSystemId = null; + + @JsonProperty("clearUserId") + protected String clearUserId = null; + + @JsonProperty("externalAlarmId") + protected String externalAlarmId = null; + + @JsonProperty("isRootCause") + protected Boolean isRootCause = null; + + @JsonProperty("perceivedSeverity") + protected String perceivedSeverity = null; + + @JsonProperty("plannedOutageIndicator") + protected String plannedOutageIndicator = null; + + @JsonProperty("probableCause") + protected String probableCause = null; + + @JsonProperty("proposedRepairedActions") + protected String proposedRepairedActions = null; + + @JsonProperty("reportingSystemId") + protected String reportingSystemId = null; + + @JsonProperty("serviceAffecting") + protected Boolean serviceAffecting = null; + + @JsonProperty("specificProblem") + protected String specificProblem = null; + + @JsonProperty("state") + protected String state = null; + + @JsonProperty("affectedService") + @Valid + protected List affectedService = null; + + @JsonProperty("alarmedObject") + protected AlarmedObject alarmedObject = null; + + @JsonProperty("comment") + @Valid + protected List comment = null; + + @JsonProperty("correlatedAlarm") + @Valid + protected List correlatedAlarm = null; + + @JsonProperty("crossedThresholdInformation") + protected CrossedThresholdInformation crossedThresholdInformation = null; + + @JsonProperty("parentAlarm") + @Valid + protected List parentAlarm = null; + + @JsonProperty("place") + @Valid + protected List place = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@type") + protected String type = null; + + public AlarmUpdate ackState(String ackState) { + this.ackState = ackState; + return this; + } + + /** + * Provides the Acknowledgement State of the alarm + * + * @return ackState + **/ + @Schema(description = "Provides the Acknowledgement State of the alarm") + + public String getAckState() { + return ackState; + } + + public void setAckState(String ackState) { + this.ackState = ackState; + } + + public AlarmUpdate ackSystemId(String ackSystemId) { + this.ackSystemId = ackSystemId; + return this; + } + + /** + * Provides the name of the system that last changed the ackState of an alarm, + * i.e. acknowledged or unacknowledged the alarm. + * + * @return ackSystemId + **/ + @Schema(description = "Provides the name of the system that last changed the ackState of an alarm, i.e. acknowledged or unacknowledged the alarm.") + + public String getAckSystemId() { + return ackSystemId; + } + + public void setAckSystemId(String ackSystemId) { + this.ackSystemId = ackSystemId; + } + + public AlarmUpdate ackUserId(String ackUserId) { + this.ackUserId = ackUserId; + return this; + } + + /** + * Provides the id of the user who has last changed the ack state of the alarm, + * i.e. acknowledged or unacknowledged the alarm. + * + * @return ackUserId + **/ + @Schema(description = "Provides the id of the user who has last changed the ack state of the alarm, i.e. acknowledged or unacknowledged the alarm.") + + public String getAckUserId() { + return ackUserId; + } + + public void setAckUserId(String ackUserId) { + this.ackUserId = ackUserId; + } + + public AlarmUpdate alarmChangedTime(OffsetDateTime alarmChangedTime) { + this.alarmChangedTime = alarmChangedTime; + return this; + } + + /** + * Indicates the last date and time when the alarm is changed on the + * alarm-owning system. Any change to the alarm whether coming from the alarmed + * resource, or triggered by a change from the client is changing this time. + * + * @return alarmChangedTime + **/ + @Schema(description = "Indicates the last date and time when the alarm is changed on the alarm-owning system. Any change to the alarm whether coming from the alarmed resource, or triggered by a change from the client is changing this time.") + + @Valid + public OffsetDateTime getAlarmChangedTime() { + return alarmChangedTime; + } + + @JsonProperty("alarmChangedTime") + public String getAlarmChangedTimeStr() { + if (this.alarmChangedTime != null) { + return this.alarmChangedTime.toString(); + } else { + return null; + } + } + + public void setAlarmChangedTime(String alarmChangedTime) { + if (alarmChangedTime != null) { + this.alarmChangedTime = OffsetDateTime.parse(alarmChangedTime); + } + + } + + + public void setAlarmChangedTime(OffsetDateTime alarmChangedTime) { + this.alarmChangedTime = alarmChangedTime; + } + + public AlarmUpdate alarmClearedTime(OffsetDateTime alarmClearedTime) { + this.alarmClearedTime = alarmClearedTime; + return this; + } + + /** + * Indicates the time (as a date + time) at which the alarm is cleared at the + * source. + * + * @return alarmClearedTime + **/ + @Schema(description = "Indicates the time (as a date + time) at which the alarm is cleared at the source. ") + + @Valid + public OffsetDateTime getAlarmClearedTime() { + return alarmClearedTime; + } + + public void setAlarmClearedTime(OffsetDateTime alarmClearedTime) { + this.alarmClearedTime = alarmClearedTime; + } + + @JsonProperty("alarmClearedTime") + public String getAlarmClearedTimeStr() { + if (this.alarmClearedTime != null) { + return this.alarmClearedTime.toString(); + } else { + return null; + } + } + + public void setAlarmClearedTime(String alarmClearedTime) { + if (alarmClearedTime != null) { + this.alarmClearedTime = OffsetDateTime.parse(alarmClearedTime); + } + + } + + public AlarmUpdate alarmDetails(String alarmDetails) { + this.alarmDetails = alarmDetails; + return this; + } + + /** + * Contains further information on the alarm. + * + * @return alarmDetails + **/ + @Schema(description = "Contains further information on the alarm.") + + public String getAlarmDetails() { + return alarmDetails; + } + + public void setAlarmDetails(String alarmDetails) { + this.alarmDetails = alarmDetails; + } + + public AlarmUpdate alarmEscalation(Boolean alarmEscalation) { + this.alarmEscalation = alarmEscalation; + return this; + } + + /** + * Indicates if this alarm has been escalated or not. + * + * @return alarmEscalation + **/ + @Schema(description = "Indicates if this alarm has been escalated or not. ") + + public Boolean isAlarmEscalation() { + return alarmEscalation; + } + + public void setAlarmEscalation(Boolean alarmEscalation) { + this.alarmEscalation = alarmEscalation; + } + + public AlarmUpdate alarmReportingTime(OffsetDateTime alarmReportingTime) { + this.alarmReportingTime = alarmReportingTime; + return this; + } + + /** + * Indicates the time (as a date + time) at which the alarm was reported by the + * owning OSS. It might be different from the alarmRaisedTime. For instance, if + * the alarm list is maintained by an EMS, the alarmRaisedtime would be the time + * the alarm was detected by the NE, while the alarmReportingTime would be the + * time this alarm was stored in the alarm list of the EMS. + * + * @return alarmReportingTime + **/ + @Schema(description = "Indicates the time (as a date + time) at which the alarm was reported by the owning OSS. It might be different from the alarmRaisedTime. For instance, if the alarm list is maintained by an EMS, the alarmRaisedtime would be the time the alarm was detected by the NE, while the alarmReportingTime would be the time this alarm was stored in the alarm list of the EMS.") + + @Valid + public OffsetDateTime getAlarmReportingTime() { + return alarmReportingTime; + } + + public void setAlarmReportingTime(OffsetDateTime alarmReportingTime) { + this.alarmReportingTime = alarmReportingTime; + } + + + @JsonProperty("alarmReportingTime") + public String getAlarmReportingTimeStr() { + if (this.alarmReportingTime != null) { + return this.alarmReportingTime.toString(); + } else { + return null; + } + } + + public void setAlarmReportingTime(String alarmReportingTime) { + if (alarmReportingTime != null) { + this.alarmReportingTime = OffsetDateTime.parse(alarmReportingTime); + } + + } + + public AlarmUpdate alarmType(String alarmType) { + this.alarmType = alarmType; + return this; + } + + /** + * Categorize the alarm. Should be one of the values defined in X.733 8.1.1 or + * 3GPP TS 32.111-2 Annex A: Communications Alarm Processing Error Alarm + * Environmental Alarm Quality of Service Alarm Equipment Alarm Integrity + * Violation Operational Violation Physical Violation Security Service or + * Mechanism Violation Time Domain Violation + * + * @return alarmType + **/ + @Schema(description = "Categorize the alarm. Should be one of the values defined in X.733 8.1.1 or 3GPP TS 32.111-2 Annex A: Communications Alarm Processing Error Alarm Environmental Alarm Quality of Service Alarm Equipment Alarm Integrity Violation Operational Violation Physical Violation Security Service or Mechanism Violation Time Domain Violation") + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public AlarmUpdate alarmedObjectType(String alarmedObjectType) { + this.alarmedObjectType = alarmedObjectType; + return this; + } + + /** + * The type (class) of the managed object associated with the event. + * + * @return alarmedObjectType + **/ + @Schema(description = "The type (class) of the managed object associated with the event.") + + public String getAlarmedObjectType() { + return alarmedObjectType; + } + + public void setAlarmedObjectType(String alarmedObjectType) { + this.alarmedObjectType = alarmedObjectType; + } + + public AlarmUpdate clearSystemId(String clearSystemId) { + this.clearSystemId = clearSystemId; + return this; + } + + /** + * Provides the id of the system where the user who invoked the alarmCleared + * operation is located. + * + * @return clearSystemId + **/ + @Schema(description = "Provides the id of the system where the user who invoked the alarmCleared operation is located. ") + + public String getClearSystemId() { + return clearSystemId; + } + + public void setClearSystemId(String clearSystemId) { + this.clearSystemId = clearSystemId; + } + + public AlarmUpdate clearUserId(String clearUserId) { + this.clearUserId = clearUserId; + return this; + } + + /** + * Provides the id of the user who invoked the alarmCleared operation + * + * @return clearUserId + **/ + @Schema(description = "Provides the id of the user who invoked the alarmCleared operation") + + public String getClearUserId() { + return clearUserId; + } + + public void setClearUserId(String clearUserId) { + this.clearUserId = clearUserId; + } + + public AlarmUpdate externalAlarmId(String externalAlarmId) { + this.externalAlarmId = externalAlarmId; + return this; + } + + /** + * An identifier of the alarm in the source system. + * + * @return externalAlarmId + **/ + @Schema(description = "An identifier of the alarm in the source system.") + + public String getExternalAlarmId() { + return externalAlarmId; + } + + public void setExternalAlarmId(String externalAlarmId) { + this.externalAlarmId = externalAlarmId; + } + + public AlarmUpdate isRootCause(Boolean isRootCause) { + this.isRootCause = isRootCause; + return this; + } + + /** + * Indicates whether the alarm is a root cause alarm.. + * + * @return isRootCause + **/ + @Schema(description = "Indicates whether the alarm is a root cause alarm.. ") + + public Boolean isIsRootCause() { + return isRootCause; + } + + public void setIsRootCause(Boolean isRootCause) { + this.isRootCause = isRootCause; + } + + public AlarmUpdate perceivedSeverity(String perceivedSeverity) { + this.perceivedSeverity = perceivedSeverity; + return this; + } + + /** + * Lists the possible severities that can be allocated to an Alarm. The values + * are consistent with ITU-T Recommendation X.733. Once an alarm has been + * cleared, its perceived severity is set to 'cleared' and can no longer be set. + * + * @return perceivedSeverity + **/ + @Schema(description = "Lists the possible severities that can be allocated to an Alarm. The values are consistent with ITU-T Recommendation X.733. Once an alarm has been cleared, its perceived severity is set to 'cleared' and can no longer be set.") + + public String getPerceivedSeverity() { + return perceivedSeverity; + } + + public void setPerceivedSeverity(String perceivedSeverity) { + this.perceivedSeverity = perceivedSeverity; + } + + public AlarmUpdate plannedOutageIndicator(String plannedOutageIndicator) { + this.plannedOutageIndicator = plannedOutageIndicator; + return this; + } + + /** + * Indicates that the Managed Object (related to this alarm) is in planned + * outage (in planned maintenance, or out-of-service). + * + * @return plannedOutageIndicator + **/ + @Schema(description = "Indicates that the Managed Object (related to this alarm) is in planned outage (in planned maintenance, or out-of-service). ") + + public String getPlannedOutageIndicator() { + return plannedOutageIndicator; + } + + public void setPlannedOutageIndicator(String plannedOutageIndicator) { + this.plannedOutageIndicator = plannedOutageIndicator; + } + + public AlarmUpdate probableCause(String probableCause) { + this.probableCause = probableCause; + return this; + } + + /** + * Provides the probable cause of the alarm. The values are consistent with + * ITU-T Recommendation X.733 or 3GPP TS 32.111-2 Annex B. + * + * @return probableCause + **/ + @Schema(description = "Provides the probable cause of the alarm. The values are consistent with ITU-T Recommendation X.733 or 3GPP TS 32.111-2 Annex B.") + + public String getProbableCause() { + return probableCause; + } + + public void setProbableCause(String probableCause) { + this.probableCause = probableCause; + } + + public AlarmUpdate proposedRepairedActions(String proposedRepairedActions) { + this.proposedRepairedActions = proposedRepairedActions; + return this; + } + + /** + * Indicates proposed repair actions, if known to the system emitting the alarm. + * + * @return proposedRepairedActions + **/ + @Schema(description = "Indicates proposed repair actions, if known to the system emitting the alarm.") + + public String getProposedRepairedActions() { + return proposedRepairedActions; + } + + public void setProposedRepairedActions(String proposedRepairedActions) { + this.proposedRepairedActions = proposedRepairedActions; + } + + public AlarmUpdate reportingSystemId(String reportingSystemId) { + this.reportingSystemId = reportingSystemId; + return this; + } + + /** + * Reporting system identity. + * + * @return reportingSystemId + **/ + @Schema(description = "Reporting system identity.") + + public String getReportingSystemId() { + return reportingSystemId; + } + + public void setReportingSystemId(String reportingSystemId) { + this.reportingSystemId = reportingSystemId; + } + + public AlarmUpdate serviceAffecting(Boolean serviceAffecting) { + this.serviceAffecting = serviceAffecting; + return this; + } + + /** + * Indicates whether the alarm affects service or not. + * + * @return serviceAffecting + **/ + @Schema(description = "Indicates whether the alarm affects service or not.") + + public Boolean isServiceAffecting() { + return serviceAffecting; + } + + public void setServiceAffecting(Boolean serviceAffecting) { + this.serviceAffecting = serviceAffecting; + } + + public AlarmUpdate specificProblem(String specificProblem) { + this.specificProblem = specificProblem; + return this; + } + + /** + * Provides more specific information about the alarm. + * + * @return specificProblem + **/ + @Schema(description = "Provides more specific information about the alarm.") + + public String getSpecificProblem() { + return specificProblem; + } + + public void setSpecificProblem(String specificProblem) { + this.specificProblem = specificProblem; + } + + public AlarmUpdate state(String state) { + this.state = state; + return this; + } + + /** + * Defines the alarm state during its life cycle + * + * @return state + **/ + @Schema(description = "Defines the alarm state during its life cycle") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public AlarmUpdate affectedService(List affectedService) { + this.affectedService = affectedService; + return this; + } + + public AlarmUpdate addAffectedServiceItem(AffectedService affectedServiceItem) { + if (this.affectedService == null) { + this.affectedService = new ArrayList<>(); + } + this.affectedService.add(affectedServiceItem); + return this; + } + + /** + * Get affectedService + * + * @return affectedService + **/ + @Schema(description = "") + @Valid + public List getAffectedService() { + return affectedService; + } + + public void setAffectedService(List affectedService) { + this.affectedService = affectedService; + } + + public AlarmUpdate alarmedObject(AlarmedObject alarmedObject) { + this.alarmedObject = alarmedObject; + return this; + } + + /** + * Get alarmedObject + * + * @return alarmedObject + **/ + @Schema(description = "") + + @Valid + public AlarmedObject getAlarmedObject() { + return alarmedObject; + } + + public void setAlarmedObject(AlarmedObject alarmedObject) { + this.alarmedObject = alarmedObject; + } + + public AlarmUpdate comment(List comment) { + this.comment = comment; + return this; + } + + public AlarmUpdate addCommentItem(Comment commentItem) { + if (this.comment == null) { + this.comment = new ArrayList<>(); + } + this.comment.add(commentItem); + return this; + } + + /** + * Get comment + * + * @return comment + **/ + @Schema(description = "") + @Valid + public List getComment() { + return comment; + } + + public void setComment(List comment) { + this.comment = comment; + } + + public AlarmUpdate correlatedAlarm(List correlatedAlarm) { + this.correlatedAlarm = correlatedAlarm; + return this; + } + + public AlarmUpdate addCorrelatedAlarmItem(AlarmRef correlatedAlarmItem) { + if (this.correlatedAlarm == null) { + this.correlatedAlarm = new ArrayList<>(); + } + this.correlatedAlarm.add(correlatedAlarmItem); + return this; + } + + /** + * Get correlatedAlarm + * + * @return correlatedAlarm + **/ + @Schema(description = "") + @Valid + public List getCorrelatedAlarm() { + return correlatedAlarm; + } + + public void setCorrelatedAlarm(List correlatedAlarm) { + this.correlatedAlarm = correlatedAlarm; + } + + public AlarmUpdate crossedThresholdInformation(CrossedThresholdInformation crossedThresholdInformation) { + this.crossedThresholdInformation = crossedThresholdInformation; + return this; + } + + /** + * Get crossedThresholdInformation + * + * @return crossedThresholdInformation + **/ + @Schema(description = "") + + @Valid + public CrossedThresholdInformation getCrossedThresholdInformation() { + return crossedThresholdInformation; + } + + public void setCrossedThresholdInformation(CrossedThresholdInformation crossedThresholdInformation) { + this.crossedThresholdInformation = crossedThresholdInformation; + } + + public AlarmUpdate parentAlarm(List parentAlarm) { + this.parentAlarm = parentAlarm; + return this; + } + + public AlarmUpdate addParentAlarmItem(AlarmRef parentAlarmItem) { + if (this.parentAlarm == null) { + this.parentAlarm = new ArrayList<>(); + } + this.parentAlarm.add(parentAlarmItem); + return this; + } + + /** + * Get parentAlarm + * + * @return parentAlarm + **/ + @Schema(description = "") + @Valid + public List getParentAlarm() { + return parentAlarm; + } + + public void setParentAlarm(List parentAlarm) { + this.parentAlarm = parentAlarm; + } + + public AlarmUpdate place(List place) { + this.place = place; + return this; + } + + public AlarmUpdate addPlaceItem(RelatedPlaceRefOrValue placeItem) { + if (this.place == null) { + this.place = new ArrayList<>(); + } + this.place.add(placeItem); + return this; + } + + /** + * Get place + * + * @return place + **/ + @Schema(description = "") + @Valid + public List getPlace() { + return place; + } + + public void setPlace(List place) { + this.place = place; + } + + public AlarmUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * The base type of this alarm. + * + * @return baseType + **/ + @Schema(description = "The base type of this alarm.") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public AlarmUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A reference to the schema describing this alarm. + * + * @return schemaLocation + **/ + @Schema(description = "A reference to the schema describing this alarm.") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public AlarmUpdate type(String type) { + this.type = type; + return this; + } + + /** + * The type for this alarm. + * + * @return type + **/ + @Schema(description = "The type for this alarm.") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlarmUpdate alarmUpdate = (AlarmUpdate) o; + return Objects.equals(this.ackState, alarmUpdate.ackState) + && Objects.equals(this.ackSystemId, alarmUpdate.ackSystemId) + && Objects.equals(this.ackUserId, alarmUpdate.ackUserId) + && Objects.equals(this.alarmChangedTime, alarmUpdate.alarmChangedTime) + && Objects.equals(this.alarmClearedTime, alarmUpdate.alarmClearedTime) + && Objects.equals(this.alarmDetails, alarmUpdate.alarmDetails) + && Objects.equals(this.alarmEscalation, alarmUpdate.alarmEscalation) + && Objects.equals(this.alarmReportingTime, alarmUpdate.alarmReportingTime) + && Objects.equals(this.alarmType, alarmUpdate.alarmType) + && Objects.equals(this.alarmedObjectType, alarmUpdate.alarmedObjectType) + && Objects.equals(this.clearSystemId, alarmUpdate.clearSystemId) + && Objects.equals(this.clearUserId, alarmUpdate.clearUserId) + && Objects.equals(this.externalAlarmId, alarmUpdate.externalAlarmId) + && Objects.equals(this.isRootCause, alarmUpdate.isRootCause) + && Objects.equals(this.perceivedSeverity, alarmUpdate.perceivedSeverity) + && Objects.equals(this.plannedOutageIndicator, alarmUpdate.plannedOutageIndicator) + && Objects.equals(this.probableCause, alarmUpdate.probableCause) + && Objects.equals(this.proposedRepairedActions, alarmUpdate.proposedRepairedActions) + && Objects.equals(this.reportingSystemId, alarmUpdate.reportingSystemId) + && Objects.equals(this.serviceAffecting, alarmUpdate.serviceAffecting) + && Objects.equals(this.specificProblem, alarmUpdate.specificProblem) + && Objects.equals(this.state, alarmUpdate.state) + && Objects.equals(this.affectedService, alarmUpdate.affectedService) + && Objects.equals(this.alarmedObject, alarmUpdate.alarmedObject) + && Objects.equals(this.comment, alarmUpdate.comment) + && Objects.equals(this.correlatedAlarm, alarmUpdate.correlatedAlarm) + && Objects.equals(this.crossedThresholdInformation, alarmUpdate.crossedThresholdInformation) + && Objects.equals(this.parentAlarm, alarmUpdate.parentAlarm) + && Objects.equals(this.place, alarmUpdate.place) && Objects.equals(this.baseType, alarmUpdate.baseType) + && Objects.equals(this.schemaLocation, alarmUpdate.schemaLocation) + && Objects.equals(this.type, alarmUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(ackState, ackSystemId, ackUserId, alarmChangedTime, alarmClearedTime, alarmDetails, + alarmEscalation, alarmReportingTime, alarmType, alarmedObjectType, clearSystemId, clearUserId, + externalAlarmId, isRootCause, perceivedSeverity, plannedOutageIndicator, probableCause, + proposedRepairedActions, reportingSystemId, serviceAffecting, specificProblem, state, affectedService, + alarmedObject, comment, correlatedAlarm, crossedThresholdInformation, parentAlarm, place, baseType, + schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlarmUpdate {\n"); + + sb.append(" ackState: ").append(toIndentedString(ackState)).append("\n"); + sb.append(" ackSystemId: ").append(toIndentedString(ackSystemId)).append("\n"); + sb.append(" ackUserId: ").append(toIndentedString(ackUserId)).append("\n"); + sb.append(" alarmChangedTime: ").append(toIndentedString(alarmChangedTime)).append("\n"); + sb.append(" alarmClearedTime: ").append(toIndentedString(alarmClearedTime)).append("\n"); + sb.append(" alarmDetails: ").append(toIndentedString(alarmDetails)).append("\n"); + sb.append(" alarmEscalation: ").append(toIndentedString(alarmEscalation)).append("\n"); + sb.append(" alarmReportingTime: ").append(toIndentedString(alarmReportingTime)).append("\n"); + sb.append(" alarmType: ").append(toIndentedString(alarmType)).append("\n"); + sb.append(" alarmedObjectType: ").append(toIndentedString(alarmedObjectType)).append("\n"); + sb.append(" clearSystemId: ").append(toIndentedString(clearSystemId)).append("\n"); + sb.append(" clearUserId: ").append(toIndentedString(clearUserId)).append("\n"); + sb.append(" externalAlarmId: ").append(toIndentedString(externalAlarmId)).append("\n"); + sb.append(" isRootCause: ").append(toIndentedString(isRootCause)).append("\n"); + sb.append(" perceivedSeverity: ").append(toIndentedString(perceivedSeverity)).append("\n"); + sb.append(" plannedOutageIndicator: ").append(toIndentedString(plannedOutageIndicator)).append("\n"); + sb.append(" probableCause: ").append(toIndentedString(probableCause)).append("\n"); + sb.append(" proposedRepairedActions: ").append(toIndentedString(proposedRepairedActions)).append("\n"); + sb.append(" reportingSystemId: ").append(toIndentedString(reportingSystemId)).append("\n"); + sb.append(" serviceAffecting: ").append(toIndentedString(serviceAffecting)).append("\n"); + sb.append(" specificProblem: ").append(toIndentedString(specificProblem)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" affectedService: ").append(toIndentedString(affectedService)).append("\n"); + sb.append(" alarmedObject: ").append(toIndentedString(alarmedObject)).append("\n"); + sb.append(" comment: ").append(toIndentedString(comment)).append("\n"); + sb.append(" correlatedAlarm: ").append(toIndentedString(correlatedAlarm)).append("\n"); + sb.append(" crossedThresholdInformation: ").append(toIndentedString(crossedThresholdInformation)) + .append("\n"); + sb.append(" parentAlarm: ").append(toIndentedString(parentAlarm)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/AlarmedObject.java b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmedObject.java new file mode 100644 index 0000000..6c1879b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/AlarmedObject.java @@ -0,0 +1,97 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; + +/** + * Identifies the managed object instance associated with the alarm. + */ +@Schema(description = "Identifies the managed object instance associated with the alarm.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Entity(name = "AMAlarmedObject") +@Table(name = "AMAlarmedObject") +public class AlarmedObject extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + + /** + * @return the id + */ + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlarmedObject alarmedObject = (AlarmedObject) o; + return Objects.equals(this.id, alarmedObject.id) && Objects.equals(this.href, alarmedObject.href) + && Objects.equals(this.baseType, alarmedObject.baseType) + && Objects.equals(this.schemaLocation, alarmedObject.schemaLocation) + && Objects.equals(this.type, alarmedObject.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlarmedObject {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarms.java b/src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarms.java new file mode 100644 index 0000000..9278319 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarms.java @@ -0,0 +1,293 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * Task resource for clear alarms operation + */ +@Schema(description = "Task resource for clear alarms operation") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") + +@Entity(name = "AMClearAlarms") +@Table(name = "AMClearAlarms") +@ApiResponse +public class ClearAlarms extends BaseRootEntity { + + @JsonProperty("id") + private String id = null; + + private OffsetDateTime alarmClearedTime = null; + + @JsonProperty("clearSystemId") + private String clearSystemId = null; + + @JsonProperty("clearUserId") + private String clearUserId = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("alarmPattern") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set alarmPattern = new HashSet<>(); + + @JsonProperty("clearedAlarm") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set clearedAlarm = new HashSet<>(); + + /** + * @return the id + */ + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + public ClearAlarms alarmClearedTime(OffsetDateTime alarmClearedTime) { + this.alarmClearedTime = alarmClearedTime; + return this; + } + + /** + * Time of the alarm clearing + * + * @return alarmClearedTime + **/ + @Schema(description = "Time of the alarm clearing") + + @Valid + public OffsetDateTime getAlarmClearedTime() { + return alarmClearedTime; + } + + public void setAlarmClearedTime(OffsetDateTime alarmClearedTime) { + this.alarmClearedTime = alarmClearedTime; + } + + + @JsonProperty("alarmClearedTime") + public String getAlarmClearedTimeStr() { + if (this.alarmClearedTime != null) { + return this.alarmClearedTime.toString(); + } else { + return null; + } + } + + + + + public ClearAlarms clearSystemId(String clearSystemId) { + this.clearSystemId = clearSystemId; + return this; + } + + /** + * Name of the clearing system + * + * @return clearSystemId + **/ + @Schema(description = "Name of the clearing system") + + public String getClearSystemId() { + return clearSystemId; + } + + public void setClearSystemId(String clearSystemId) { + this.clearSystemId = clearSystemId; + } + + public ClearAlarms clearUserId(String clearUserId) { + this.clearUserId = clearUserId; + return this; + } + + /** + * Name of the clearing user + * + * @return clearUserId + **/ + @Schema(description = "Name of the clearing user") + + public String getClearUserId() { + return clearUserId; + } + + public void setClearUserId(String clearUserId) { + this.clearUserId = clearUserId; + } + + public ClearAlarms state(String state) { + this.state = state; + return this; + } + + /** + * Current state of the operation task + * + * @return state + **/ + @Schema(description = "Current state of the operation task") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public ClearAlarms alarmPattern(Set alarmPattern) { + this.alarmPattern = alarmPattern; + return this; + } + + public ClearAlarms addAlarmPatternItem(Alarm alarmPatternItem) { + if (this.alarmPattern == null) { + this.alarmPattern = new HashSet<>(); + } + this.alarmPattern.add(alarmPatternItem); + return this; + } + + /** + * Alarm patterns to match target alarms. An alarm will match if all of the + * sttributes in any of the patterns compare equal to those attributes of the + * alarm. + * + * @return alarmPattern + **/ + @Schema(description = "Alarm patterns to match target alarms. An alarm will match if all of the sttributes in any of the patterns compare equal to those attributes of the alarm.") + @Valid + public Set getAlarmPattern() { + return alarmPattern; + } + + public void setAlarmPattern(Set alarmPattern) { + this.alarmPattern = alarmPattern; + } + + public ClearAlarms clearedAlarm(Set clearedAlarm) { + this.clearedAlarm = clearedAlarm; + return this; + } + + public ClearAlarms addClearedAlarmItem(AlarmRefOrValue clearedAlarmItem) { + if (this.clearedAlarm == null) { + this.clearedAlarm = new HashSet<>(); + } + this.clearedAlarm.add(clearedAlarmItem); + return this; + } + + /** + * The successfully cleared alarms + * + * @return clearedAlarm + **/ + @Schema(description = "The successfully cleared alarms") + @Valid + public Set getClearedAlarm() { + return clearedAlarm; + } + + public void setClearedAlarm(Set clearedAlarm) { + this.clearedAlarm = clearedAlarm; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClearAlarms clearAlarms = (ClearAlarms) o; + return Objects.equals(this.id, clearAlarms.id) && Objects.equals(this.href, clearAlarms.href) + && Objects.equals(this.alarmClearedTime, clearAlarms.alarmClearedTime) + && Objects.equals(this.clearSystemId, clearAlarms.clearSystemId) + && Objects.equals(this.clearUserId, clearAlarms.clearUserId) + && Objects.equals(this.state, clearAlarms.state) + && Objects.equals(this.alarmPattern, clearAlarms.alarmPattern) + && Objects.equals(this.clearedAlarm, clearAlarms.clearedAlarm) + && Objects.equals(this.baseType, clearAlarms.baseType) + && Objects.equals(this.schemaLocation, clearAlarms.schemaLocation) + && Objects.equals(this.type, clearAlarms.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, alarmClearedTime, clearSystemId, clearUserId, state, alarmPattern, clearedAlarm, + baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ClearAlarms {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" alarmClearedTime: ").append(toIndentedString(alarmClearedTime)).append("\n"); + sb.append(" clearSystemId: ").append(toIndentedString(clearSystemId)).append("\n"); + sb.append(" clearUserId: ").append(toIndentedString(clearUserId)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" alarmPattern: ").append(toIndentedString(alarmPattern)).append("\n"); + sb.append(" clearedAlarm: ").append(toIndentedString(clearedAlarm)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsCreate.java b/src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsCreate.java new file mode 100644 index 0000000..e16667c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsCreate.java @@ -0,0 +1,315 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * Task resource for clear alarms operation Skipped properties: id,href + */ +@Schema(description = "Task resource for clear alarms operation Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class ClearAlarmsCreate { + @JsonProperty("alarmClearedTime") + private OffsetDateTime alarmClearedTime = null; + + @JsonProperty("clearSystemId") + private String clearSystemId = null; + + @JsonProperty("clearUserId") + private String clearUserId = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("alarmPattern") + @Valid + private List alarmPattern = new ArrayList<>(); + + @JsonProperty("clearedAlarm") + @Valid + private List clearedAlarm = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ClearAlarmsCreate alarmClearedTime(OffsetDateTime alarmClearedTime) { + this.alarmClearedTime = alarmClearedTime; + return this; + } + + /** + * Time of the alarm clearing + * @return alarmClearedTime + **/ + @Schema(description = "Time of the alarm clearing") + @NotNull + + @Valid + public OffsetDateTime getAlarmClearedTime() { + return alarmClearedTime; + } + + public void setAlarmClearedTime(OffsetDateTime alarmClearedTime) { + this.alarmClearedTime = alarmClearedTime; + } + + public ClearAlarmsCreate clearSystemId(String clearSystemId) { + this.clearSystemId = clearSystemId; + return this; + } + + /** + * Name of the clearing system + * @return clearSystemId + **/ + @Schema(description = "Name of the clearing system") + @NotNull + + public String getClearSystemId() { + return clearSystemId; + } + + public void setClearSystemId(String clearSystemId) { + this.clearSystemId = clearSystemId; + } + + public ClearAlarmsCreate clearUserId(String clearUserId) { + this.clearUserId = clearUserId; + return this; + } + + /** + * Name of the clearing user + * @return clearUserId + **/ + @Schema(description = "Name of the clearing user") + @NotNull + + public String getClearUserId() { + return clearUserId; + } + + public void setClearUserId(String clearUserId) { + this.clearUserId = clearUserId; + } + + public ClearAlarmsCreate state(String state) { + this.state = state; + return this; + } + + /** + * Current state of the operation task + * @return state + **/ + @Schema(description = "Current state of the operation task") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public ClearAlarmsCreate alarmPattern(List alarmPattern) { + this.alarmPattern = alarmPattern; + return this; + } + + public ClearAlarmsCreate addAlarmPatternItem(Alarm alarmPatternItem) { + this.alarmPattern.add(alarmPatternItem); + return this; + } + + /** + * Alarm patterns to match target alarms. An alarm will match if all of the sttributes in any of the patterns compare equal to those attributes of the alarm. + * @return alarmPattern + **/ + @Schema(description = "Alarm patterns to match target alarms. An alarm will match if all of the sttributes in any of the patterns compare equal to those attributes of the alarm.") + @NotNull + @Valid + @Size(min=1) public List getAlarmPattern() { + return alarmPattern; + } + + public void setAlarmPattern(List alarmPattern) { + this.alarmPattern = alarmPattern; + } + + public ClearAlarmsCreate clearedAlarm(List clearedAlarm) { + this.clearedAlarm = clearedAlarm; + return this; + } + + public ClearAlarmsCreate addClearedAlarmItem(AlarmRefOrValue clearedAlarmItem) { + if (this.clearedAlarm == null) { + this.clearedAlarm = new ArrayList<>(); + } + this.clearedAlarm.add(clearedAlarmItem); + return this; + } + + /** + * The successfully cleared alarms + * @return clearedAlarm + **/ + @Schema(description = "The successfully cleared alarms") + @Valid + public List getClearedAlarm() { + return clearedAlarm; + } + + public void setClearedAlarm(List clearedAlarm) { + this.clearedAlarm = clearedAlarm; + } + + public ClearAlarmsCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public ClearAlarmsCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ClearAlarmsCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClearAlarmsCreate clearAlarmsCreate = (ClearAlarmsCreate) o; + return Objects.equals(this.alarmClearedTime, clearAlarmsCreate.alarmClearedTime) && + Objects.equals(this.clearSystemId, clearAlarmsCreate.clearSystemId) && + Objects.equals(this.clearUserId, clearAlarmsCreate.clearUserId) && + Objects.equals(this.state, clearAlarmsCreate.state) && + Objects.equals(this.alarmPattern, clearAlarmsCreate.alarmPattern) && + Objects.equals(this.clearedAlarm, clearAlarmsCreate.clearedAlarm) && + Objects.equals(this.baseType, clearAlarmsCreate.baseType) && + Objects.equals(this.schemaLocation, clearAlarmsCreate.schemaLocation) && + Objects.equals(this.type, clearAlarmsCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(alarmClearedTime, clearSystemId, clearUserId, state, alarmPattern, clearedAlarm, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ClearAlarmsCreate {\n"); + + sb.append(" alarmClearedTime: ").append(toIndentedString(alarmClearedTime)).append("\n"); + sb.append(" clearSystemId: ").append(toIndentedString(clearSystemId)).append("\n"); + sb.append(" clearUserId: ").append(toIndentedString(clearUserId)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" alarmPattern: ").append(toIndentedString(alarmPattern)).append("\n"); + sb.append(" clearedAlarm: ").append(toIndentedString(clearedAlarm)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsCreateEvent.java b/src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsCreateEvent.java new file mode 100644 index 0000000..bc9c551 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsCreateEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class ClearAlarmsCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ClearAlarmsCreateEventPayload event = null; + + public ClearAlarmsCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ClearAlarmsCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ClearAlarmsCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ClearAlarmsCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ClearAlarmsCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ClearAlarmsCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ClearAlarmsCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ClearAlarmsCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ClearAlarmsCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ClearAlarmsCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ClearAlarmsCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ClearAlarmsCreateEvent event(ClearAlarmsCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ClearAlarmsCreateEventPayload getEvent() { + return event; + } + + public void setEvent(ClearAlarmsCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClearAlarmsCreateEvent clearAlarmsCreateEvent = (ClearAlarmsCreateEvent) o; + return Objects.equals(this.id, clearAlarmsCreateEvent.id) && + Objects.equals(this.href, clearAlarmsCreateEvent.href) && + Objects.equals(this.eventId, clearAlarmsCreateEvent.eventId) && + Objects.equals(this.eventTime, clearAlarmsCreateEvent.eventTime) && + Objects.equals(this.eventType, clearAlarmsCreateEvent.eventType) && + Objects.equals(this.correlationId, clearAlarmsCreateEvent.correlationId) && + Objects.equals(this.domain, clearAlarmsCreateEvent.domain) && + Objects.equals(this.title, clearAlarmsCreateEvent.title) && + Objects.equals(this.description, clearAlarmsCreateEvent.description) && + Objects.equals(this.priority, clearAlarmsCreateEvent.priority) && + Objects.equals(this.timeOcurred, clearAlarmsCreateEvent.timeOcurred) && + Objects.equals(this.event, clearAlarmsCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ClearAlarmsCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsCreateEventPayload.java new file mode 100644 index 0000000..30c045c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsCreateEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class ClearAlarmsCreateEventPayload { + @JsonProperty("clearAlarms") + private ClearAlarms clearAlarms = null; + + public ClearAlarmsCreateEventPayload clearAlarms(ClearAlarms clearAlarms) { + this.clearAlarms = clearAlarms; + return this; + } + + /** + * Get clearAlarms + * @return clearAlarms + **/ + @Schema(description = "") + + @Valid + public ClearAlarms getClearAlarms() { + return clearAlarms; + } + + public void setClearAlarms(ClearAlarms clearAlarms) { + this.clearAlarms = clearAlarms; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClearAlarmsCreateEventPayload clearAlarmsCreateEventPayload = (ClearAlarmsCreateEventPayload) o; + return Objects.equals(this.clearAlarms, clearAlarmsCreateEventPayload.clearAlarms); + } + + @Override + public int hashCode() { + return Objects.hash(clearAlarms); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ClearAlarmsCreateEventPayload {\n"); + + sb.append(" clearAlarms: ").append(toIndentedString(clearAlarms)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsStateChangeEvent.java new file mode 100644 index 0000000..2ae572c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsStateChangeEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class ClearAlarmsStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ClearAlarmsStateChangeEventPayload event = null; + + public ClearAlarmsStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ClearAlarmsStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ClearAlarmsStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ClearAlarmsStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ClearAlarmsStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ClearAlarmsStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ClearAlarmsStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ClearAlarmsStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ClearAlarmsStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ClearAlarmsStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ClearAlarmsStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ClearAlarmsStateChangeEvent event(ClearAlarmsStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ClearAlarmsStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(ClearAlarmsStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClearAlarmsStateChangeEvent clearAlarmsStateChangeEvent = (ClearAlarmsStateChangeEvent) o; + return Objects.equals(this.id, clearAlarmsStateChangeEvent.id) && + Objects.equals(this.href, clearAlarmsStateChangeEvent.href) && + Objects.equals(this.eventId, clearAlarmsStateChangeEvent.eventId) && + Objects.equals(this.eventTime, clearAlarmsStateChangeEvent.eventTime) && + Objects.equals(this.eventType, clearAlarmsStateChangeEvent.eventType) && + Objects.equals(this.correlationId, clearAlarmsStateChangeEvent.correlationId) && + Objects.equals(this.domain, clearAlarmsStateChangeEvent.domain) && + Objects.equals(this.title, clearAlarmsStateChangeEvent.title) && + Objects.equals(this.description, clearAlarmsStateChangeEvent.description) && + Objects.equals(this.priority, clearAlarmsStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, clearAlarmsStateChangeEvent.timeOcurred) && + Objects.equals(this.event, clearAlarmsStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ClearAlarmsStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsStateChangeEventPayload.java new file mode 100644 index 0000000..49be5be --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/ClearAlarmsStateChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class ClearAlarmsStateChangeEventPayload { + @JsonProperty("clearAlarms") + private ClearAlarms clearAlarms = null; + + public ClearAlarmsStateChangeEventPayload clearAlarms(ClearAlarms clearAlarms) { + this.clearAlarms = clearAlarms; + return this; + } + + /** + * Get clearAlarms + * @return clearAlarms + **/ + @Schema(description = "") + + @Valid + public ClearAlarms getClearAlarms() { + return clearAlarms; + } + + public void setClearAlarms(ClearAlarms clearAlarms) { + this.clearAlarms = clearAlarms; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClearAlarmsStateChangeEventPayload clearAlarmsStateChangeEventPayload = (ClearAlarmsStateChangeEventPayload) o; + return Objects.equals(this.clearAlarms, clearAlarmsStateChangeEventPayload.clearAlarms); + } + + @Override + public int hashCode() { + return Objects.hash(clearAlarms); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ClearAlarmsStateChangeEventPayload {\n"); + + sb.append(" clearAlarms: ").append(toIndentedString(clearAlarms)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/Comment.java b/src/main/java/org/etsi/osl/tmf/am642/model/Comment.java new file mode 100644 index 0000000..d8ad40a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/Comment.java @@ -0,0 +1,202 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Lob; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * Indicates the comments entered on the alarm. + */ +@Schema(description = "Indicates the comments entered on the alarm.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Entity(name = "AMcomment") +@Table(name = "AMcomment") +public class Comment extends BaseRootEntity { + @JsonProperty("comment") + @Lob + @Column(name = "LCOMMENT", columnDefinition = "LONGTEXT") + private String comment = null; + + @JsonProperty("systemId") + private String systemId = null; + + private OffsetDateTime time = null; + + @JsonProperty("userId") + private String userId = null; + + public Comment comment(String comment) { + this.comment = comment; + return this; + } + + /** + * Indicates the text of the comment. + * + * @return comment + **/ + @Schema(description = "Indicates the text of the comment.") + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } + + public Comment systemId(String systemId) { + this.systemId = systemId; + return this; + } + + /** + * Indicates the system identifier on which the client set the comment. + * + * @return systemId + **/ + @Schema(description = "Indicates the system identifier on which the client set the comment.") + + public String getSystemId() { + return systemId; + } + + public void setSystemId(String systemId) { + this.systemId = systemId; + } + + public Comment time(OffsetDateTime time) { + this.time = time; + return this; + } + + /** + * Indicates the time commenting the alarm + * + * @return time + **/ + @Schema(description = "Indicates the time commenting the alarm") + + @Valid + public OffsetDateTime getTime() { + return time; + } + + public void setTime(OffsetDateTime time) { + this.time = time; + } + + @JsonProperty("time") + public String getTimeStr() { + if (this.time != null) { + return this.time.toString(); + } else { + return null; + } + } + + + public void setTime(String time) { + if ( time != null) { + this.time = OffsetDateTime.parse( time ); + + } + } + + public Comment userId(String userId) { + this.userId = userId; + return this; + } + + /** + * Indicates the user commenting the alarm. + * + * @return userId + **/ + @Schema(description = "Indicates the user commenting the alarm.") + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Comment comment = (Comment) o; + return Objects.equals(this.comment, comment.comment) && Objects.equals(this.systemId, comment.systemId) + && Objects.equals(this.time, comment.time) && Objects.equals(this.userId, comment.userId) + && Objects.equals(this.baseType, comment.baseType) + && Objects.equals(this.schemaLocation, comment.schemaLocation) + && Objects.equals(this.type, comment.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(comment, systemId, time, userId, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Comment {\n"); + + sb.append(" comment: ").append(toIndentedString(comment)).append("\n"); + sb.append(" systemId: ").append(toIndentedString(systemId)).append("\n"); + sb.append(" time: ").append(toIndentedString(time)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarms.java b/src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarms.java new file mode 100644 index 0000000..a1be3ae --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarms.java @@ -0,0 +1,227 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * Task resource for comment alarms operation + */ +@Schema(description = "Task resource for comment alarms operation") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Entity(name = "AMCommentAlarms") +@Table(name = "AMCommentAlarms") +public class CommentAlarms extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("alarmPattern") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set alarmPattern = new HashSet<>(); + + @JsonProperty("comment") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Comment comment = null; + + @JsonProperty("commentedAlarm") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set commentedAlarm = new HashSet<>(); + + /** + * @return the id + */ + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + public CommentAlarms state(String state) { + this.state = state; + return this; + } + + /** + * Current state of the operation task + * + * @return state + **/ + @Schema(description = "Current state of the operation task") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public CommentAlarms alarmPattern(Set alarmPattern) { + this.alarmPattern = alarmPattern; + return this; + } + + public CommentAlarms addAlarmPatternItem(Alarm alarmPatternItem) { + if (this.alarmPattern == null) { + this.alarmPattern = new HashSet<>(); + } + this.alarmPattern.add(alarmPatternItem); + return this; + } + + /** + * Alarm patterns to match target alarms. An alarm will match if all of the + * sttributes in any of the patterns compare equal to those attributes of the + * alarm. + * + * @return alarmPattern + **/ + @Schema(description = "Alarm patterns to match target alarms. An alarm will match if all of the sttributes in any of the patterns compare equal to those attributes of the alarm.") + @Valid + public Set getAlarmPattern() { + return alarmPattern; + } + + public void setAlarmPattern(Set alarmPattern) { + this.alarmPattern = alarmPattern; + } + + public CommentAlarms comment(Comment comment) { + this.comment = comment; + return this; + } + + /** + * Get comment + * + * @return comment + **/ + @Schema(description = "") + + @Valid + public Comment getComment() { + return comment; + } + + public void setComment(Comment comment) { + this.comment = comment; + } + + public CommentAlarms commentedAlarm(Set commentedAlarm) { + this.commentedAlarm = commentedAlarm; + return this; + } + + public CommentAlarms addCommentedAlarmItem(AlarmRefOrValue commentedAlarmItem) { + if (this.commentedAlarm == null) { + this.commentedAlarm = new HashSet<>(); + } + this.commentedAlarm.add(commentedAlarmItem); + return this; + } + + /** + * The successfully commented alarms + * + * @return commentedAlarm + **/ + @Schema(description = "The successfully commented alarms") + @Valid + public Set getCommentedAlarm() { + return commentedAlarm; + } + + public void setCommentedAlarm(Set commentedAlarm) { + this.commentedAlarm = commentedAlarm; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CommentAlarms commentAlarms = (CommentAlarms) o; + return Objects.equals(this.id, commentAlarms.id) && Objects.equals(this.href, commentAlarms.href) + && Objects.equals(this.state, commentAlarms.state) + && Objects.equals(this.alarmPattern, commentAlarms.alarmPattern) + && Objects.equals(this.comment, commentAlarms.comment) + && Objects.equals(this.commentedAlarm, commentAlarms.commentedAlarm) + && Objects.equals(this.baseType, commentAlarms.baseType) + && Objects.equals(this.schemaLocation, commentAlarms.schemaLocation) + && Objects.equals(this.type, commentAlarms.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, state, alarmPattern, comment, commentedAlarm, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CommentAlarms {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" alarmPattern: ").append(toIndentedString(alarmPattern)).append("\n"); + sb.append(" comment: ").append(toIndentedString(comment)).append("\n"); + sb.append(" commentedAlarm: ").append(toIndentedString(commentedAlarm)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsCreate.java b/src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsCreate.java new file mode 100644 index 0000000..f7ab485 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsCreate.java @@ -0,0 +1,264 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * Task resource for comment alarms operation Skipped properties: id,href + */ +@Schema(description = "Task resource for comment alarms operation Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class CommentAlarmsCreate { + @JsonProperty("state") + private String state = null; + + @JsonProperty("alarmPattern") + @Valid + private List alarmPattern = new ArrayList<>(); + + @JsonProperty("comment") + private Comment comment = null; + + @JsonProperty("commentedAlarm") + @Valid + private List commentedAlarm = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public CommentAlarmsCreate state(String state) { + this.state = state; + return this; + } + + /** + * Current state of the operation task + * @return state + **/ + @Schema(description = "Current state of the operation task") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public CommentAlarmsCreate alarmPattern(List alarmPattern) { + this.alarmPattern = alarmPattern; + return this; + } + + public CommentAlarmsCreate addAlarmPatternItem(Alarm alarmPatternItem) { + this.alarmPattern.add(alarmPatternItem); + return this; + } + + /** + * Alarm patterns to match target alarms. An alarm will match if all of the sttributes in any of the patterns compare equal to those attributes of the alarm. + * @return alarmPattern + **/ + @Schema(description = "Alarm patterns to match target alarms. An alarm will match if all of the sttributes in any of the patterns compare equal to those attributes of the alarm.") + @NotNull + @Valid + @Size(min=1) public List getAlarmPattern() { + return alarmPattern; + } + + public void setAlarmPattern(List alarmPattern) { + this.alarmPattern = alarmPattern; + } + + public CommentAlarmsCreate comment(Comment comment) { + this.comment = comment; + return this; + } + + /** + * Get comment + * @return comment + **/ + @Schema(description = "") + @NotNull + + @Valid + public Comment getComment() { + return comment; + } + + public void setComment(Comment comment) { + this.comment = comment; + } + + public CommentAlarmsCreate commentedAlarm(List commentedAlarm) { + this.commentedAlarm = commentedAlarm; + return this; + } + + public CommentAlarmsCreate addCommentedAlarmItem(AlarmRefOrValue commentedAlarmItem) { + if (this.commentedAlarm == null) { + this.commentedAlarm = new ArrayList<>(); + } + this.commentedAlarm.add(commentedAlarmItem); + return this; + } + + /** + * The successfully commented alarms + * @return commentedAlarm + **/ + @Schema(description = "The successfully commented alarms") + @Valid + public List getCommentedAlarm() { + return commentedAlarm; + } + + public void setCommentedAlarm(List commentedAlarm) { + this.commentedAlarm = commentedAlarm; + } + + public CommentAlarmsCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public CommentAlarmsCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public CommentAlarmsCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CommentAlarmsCreate commentAlarmsCreate = (CommentAlarmsCreate) o; + return Objects.equals(this.state, commentAlarmsCreate.state) && + Objects.equals(this.alarmPattern, commentAlarmsCreate.alarmPattern) && + Objects.equals(this.comment, commentAlarmsCreate.comment) && + Objects.equals(this.commentedAlarm, commentAlarmsCreate.commentedAlarm) && + Objects.equals(this.baseType, commentAlarmsCreate.baseType) && + Objects.equals(this.schemaLocation, commentAlarmsCreate.schemaLocation) && + Objects.equals(this.type, commentAlarmsCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(state, alarmPattern, comment, commentedAlarm, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CommentAlarmsCreate {\n"); + + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" alarmPattern: ").append(toIndentedString(alarmPattern)).append("\n"); + sb.append(" comment: ").append(toIndentedString(comment)).append("\n"); + sb.append(" commentedAlarm: ").append(toIndentedString(commentedAlarm)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsCreateEvent.java b/src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsCreateEvent.java new file mode 100644 index 0000000..10878e6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsCreateEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class CommentAlarmsCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private CommentAlarmsCreateEventPayload event = null; + + public CommentAlarmsCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CommentAlarmsCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CommentAlarmsCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public CommentAlarmsCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public CommentAlarmsCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public CommentAlarmsCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public CommentAlarmsCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public CommentAlarmsCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public CommentAlarmsCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CommentAlarmsCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public CommentAlarmsCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public CommentAlarmsCreateEvent event(CommentAlarmsCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public CommentAlarmsCreateEventPayload getEvent() { + return event; + } + + public void setEvent(CommentAlarmsCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CommentAlarmsCreateEvent commentAlarmsCreateEvent = (CommentAlarmsCreateEvent) o; + return Objects.equals(this.id, commentAlarmsCreateEvent.id) && + Objects.equals(this.href, commentAlarmsCreateEvent.href) && + Objects.equals(this.eventId, commentAlarmsCreateEvent.eventId) && + Objects.equals(this.eventTime, commentAlarmsCreateEvent.eventTime) && + Objects.equals(this.eventType, commentAlarmsCreateEvent.eventType) && + Objects.equals(this.correlationId, commentAlarmsCreateEvent.correlationId) && + Objects.equals(this.domain, commentAlarmsCreateEvent.domain) && + Objects.equals(this.title, commentAlarmsCreateEvent.title) && + Objects.equals(this.description, commentAlarmsCreateEvent.description) && + Objects.equals(this.priority, commentAlarmsCreateEvent.priority) && + Objects.equals(this.timeOcurred, commentAlarmsCreateEvent.timeOcurred) && + Objects.equals(this.event, commentAlarmsCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CommentAlarmsCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsCreateEventPayload.java new file mode 100644 index 0000000..9f5d465 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsCreateEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class CommentAlarmsCreateEventPayload { + @JsonProperty("commentAlarms") + private CommentAlarms commentAlarms = null; + + public CommentAlarmsCreateEventPayload commentAlarms(CommentAlarms commentAlarms) { + this.commentAlarms = commentAlarms; + return this; + } + + /** + * Get commentAlarms + * @return commentAlarms + **/ + @Schema(description = "") + + @Valid + public CommentAlarms getCommentAlarms() { + return commentAlarms; + } + + public void setCommentAlarms(CommentAlarms commentAlarms) { + this.commentAlarms = commentAlarms; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CommentAlarmsCreateEventPayload commentAlarmsCreateEventPayload = (CommentAlarmsCreateEventPayload) o; + return Objects.equals(this.commentAlarms, commentAlarmsCreateEventPayload.commentAlarms); + } + + @Override + public int hashCode() { + return Objects.hash(commentAlarms); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CommentAlarmsCreateEventPayload {\n"); + + sb.append(" commentAlarms: ").append(toIndentedString(commentAlarms)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsStateChangeEvent.java new file mode 100644 index 0000000..f668f83 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsStateChangeEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class CommentAlarmsStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private CommentAlarmsStateChangeEventPayload event = null; + + public CommentAlarmsStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CommentAlarmsStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CommentAlarmsStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public CommentAlarmsStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public CommentAlarmsStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public CommentAlarmsStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public CommentAlarmsStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public CommentAlarmsStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public CommentAlarmsStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CommentAlarmsStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public CommentAlarmsStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public CommentAlarmsStateChangeEvent event(CommentAlarmsStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public CommentAlarmsStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(CommentAlarmsStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CommentAlarmsStateChangeEvent commentAlarmsStateChangeEvent = (CommentAlarmsStateChangeEvent) o; + return Objects.equals(this.id, commentAlarmsStateChangeEvent.id) && + Objects.equals(this.href, commentAlarmsStateChangeEvent.href) && + Objects.equals(this.eventId, commentAlarmsStateChangeEvent.eventId) && + Objects.equals(this.eventTime, commentAlarmsStateChangeEvent.eventTime) && + Objects.equals(this.eventType, commentAlarmsStateChangeEvent.eventType) && + Objects.equals(this.correlationId, commentAlarmsStateChangeEvent.correlationId) && + Objects.equals(this.domain, commentAlarmsStateChangeEvent.domain) && + Objects.equals(this.title, commentAlarmsStateChangeEvent.title) && + Objects.equals(this.description, commentAlarmsStateChangeEvent.description) && + Objects.equals(this.priority, commentAlarmsStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, commentAlarmsStateChangeEvent.timeOcurred) && + Objects.equals(this.event, commentAlarmsStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CommentAlarmsStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsStateChangeEventPayload.java new file mode 100644 index 0000000..3e6005e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/CommentAlarmsStateChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class CommentAlarmsStateChangeEventPayload { + @JsonProperty("commentAlarms") + private CommentAlarms commentAlarms = null; + + public CommentAlarmsStateChangeEventPayload commentAlarms(CommentAlarms commentAlarms) { + this.commentAlarms = commentAlarms; + return this; + } + + /** + * Get commentAlarms + * @return commentAlarms + **/ + @Schema(description = "") + + @Valid + public CommentAlarms getCommentAlarms() { + return commentAlarms; + } + + public void setCommentAlarms(CommentAlarms commentAlarms) { + this.commentAlarms = commentAlarms; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CommentAlarmsStateChangeEventPayload commentAlarmsStateChangeEventPayload = (CommentAlarmsStateChangeEventPayload) o; + return Objects.equals(this.commentAlarms, commentAlarmsStateChangeEventPayload.commentAlarms); + } + + @Override + public int hashCode() { + return Objects.hash(commentAlarms); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CommentAlarmsStateChangeEventPayload {\n"); + + sb.append(" commentAlarms: ").append(toIndentedString(commentAlarms)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/CrossedThresholdInformation.java b/src/main/java/org/etsi/osl/tmf/am642/model/CrossedThresholdInformation.java new file mode 100644 index 0000000..f1e51bf --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/CrossedThresholdInformation.java @@ -0,0 +1,280 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * Identifies the details of the threshold that has been crossed. + */ +@Schema(description = "Identifies the details of the threshold that has been crossed.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Entity(name = "AMCrossedThreshInfo") +@Table(name = "AMCrossedThreshInfo") +public class CrossedThresholdInformation extends BaseRootEntity { + @JsonProperty("direction") + private String direction = null; + + @JsonProperty("granularity") + private String granularity = null; + + @JsonProperty("indicatorName") + private String indicatorName = null; + + @JsonProperty("indicatorUnit") + private String indicatorUnit = null; + + @JsonProperty("observedValue") + private String observedValue = null; + + @JsonProperty("thresholdCrossingDescription") + private String thresholdCrossingDescription = null; + + @JsonProperty("threshold") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private ThresholdRef threshold = null; + + public CrossedThresholdInformation direction(String direction) { + this.direction = direction; + return this; + } + + /** + * Indicates the threshold crossing direction: up or down. + * + * @return direction + **/ + @Schema(description = "Indicates the threshold crossing direction: up or down.") + + public String getDirection() { + return direction; + } + + public void setDirection(String direction) { + this.direction = direction; + } + + public CrossedThresholdInformation granularity(String granularity) { + this.granularity = granularity; + return this; + } + + /** + * Indicates the granularity at which the indicator is evaluated for threshold + * crossing + * + * @return granularity + **/ + @Schema(description = "Indicates the granularity at which the indicator is evaluated for threshold crossing") + + public String getGranularity() { + return granularity; + } + + public void setGranularity(String granularity) { + this.granularity = granularity; + } + + public CrossedThresholdInformation indicatorName(String indicatorName) { + this.indicatorName = indicatorName; + return this; + } + + /** + * Indicates the name of indicator which crossed the threshold. + * + * @return indicatorName + **/ + @Schema(description = "Indicates the name of indicator which crossed the threshold.") + + public String getIndicatorName() { + return indicatorName; + } + + public void setIndicatorName(String indicatorName) { + this.indicatorName = indicatorName; + } + + public CrossedThresholdInformation indicatorUnit(String indicatorUnit) { + this.indicatorUnit = indicatorUnit; + return this; + } + + /** + * Indicates the unit of the measurement of the indicator corresponding to the + * threshold that has been crossed. + * + * @return indicatorUnit + **/ + @Schema(description = "Indicates the unit of the measurement of the indicator corresponding to the threshold that has been crossed.") + + public String getIndicatorUnit() { + return indicatorUnit; + } + + public void setIndicatorUnit(String indicatorUnit) { + this.indicatorUnit = indicatorUnit; + } + + public CrossedThresholdInformation observedValue(String observedValue) { + this.observedValue = observedValue; + return this; + } + + /** + * Indicates the value of the indicator which crossed the threshold. + * + * @return observedValue + **/ + @Schema(description = "Indicates the value of the indicator which crossed the threshold.") + + public String getObservedValue() { + return observedValue; + } + + public void setObservedValue(String observedValue) { + this.observedValue = observedValue; + } + + public CrossedThresholdInformation thresholdCrossingDescription(String thresholdCrossingDescription) { + this.thresholdCrossingDescription = thresholdCrossingDescription; + return this; + } + + /** + * Indicates further information on the threshold crossing alarm. + * + * @return thresholdCrossingDescription + **/ + @Schema(description = "Indicates further information on the threshold crossing alarm.") + + public String getThresholdCrossingDescription() { + return thresholdCrossingDescription; + } + + public void setThresholdCrossingDescription(String thresholdCrossingDescription) { + this.thresholdCrossingDescription = thresholdCrossingDescription; + } + + public CrossedThresholdInformation threshold(ThresholdRef threshold) { + this.threshold = threshold; + return this; + } + + /** + * Get threshold + * + * @return threshold + **/ + @Schema(description = "") + + @Valid + public ThresholdRef getThreshold() { + return threshold; + } + + public void setThreshold(ThresholdRef threshold) { + this.threshold = threshold; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CrossedThresholdInformation crossedThresholdInformation = (CrossedThresholdInformation) o; + return Objects.equals(this.direction, crossedThresholdInformation.direction) + && Objects.equals(this.granularity, crossedThresholdInformation.granularity) + && Objects.equals(this.indicatorName, crossedThresholdInformation.indicatorName) + && Objects.equals(this.indicatorUnit, crossedThresholdInformation.indicatorUnit) + && Objects.equals(this.observedValue, crossedThresholdInformation.observedValue) + && Objects.equals(this.thresholdCrossingDescription, + crossedThresholdInformation.thresholdCrossingDescription) + && Objects.equals(this.threshold, crossedThresholdInformation.threshold) + && Objects.equals(this.baseType, crossedThresholdInformation.baseType) + && Objects.equals(this.schemaLocation, crossedThresholdInformation.schemaLocation) + && Objects.equals(this.type, crossedThresholdInformation.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(direction, granularity, indicatorName, indicatorUnit, observedValue, thresholdCrossingDescription, threshold, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CrossedThresholdInformation {\n"); + + sb.append(" direction: ").append(toIndentedString(direction)).append("\n"); + sb.append(" granularity: ").append(toIndentedString(granularity)).append("\n"); + sb.append(" indicatorName: ").append(toIndentedString(indicatorName)).append("\n"); + sb.append(" indicatorUnit: ").append(toIndentedString(indicatorUnit)).append("\n"); + sb.append(" observedValue: ").append(toIndentedString(observedValue)).append("\n"); + sb.append(" thresholdCrossingDescription: ").append(toIndentedString(thresholdCrossingDescription)) + .append("\n"); + sb.append(" threshold: ").append(toIndentedString(threshold)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/EntityRef.java b/src/main/java/org/etsi/osl/tmf/am642/model/EntityRef.java new file mode 100644 index 0000000..021709a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/EntityRef.java @@ -0,0 +1,243 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Entity reference schema to be use for all entityRef class. + */ +@Schema(description = "Entity reference schema to be use for all entityRef class.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class EntityRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public EntityRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EntityRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public EntityRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public EntityRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public EntityRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public EntityRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public EntityRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntityRef entityRef = (EntityRef) o; + return Objects.equals(this.id, entityRef.id) && + Objects.equals(this.href, entityRef.href) && + Objects.equals(this.name, entityRef.name) && + Objects.equals(this.baseType, entityRef.baseType) && + Objects.equals(this.schemaLocation, entityRef.schemaLocation) && + Objects.equals(this.type, entityRef.type) && + Objects.equals(this._atReferredType, entityRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntityRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/Error.java b/src/main/java/org/etsi/osl/tmf/am642/model/Error.java new file mode 100644 index 0000000..5489f48 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/Error.java @@ -0,0 +1,268 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx) + */ +@Schema(description = "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class Error { + @JsonProperty("code") + private String code = null; + + @JsonProperty("reason") + private String reason = null; + + @JsonProperty("message") + private String message = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("referenceError") + private String referenceError = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Error code(String code) { + this.code = code; + return this; + } + + /** + * Application relevant detail, defined in the API or a common list. + * @return code + **/ + @Schema(description = "Application relevant detail, defined in the API or a common list.") + @NotNull + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public Error reason(String reason) { + this.reason = reason; + return this; + } + + /** + * Explanation of the reason for the error which can be shown to a client user. + * @return reason + **/ + @Schema(description = "Explanation of the reason for the error which can be shown to a client user.") + @NotNull + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public Error message(String message) { + this.message = message; + return this; + } + + /** + * More details and corrective actions related to the error which can be shown to a client user. + * @return message + **/ + @Schema(description = "More details and corrective actions related to the error which can be shown to a client user.") + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Error status(String status) { + this.status = status; + return this; + } + + /** + * HTTP Error code extension + * @return status + **/ + @Schema(description = "HTTP Error code extension") + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Error referenceError(String referenceError) { + this.referenceError = referenceError; + return this; + } + + /** + * URI of documentation describing the error. + * @return referenceError + **/ + @Schema(description = "URI of documentation describing the error.") + + public String getReferenceError() { + return referenceError; + } + + public void setReferenceError(String referenceError) { + this.referenceError = referenceError; + } + + public Error baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class. + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class.") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public Error schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Error type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name. + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name.") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Error error = (Error) o; + return Objects.equals(this.code, error.code) && + Objects.equals(this.reason, error.reason) && + Objects.equals(this.message, error.message) && + Objects.equals(this.status, error.status) && + Objects.equals(this.referenceError, error.referenceError) && + Objects.equals(this.baseType, error.baseType) && + Objects.equals(this.schemaLocation, error.schemaLocation) && + Objects.equals(this.type, error.type); + } + + @Override + public int hashCode() { + return Objects.hash(code, reason, message, status, referenceError, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Error {\n"); + + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" referenceError: ").append(toIndentedString(referenceError)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/am642/model/EventSubscription.java new file mode 100644 index 0000000..a0831c2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/EventSubscription.java @@ -0,0 +1,148 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class EventSubscription { + @JsonProperty("id") + private String id = null; + + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscription id(String id) { + this.id = id; + return this; + } + + /** + * Id of the listener + * @return id + **/ + @Schema(description = "Id of the listener") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EventSubscription callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscription query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscription eventSubscription = (EventSubscription) o; + return Objects.equals(this.id, eventSubscription.id) && + Objects.equals(this.callback, eventSubscription.callback) && + Objects.equals(this.query, eventSubscription.query); + } + + @Override + public int hashCode() { + return Objects.hash(id, callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscription {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/EventSubscriptionInput.java b/src/main/java/org/etsi/osl/tmf/am642/model/EventSubscriptionInput.java new file mode 100644 index 0000000..db7a12b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/EventSubscriptionInput.java @@ -0,0 +1,123 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class EventSubscriptionInput { + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscriptionInput callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscriptionInput query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscriptionInput eventSubscriptionInput = (EventSubscriptionInput) o; + return Objects.equals(this.callback, eventSubscriptionInput.callback) && + Objects.equals(this.query, eventSubscriptionInput.query); + } + + @Override + public int hashCode() { + return Objects.hash(callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscriptionInput {\n"); + + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarms.java b/src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarms.java new file mode 100644 index 0000000..6cafa82 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarms.java @@ -0,0 +1,292 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * Task resource for group alarms operation + */ +@Schema(description = "Task resource for group alarms operation") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Entity(name = "AMGroupAlarms") +@Table(name = "AMGroupAlarms") +public class GroupAlarms extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + + + private OffsetDateTime alarmChangedTime = null; + + @JsonProperty("sourceSystemId") + private String sourceSystemId = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("correlatedAlarm") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set correlatedAlarm = new HashSet<>(); + + @JsonProperty("groupedAlarm") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set groupedAlarm = new HashSet<>(); + + @JsonProperty("parentAlarm") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private AlarmRefOrValue parentAlarm = null; + + + /** + * @return the id + */ + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + + + public GroupAlarms alarmChangedTime(OffsetDateTime alarmChangedTime) { + this.alarmChangedTime = alarmChangedTime; + return this; + } + + /** + * Time of the correlation + * + * @return alarmChangedTime + **/ + @Schema(description = "Time of the correlation") + + @Valid + public OffsetDateTime getAlarmChangedTime() { + return alarmChangedTime; + } + + public void setAlarmChangedTime(OffsetDateTime alarmChangedTime) { + this.alarmChangedTime = alarmChangedTime; + } + + @JsonProperty("alarmChangedTime") + public String getAlarmChangedTimeStr() { + if (this.alarmChangedTime != null) { + return this.alarmChangedTime.toString(); + } else { + return null; + } + } + + public GroupAlarms sourceSystemId(String sourceSystemId) { + this.sourceSystemId = sourceSystemId; + return this; + } + + /** + * Source system identifier + * + * @return sourceSystemId + **/ + @Schema(description = "Source system identifier") + + public String getSourceSystemId() { + return sourceSystemId; + } + + public void setSourceSystemId(String sourceSystemId) { + this.sourceSystemId = sourceSystemId; + } + + public GroupAlarms state(String state) { + this.state = state; + return this; + } + + /** + * Current state of the operation task + * + * @return state + **/ + @Schema(description = "Current state of the operation task") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public GroupAlarms correlatedAlarm(Set correlatedAlarm) { + this.correlatedAlarm = correlatedAlarm; + return this; + } + + public GroupAlarms addCorrelatedAlarmItem(AlarmRefOrValue correlatedAlarmItem) { + if (this.correlatedAlarm == null) { + this.correlatedAlarm = new HashSet<>(); + } + this.correlatedAlarm.add(correlatedAlarmItem); + return this; + } + + /** + * Correlated alarms + * + * @return correlatedAlarm + **/ + @Schema(description = "Correlated alarms") + @Valid + public Set getCorrelatedAlarm() { + return correlatedAlarm; + } + + public void setCorrelatedAlarm(Set correlatedAlarm) { + this.correlatedAlarm = correlatedAlarm; + } + + public GroupAlarms groupedAlarm(Set groupedAlarm) { + this.groupedAlarm = groupedAlarm; + return this; + } + + public GroupAlarms addGroupedAlarmItem(AlarmRefOrValue groupedAlarmItem) { + if (this.groupedAlarm == null) { + this.groupedAlarm = new HashSet<>(); + } + this.groupedAlarm.add(groupedAlarmItem); + return this; + } + + /** + * The successfully correlated alarms + * + * @return groupedAlarm + **/ + @Schema(description = "The successfully correlated alarms") + @Valid + public Set getGroupedAlarm() { + return groupedAlarm; + } + + public void setGroupedAlarm(Set groupedAlarm) { + this.groupedAlarm = groupedAlarm; + } + + public GroupAlarms parentAlarm(AlarmRefOrValue parentAlarm) { + this.parentAlarm = parentAlarm; + return this; + } + + /** + * Get parentAlarm + * + * @return parentAlarm + **/ + @Schema(description = "") + + @Valid + public AlarmRefOrValue getParentAlarm() { + return parentAlarm; + } + + public void setParentAlarm(AlarmRefOrValue parentAlarm) { + this.parentAlarm = parentAlarm; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupAlarms groupAlarms = (GroupAlarms) o; + return Objects.equals(this.id, groupAlarms.id) && Objects.equals(this.href, groupAlarms.href) + && Objects.equals(this.alarmChangedTime, groupAlarms.alarmChangedTime) + && Objects.equals(this.sourceSystemId, groupAlarms.sourceSystemId) + && Objects.equals(this.state, groupAlarms.state) + && Objects.equals(this.correlatedAlarm, groupAlarms.correlatedAlarm) + && Objects.equals(this.groupedAlarm, groupAlarms.groupedAlarm) + && Objects.equals(this.parentAlarm, groupAlarms.parentAlarm) + && Objects.equals(this.baseType, groupAlarms.baseType) + && Objects.equals(this.schemaLocation, groupAlarms.schemaLocation) + && Objects.equals(this.type, groupAlarms.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, alarmChangedTime, sourceSystemId, state, correlatedAlarm, groupedAlarm, + parentAlarm, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GroupAlarms {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" alarmChangedTime: ").append(toIndentedString(alarmChangedTime)).append("\n"); + sb.append(" sourceSystemId: ").append(toIndentedString(sourceSystemId)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" correlatedAlarm: ").append(toIndentedString(correlatedAlarm)).append("\n"); + sb.append(" groupedAlarm: ").append(toIndentedString(groupedAlarm)).append("\n"); + sb.append(" parentAlarm: ").append(toIndentedString(parentAlarm)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsCreate.java b/src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsCreate.java new file mode 100644 index 0000000..2bf1a62 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsCreate.java @@ -0,0 +1,316 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * Task resource for group alarms operation Skipped properties: id,href + */ +@Schema(description = "Task resource for group alarms operation Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class GroupAlarmsCreate { + @JsonProperty("alarmChangedTime") + private OffsetDateTime alarmChangedTime = null; + + @JsonProperty("sourceSystemId") + private String sourceSystemId = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("correlatedAlarm") + @Valid + private List correlatedAlarm = new ArrayList<>(); + + @JsonProperty("groupedAlarm") + @Valid + private List groupedAlarm = null; + + @JsonProperty("parentAlarm") + private AlarmRefOrValue parentAlarm = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public GroupAlarmsCreate alarmChangedTime(OffsetDateTime alarmChangedTime) { + this.alarmChangedTime = alarmChangedTime; + return this; + } + + /** + * Time of the correlation + * @return alarmChangedTime + **/ + @Schema(description = "Time of the correlation") + @NotNull + + @Valid + public OffsetDateTime getAlarmChangedTime() { + return alarmChangedTime; + } + + public void setAlarmChangedTime(OffsetDateTime alarmChangedTime) { + this.alarmChangedTime = alarmChangedTime; + } + + public GroupAlarmsCreate sourceSystemId(String sourceSystemId) { + this.sourceSystemId = sourceSystemId; + return this; + } + + /** + * Source system identifier + * @return sourceSystemId + **/ + @Schema(description = "Source system identifier") + @NotNull + + public String getSourceSystemId() { + return sourceSystemId; + } + + public void setSourceSystemId(String sourceSystemId) { + this.sourceSystemId = sourceSystemId; + } + + public GroupAlarmsCreate state(String state) { + this.state = state; + return this; + } + + /** + * Current state of the operation task + * @return state + **/ + @Schema(description = "Current state of the operation task") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public GroupAlarmsCreate correlatedAlarm(List correlatedAlarm) { + this.correlatedAlarm = correlatedAlarm; + return this; + } + + public GroupAlarmsCreate addCorrelatedAlarmItem(AlarmRefOrValue correlatedAlarmItem) { + this.correlatedAlarm.add(correlatedAlarmItem); + return this; + } + + /** + * Correlated alarms + * @return correlatedAlarm + **/ + @Schema(description = "Correlated alarms") + @NotNull + @Valid + @Size(min=1) public List getCorrelatedAlarm() { + return correlatedAlarm; + } + + public void setCorrelatedAlarm(List correlatedAlarm) { + this.correlatedAlarm = correlatedAlarm; + } + + public GroupAlarmsCreate groupedAlarm(List groupedAlarm) { + this.groupedAlarm = groupedAlarm; + return this; + } + + public GroupAlarmsCreate addGroupedAlarmItem(AlarmRefOrValue groupedAlarmItem) { + if (this.groupedAlarm == null) { + this.groupedAlarm = new ArrayList<>(); + } + this.groupedAlarm.add(groupedAlarmItem); + return this; + } + + /** + * The successfully correlated alarms + * @return groupedAlarm + **/ + @Schema(description = "The successfully correlated alarms") + @Valid + public List getGroupedAlarm() { + return groupedAlarm; + } + + public void setGroupedAlarm(List groupedAlarm) { + this.groupedAlarm = groupedAlarm; + } + + public GroupAlarmsCreate parentAlarm(AlarmRefOrValue parentAlarm) { + this.parentAlarm = parentAlarm; + return this; + } + + /** + * Get parentAlarm + * @return parentAlarm + **/ + @Schema(description = "") + @NotNull + + @Valid + public AlarmRefOrValue getParentAlarm() { + return parentAlarm; + } + + public void setParentAlarm(AlarmRefOrValue parentAlarm) { + this.parentAlarm = parentAlarm; + } + + public GroupAlarmsCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public GroupAlarmsCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public GroupAlarmsCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupAlarmsCreate groupAlarmsCreate = (GroupAlarmsCreate) o; + return Objects.equals(this.alarmChangedTime, groupAlarmsCreate.alarmChangedTime) && + Objects.equals(this.sourceSystemId, groupAlarmsCreate.sourceSystemId) && + Objects.equals(this.state, groupAlarmsCreate.state) && + Objects.equals(this.correlatedAlarm, groupAlarmsCreate.correlatedAlarm) && + Objects.equals(this.groupedAlarm, groupAlarmsCreate.groupedAlarm) && + Objects.equals(this.parentAlarm, groupAlarmsCreate.parentAlarm) && + Objects.equals(this.baseType, groupAlarmsCreate.baseType) && + Objects.equals(this.schemaLocation, groupAlarmsCreate.schemaLocation) && + Objects.equals(this.type, groupAlarmsCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(alarmChangedTime, sourceSystemId, state, correlatedAlarm, groupedAlarm, parentAlarm, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GroupAlarmsCreate {\n"); + + sb.append(" alarmChangedTime: ").append(toIndentedString(alarmChangedTime)).append("\n"); + sb.append(" sourceSystemId: ").append(toIndentedString(sourceSystemId)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" correlatedAlarm: ").append(toIndentedString(correlatedAlarm)).append("\n"); + sb.append(" groupedAlarm: ").append(toIndentedString(groupedAlarm)).append("\n"); + sb.append(" parentAlarm: ").append(toIndentedString(parentAlarm)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsCreateEvent.java b/src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsCreateEvent.java new file mode 100644 index 0000000..254c1d2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsCreateEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class GroupAlarmsCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private GroupAlarmsCreateEventPayload event = null; + + public GroupAlarmsCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public GroupAlarmsCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public GroupAlarmsCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public GroupAlarmsCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public GroupAlarmsCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public GroupAlarmsCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public GroupAlarmsCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public GroupAlarmsCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public GroupAlarmsCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public GroupAlarmsCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public GroupAlarmsCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public GroupAlarmsCreateEvent event(GroupAlarmsCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public GroupAlarmsCreateEventPayload getEvent() { + return event; + } + + public void setEvent(GroupAlarmsCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupAlarmsCreateEvent groupAlarmsCreateEvent = (GroupAlarmsCreateEvent) o; + return Objects.equals(this.id, groupAlarmsCreateEvent.id) && + Objects.equals(this.href, groupAlarmsCreateEvent.href) && + Objects.equals(this.eventId, groupAlarmsCreateEvent.eventId) && + Objects.equals(this.eventTime, groupAlarmsCreateEvent.eventTime) && + Objects.equals(this.eventType, groupAlarmsCreateEvent.eventType) && + Objects.equals(this.correlationId, groupAlarmsCreateEvent.correlationId) && + Objects.equals(this.domain, groupAlarmsCreateEvent.domain) && + Objects.equals(this.title, groupAlarmsCreateEvent.title) && + Objects.equals(this.description, groupAlarmsCreateEvent.description) && + Objects.equals(this.priority, groupAlarmsCreateEvent.priority) && + Objects.equals(this.timeOcurred, groupAlarmsCreateEvent.timeOcurred) && + Objects.equals(this.event, groupAlarmsCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GroupAlarmsCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsCreateEventPayload.java new file mode 100644 index 0000000..d867598 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsCreateEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class GroupAlarmsCreateEventPayload { + @JsonProperty("groupAlarms") + private GroupAlarms groupAlarms = null; + + public GroupAlarmsCreateEventPayload groupAlarms(GroupAlarms groupAlarms) { + this.groupAlarms = groupAlarms; + return this; + } + + /** + * Get groupAlarms + * @return groupAlarms + **/ + @Schema(description = "") + + @Valid + public GroupAlarms getGroupAlarms() { + return groupAlarms; + } + + public void setGroupAlarms(GroupAlarms groupAlarms) { + this.groupAlarms = groupAlarms; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupAlarmsCreateEventPayload groupAlarmsCreateEventPayload = (GroupAlarmsCreateEventPayload) o; + return Objects.equals(this.groupAlarms, groupAlarmsCreateEventPayload.groupAlarms); + } + + @Override + public int hashCode() { + return Objects.hash(groupAlarms); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GroupAlarmsCreateEventPayload {\n"); + + sb.append(" groupAlarms: ").append(toIndentedString(groupAlarms)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsStateChangeEvent.java new file mode 100644 index 0000000..bb94460 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsStateChangeEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class GroupAlarmsStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private GroupAlarmsStateChangeEventPayload event = null; + + public GroupAlarmsStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public GroupAlarmsStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public GroupAlarmsStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public GroupAlarmsStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public GroupAlarmsStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public GroupAlarmsStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public GroupAlarmsStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public GroupAlarmsStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public GroupAlarmsStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public GroupAlarmsStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public GroupAlarmsStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public GroupAlarmsStateChangeEvent event(GroupAlarmsStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public GroupAlarmsStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(GroupAlarmsStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupAlarmsStateChangeEvent groupAlarmsStateChangeEvent = (GroupAlarmsStateChangeEvent) o; + return Objects.equals(this.id, groupAlarmsStateChangeEvent.id) && + Objects.equals(this.href, groupAlarmsStateChangeEvent.href) && + Objects.equals(this.eventId, groupAlarmsStateChangeEvent.eventId) && + Objects.equals(this.eventTime, groupAlarmsStateChangeEvent.eventTime) && + Objects.equals(this.eventType, groupAlarmsStateChangeEvent.eventType) && + Objects.equals(this.correlationId, groupAlarmsStateChangeEvent.correlationId) && + Objects.equals(this.domain, groupAlarmsStateChangeEvent.domain) && + Objects.equals(this.title, groupAlarmsStateChangeEvent.title) && + Objects.equals(this.description, groupAlarmsStateChangeEvent.description) && + Objects.equals(this.priority, groupAlarmsStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, groupAlarmsStateChangeEvent.timeOcurred) && + Objects.equals(this.event, groupAlarmsStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GroupAlarmsStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsStateChangeEventPayload.java new file mode 100644 index 0000000..a53e42e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/GroupAlarmsStateChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class GroupAlarmsStateChangeEventPayload { + @JsonProperty("groupAlarms") + private GroupAlarms groupAlarms = null; + + public GroupAlarmsStateChangeEventPayload groupAlarms(GroupAlarms groupAlarms) { + this.groupAlarms = groupAlarms; + return this; + } + + /** + * Get groupAlarms + * @return groupAlarms + **/ + @Schema(description = "") + + @Valid + public GroupAlarms getGroupAlarms() { + return groupAlarms; + } + + public void setGroupAlarms(GroupAlarms groupAlarms) { + this.groupAlarms = groupAlarms; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupAlarmsStateChangeEventPayload groupAlarmsStateChangeEventPayload = (GroupAlarmsStateChangeEventPayload) o; + return Objects.equals(this.groupAlarms, groupAlarmsStateChangeEventPayload.groupAlarms); + } + + @Override + public int hashCode() { + return Objects.hash(groupAlarms); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GroupAlarmsStateChangeEventPayload {\n"); + + sb.append(" groupAlarms: ").append(toIndentedString(groupAlarms)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/PerceivedSeverityType.java b/src/main/java/org/etsi/osl/tmf/am642/model/PerceivedSeverityType.java new file mode 100644 index 0000000..f3d1dcb --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/PerceivedSeverityType.java @@ -0,0 +1,31 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +public enum PerceivedSeverityType { + + critical, + major, + minor, + warning, + indeterminate, + cleared; + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/Place.java b/src/main/java/org/etsi/osl/tmf/am642/model/Place.java new file mode 100644 index 0000000..70688c1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/Place.java @@ -0,0 +1,217 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Place reference. Place defines the places where the products are sold or delivered. + */ +@Schema(description = "Place reference. Place defines the places where the products are sold or delivered.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class Place { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Place id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the place + * @return id + **/ + @Schema(description = "Unique identifier of the place") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Place href(String href) { + this.href = href; + return this; + } + + /** + * Unique reference of the place + * @return href + **/ + @Schema(description = "Unique reference of the place") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public Place name(String name) { + this.name = name; + return this; + } + + /** + * A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home] + * @return name + **/ + @Schema(description = "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Place baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public Place schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Place type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Place place = (Place) o; + return Objects.equals(this.id, place.id) && + Objects.equals(this.href, place.href) && + Objects.equals(this.name, place.name) && + Objects.equals(this.baseType, place.baseType) && + Objects.equals(this.schemaLocation, place.schemaLocation) && + Objects.equals(this.type, place.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Place {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/ProbableCauseType.java b/src/main/java/org/etsi/osl/tmf/am642/model/ProbableCauseType.java new file mode 100644 index 0000000..8cdf8b0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/ProbableCauseType.java @@ -0,0 +1,226 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +public enum ProbableCauseType { + abisBtsInterfaceFailure, + abisTrxInterfaceFailure, + adapterError, + airCompressorFailure, + airConditioningFailure, + airDryerFailure, + ais, + antennaFailure, + applicationSubsystemFailure, + authenticationFailure, + backplaneFailure, + bandwidthReduced, + batteryBreakdown, + batteryChargingFailure, + batteryDischarging, + batteryFailure, + breachOfConfidentiality, + broadcastChannelFailure, + cableTamper, + callEstablishmentError, + callSetUpFailure, + clockSynchronizationProblem, + combinerProblem, + commercialPowerFailure, + communicationsProtocolError, + communicationsSubsystemFailure, + configurationOrCustomizationError, + congestion, + connectionEstablishmentError, + coolingFanFailure, + coolingSystemFailure, + corruptData, + cpuCyclesLimitExceeded, + dataSetOrModemError, + databaseInconsistency, + degradedSignal, + delayedInformation, + demodulationFailure, + denialOfService, + diskFailure, + duplicateInformation, + enclosureDoorOpen, + engineFailure, + equipmentFailure, + equipmentIdentifierDuplication, + excessiveBitErrorRate, + excessiveReceiverTemperature, + excessiveResponseTime, + excessiveRetransmissionRate, + excessiveTransmitterOutputPower, + excessiveTransmitterTemperature, + excessiveVibration, + explosiveGas, + externalEquipmentFailure, + externalIfDeviceProblem, + externalPointFailure, + externalPowerSupplyFailure, + externalTransmissionDeviceFailure, + farEndReceiverFailure, + fileError, + fileSystemCallUnsuccessful, + fire, + fireDetectorFailure, + flood, + framingError, + frequencyHoppingDegraded, + frequencyHoppingFailure, + frequencyRedefinitionFailed, + fuseFailure, + generatorFailure, + heatingVentCoolingSystemProblem, + highHumidity, + highTemperature, + highWind, + humidityUnacceptable, + iceBuildUp, + informationMissing, + informationModificationDetected, + informationOutOfSequence, + inputDeviceError, + inputOutputDeviceError, + inputParameterOutOfRange, + intrusionDetection, + invalidMessageReceived, + invalidParameter, + invalidPointer, + ioDeviceError, + keyExpired, + lanError, + lapdLinkProtocolFailure, + leakDetected, + lineCardProblem, + lineInterfaceFailure, + linkFailure, + localAlarmIndication, + localNodeTransmissionError, + lossOfFrame, + lossOfMultiFrame, + lossOfPointer, + lossOfRealTime, + lossOfRedundancy, + lossOfSignal, + lossOfSynchronisation, + lowBatteryThreshold, + lowCablePressure, + lowFuel, + lowHumidity, + lowTemperatue, + lowWater, + mainsBreakdownWithBatteryBackUp, + mainsBreakdownWithoutBatteryBackUp, + materialSupplyExhausted, + memoryMismatch, + messageNotExpected, + messageNotInitialized, + messageOutOfSequence, + modulationFailure, + multiplexerProblem, + neIdentifierDuplication, + nonRepudiationFailure, + other, + ouputDeviceError, + outOfCpuCycles, + outOfHoursActivity, + outOfMemory, + outOfService, + pathTraceMismatch, + payloadTypeMismatch, + performanceDegraded, + powerProblems, + powerSupplyFailure, + pressureUnacceptable, + proceduralError, + processorProblem, + protectingResourceFailure, + protectionMechanismFailure, + protectionPathFailure, + pumpFailure, + queueSizeExceeded, + realTimeClockFailure, + receiveFailure, + receiverAntennaFault, + receiverFailure, + receiverMulticouplerFailure, + rectifierFailure, + rectifierHighVoltage, + rectifierLowVoltage, + reducedAlarmReporting, + reducedEventReporting, + reducedLoggingCapability, + reducedTransmitterOutputPower, + reinitialized, + remoteAlarmIndication, + remoteAlarmInterface, + remoteNodeTransmissionError, + replaceableUnitMissing, + replaceableUnitProblem, + replaceableUnitTypeMismatch, + resourceAtOrNearingCapacity, + responseTimeExecessive, + retransmissionRateExcessive, + routingFailure, + signalLabelMismatch, + signalQualityEvaluationFailure, + smoke, + softwareDownloadFailure, + softwareEnvironmentProblem, + softwareError, + softwareProgramAbnormallyTerminated, + softwareProgramError, + ss7ProtocolFailure, + storageCapacityProblem, + synchronizationSourceMismatch, + systemCallUnsuccessful, + systemResourcesOverload, + temperatureUnacceptable, + terminalProblem, + thresholdCrossed, + timeoutExpired, + timeslotHardwareFailure, + timingProblem, + toxicGas, + toxicLeakDetected, + transceiverFailure, + transcoderOrRateAdapterProblem, + transcoderProblem, + transmissionError, + transmitFailure, + transmiterFailure, + transmitterAntennaFailure, + transmitterAntennaNotAdjusted, + transmitterFailure, + transmitterLowVoltageOrCurrent, + transmitterOffFrequency, + trunkCardProblem, + unauthorizedAccessAttempt, + unavailable, + underlyingResourceUnavailable, + unexpectedInformation, + variableOutOfRange, + ventilationsSystemFailure, + versionMismatch, + watchdogTimerExpired +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/RelatedPlaceRefOrValue.java b/src/main/java/org/etsi/osl/tmf/am642/model/RelatedPlaceRefOrValue.java new file mode 100644 index 0000000..5ff3ac4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/RelatedPlaceRefOrValue.java @@ -0,0 +1,166 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; +import jakarta.validation.constraints.NotNull; + +/** + * Related Entity reference. A related place defines a place described by + * reference or by value linked to a specific entity. The polymorphic + * attributes @type, @schemaLocation & @referredType are related to the + * place entity and not the RelatedPlaceRefOrValue class itself + */ +@Schema(description = "Related Entity reference. A related place defines a place described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the place entity and not the RelatedPlaceRefOrValue class itself") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Entity(name = "AMRelPlaceRefOrVal") +@Table(name = "AMRelPlaceRefOrVal") +public class RelatedPlaceRefOrValue extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + + @JsonProperty("role") + private String role = null; + + + @JsonProperty("@referredType") + private String _atReferredType = null; + + /** + * @return the id + */ + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + public RelatedPlaceRefOrValue href(String href) { + this.href = href; + return this; + } + + + + public RelatedPlaceRefOrValue role(String role) { + this.role = role; + return this; + } + + /** + * Get role + * + * @return role + **/ + @Schema(description = "") + @NotNull + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + + + public RelatedPlaceRefOrValue _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RelatedPlaceRefOrValue relatedPlaceRefOrValue = (RelatedPlaceRefOrValue) o; + return Objects.equals(this.id, relatedPlaceRefOrValue.id) + && Objects.equals(this.href, relatedPlaceRefOrValue.href) + && Objects.equals(this.name, relatedPlaceRefOrValue.name) + && Objects.equals(this.role, relatedPlaceRefOrValue.role) + && Objects.equals(this.baseType, relatedPlaceRefOrValue.baseType) + && Objects.equals(this.schemaLocation, relatedPlaceRefOrValue.schemaLocation) + && Objects.equals(this.type, relatedPlaceRefOrValue.type) + && Objects.equals(this._atReferredType, relatedPlaceRefOrValue._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, role, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RelatedPlaceRefOrValue {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/ThresholdRef.java b/src/main/java/org/etsi/osl/tmf/am642/model/ThresholdRef.java new file mode 100644 index 0000000..49cd705 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/ThresholdRef.java @@ -0,0 +1,126 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; + +/** + * ThresholdRef + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Entity(name = "AMThresholdRef") +@Table(name = "AMThresholdRef") +public class ThresholdRef extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + + @JsonProperty("@referredType") + private String _atReferredType = null; + + /** + * @return the id + */ + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + + + public ThresholdRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ThresholdRef thresholdRef = (ThresholdRef) o; + return Objects.equals(this.id, thresholdRef.id) && Objects.equals(this.href, thresholdRef.href) + && Objects.equals(this.name, thresholdRef.name) + && Objects.equals(this.baseType, thresholdRef.baseType) + && Objects.equals(this.schemaLocation, thresholdRef.schemaLocation) + && Objects.equals(this.type, thresholdRef.type) + && Objects.equals(this._atReferredType, thresholdRef._atReferredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, baseType, schemaLocation, type, _atReferredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ThresholdRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarms.java b/src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarms.java new file mode 100644 index 0000000..e5c452d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarms.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * Task resource for unacknowledge alarms operation + */ +@Schema(description = "Task resource for unacknowledge alarms operation") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Entity(name = "AMUnAckAlarms") +@Table(name = "AMUnAckAlarms") +public class UnAckAlarms extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("ackSystemId") + private String ackSystemId = null; + + private OffsetDateTime ackTime = null; + + @JsonProperty("ackUserId") + private String ackUserId = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("alarmPattern") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set alarmPattern = new HashSet<>(); + + @JsonProperty("unAckedAlarm") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set unAckedAlarm = new HashSet<>(); + + /** + * @return the id + */ + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + public UnAckAlarms href(String href) { + this.href = href; + return this; + } + + /** + * A reference to the task + * + * @return href + **/ + @Schema(description = "A reference to the task") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public UnAckAlarms ackSystemId(String ackSystemId) { + this.ackSystemId = ackSystemId; + return this; + } + + /** + * Name of the unacknowledging system + * + * @return ackSystemId + **/ + @Schema(description = "Name of the unacknowledging system") + + public String getAckSystemId() { + return ackSystemId; + } + + public void setAckSystemId(String ackSystemId) { + this.ackSystemId = ackSystemId; + } + + public UnAckAlarms ackTime(OffsetDateTime ackTime) { + this.ackTime = ackTime; + return this; + } + + /** + * Time of the unacknowledgement + * + * @return ackTime + **/ + @Schema(description = "Time of the unacknowledgement") + + @Valid + public OffsetDateTime getAckTime() { + return ackTime; + } + + public void setAckTime(OffsetDateTime ackTime) { + this.ackTime = ackTime; + } + + @JsonProperty("ackTime") + public String getAckTimeStr() { + if (this.ackTime != null) { + return this.ackTime.toString(); + } else { + return null; + } + } + + public UnAckAlarms ackUserId(String ackUserId) { + this.ackUserId = ackUserId; + return this; + } + + /** + * Name of the unacknowledging user + * + * @return ackUserId + **/ + @Schema(description = "Name of the unacknowledging user") + + public String getAckUserId() { + return ackUserId; + } + + public void setAckUserId(String ackUserId) { + this.ackUserId = ackUserId; + } + + public UnAckAlarms state(String state) { + this.state = state; + return this; + } + + /** + * Current state of the operation task + * + * @return state + **/ + @Schema(description = "Current state of the operation task") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public UnAckAlarms alarmPattern(Set alarmPattern) { + this.alarmPattern = alarmPattern; + return this; + } + + public UnAckAlarms addAlarmPatternItem(Alarm alarmPatternItem) { + if (this.alarmPattern == null) { + this.alarmPattern = new HashSet<>(); + } + this.alarmPattern.add(alarmPatternItem); + return this; + } + + /** + * Alarm patterns to match target alarms. An alarm will match if all of the + * sttributes in any of the patterns compare equal to those attributes of the + * alarm. + * + * @return alarmPattern + **/ + @Schema(description = "Alarm patterns to match target alarms. An alarm will match if all of the sttributes in any of the patterns compare equal to those attributes of the alarm.") + @Valid + public Set getAlarmPattern() { + return alarmPattern; + } + + public void setAlarmPattern(Set alarmPattern) { + this.alarmPattern = alarmPattern; + } + + public UnAckAlarms unAckedAlarm(Set unAckedAlarm) { + this.unAckedAlarm = unAckedAlarm; + return this; + } + + public UnAckAlarms addUnAckedAlarmItem(AlarmRefOrValue unAckedAlarmItem) { + if (this.unAckedAlarm == null) { + this.unAckedAlarm = new HashSet<>(); + } + this.unAckedAlarm.add(unAckedAlarmItem); + return this; + } + + /** + * The successfully unacknowledged alarms + * + * @return unAckedAlarm + **/ + @Schema(description = "The successfully unacknowledged alarms") + @Valid + public Set getUnAckedAlarm() { + return unAckedAlarm; + } + + public void setUnAckedAlarm(Set unAckedAlarm) { + this.unAckedAlarm = unAckedAlarm; + } + + public UnAckAlarms baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public UnAckAlarms schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public UnAckAlarms type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UnAckAlarms unAckAlarms = (UnAckAlarms) o; + return Objects.equals(this.id, unAckAlarms.id) && Objects.equals(this.href, unAckAlarms.href) + && Objects.equals(this.ackSystemId, unAckAlarms.ackSystemId) + && Objects.equals(this.ackTime, unAckAlarms.ackTime) + && Objects.equals(this.ackUserId, unAckAlarms.ackUserId) + && Objects.equals(this.state, unAckAlarms.state) + && Objects.equals(this.alarmPattern, unAckAlarms.alarmPattern) + && Objects.equals(this.unAckedAlarm, unAckAlarms.unAckedAlarm) + && Objects.equals(this.baseType, unAckAlarms.baseType) + && Objects.equals(this.schemaLocation, unAckAlarms.schemaLocation) + && Objects.equals(this.type, unAckAlarms.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, ackSystemId, ackTime, ackUserId, state, alarmPattern, unAckedAlarm, baseType, + schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UnAckAlarms {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" ackSystemId: ").append(toIndentedString(ackSystemId)).append("\n"); + sb.append(" ackTime: ").append(toIndentedString(ackTime)).append("\n"); + sb.append(" ackUserId: ").append(toIndentedString(ackUserId)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" alarmPattern: ").append(toIndentedString(alarmPattern)).append("\n"); + sb.append(" unAckedAlarm: ").append(toIndentedString(unAckedAlarm)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsCreate.java b/src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsCreate.java new file mode 100644 index 0000000..22a89b7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsCreate.java @@ -0,0 +1,314 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * Task resource for unacknowledge alarms operation Skipped properties: id,href + */ +@Schema(description = "Task resource for unacknowledge alarms operation Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class UnAckAlarmsCreate { + @JsonProperty("ackSystemId") + private String ackSystemId = null; + + @JsonProperty("ackTime") + private OffsetDateTime ackTime = null; + + @JsonProperty("ackUserId") + private String ackUserId = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("alarmPattern") + @Valid + private List alarmPattern = new ArrayList<>(); + + @JsonProperty("unAckedAlarm") + @Valid + private List unAckedAlarm = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public UnAckAlarmsCreate ackSystemId(String ackSystemId) { + this.ackSystemId = ackSystemId; + return this; + } + + /** + * Name of the unacknowledging system + * @return ackSystemId + **/ + @Schema(description = "Name of the unacknowledging system") + @NotNull + + public String getAckSystemId() { + return ackSystemId; + } + + public void setAckSystemId(String ackSystemId) { + this.ackSystemId = ackSystemId; + } + + public UnAckAlarmsCreate ackTime(OffsetDateTime ackTime) { + this.ackTime = ackTime; + return this; + } + + /** + * Time of the unacknowledgement + * @return ackTime + **/ + @Schema(description = "Time of the unacknowledgement") + + @Valid + public OffsetDateTime getAckTime() { + return ackTime; + } + + public void setAckTime(OffsetDateTime ackTime) { + this.ackTime = ackTime; + } + + public UnAckAlarmsCreate ackUserId(String ackUserId) { + this.ackUserId = ackUserId; + return this; + } + + /** + * Name of the unacknowledging user + * @return ackUserId + **/ + @Schema(description = "Name of the unacknowledging user") + @NotNull + + public String getAckUserId() { + return ackUserId; + } + + public void setAckUserId(String ackUserId) { + this.ackUserId = ackUserId; + } + + public UnAckAlarmsCreate state(String state) { + this.state = state; + return this; + } + + /** + * Current state of the operation task + * @return state + **/ + @Schema(description = "Current state of the operation task") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public UnAckAlarmsCreate alarmPattern(List alarmPattern) { + this.alarmPattern = alarmPattern; + return this; + } + + public UnAckAlarmsCreate addAlarmPatternItem(Alarm alarmPatternItem) { + this.alarmPattern.add(alarmPatternItem); + return this; + } + + /** + * Alarm patterns to match target alarms. An alarm will match if all of the sttributes in any of the patterns compare equal to those attributes of the alarm. + * @return alarmPattern + **/ + @Schema(description = "Alarm patterns to match target alarms. An alarm will match if all of the sttributes in any of the patterns compare equal to those attributes of the alarm.") + @NotNull + @Valid + @Size(min=1) public List getAlarmPattern() { + return alarmPattern; + } + + public void setAlarmPattern(List alarmPattern) { + this.alarmPattern = alarmPattern; + } + + public UnAckAlarmsCreate unAckedAlarm(List unAckedAlarm) { + this.unAckedAlarm = unAckedAlarm; + return this; + } + + public UnAckAlarmsCreate addUnAckedAlarmItem(AlarmRefOrValue unAckedAlarmItem) { + if (this.unAckedAlarm == null) { + this.unAckedAlarm = new ArrayList<>(); + } + this.unAckedAlarm.add(unAckedAlarmItem); + return this; + } + + /** + * The successfully unacknowledged alarms + * @return unAckedAlarm + **/ + @Schema(description = "The successfully unacknowledged alarms") + @Valid + public List getUnAckedAlarm() { + return unAckedAlarm; + } + + public void setUnAckedAlarm(List unAckedAlarm) { + this.unAckedAlarm = unAckedAlarm; + } + + public UnAckAlarmsCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public UnAckAlarmsCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public UnAckAlarmsCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UnAckAlarmsCreate unAckAlarmsCreate = (UnAckAlarmsCreate) o; + return Objects.equals(this.ackSystemId, unAckAlarmsCreate.ackSystemId) && + Objects.equals(this.ackTime, unAckAlarmsCreate.ackTime) && + Objects.equals(this.ackUserId, unAckAlarmsCreate.ackUserId) && + Objects.equals(this.state, unAckAlarmsCreate.state) && + Objects.equals(this.alarmPattern, unAckAlarmsCreate.alarmPattern) && + Objects.equals(this.unAckedAlarm, unAckAlarmsCreate.unAckedAlarm) && + Objects.equals(this.baseType, unAckAlarmsCreate.baseType) && + Objects.equals(this.schemaLocation, unAckAlarmsCreate.schemaLocation) && + Objects.equals(this.type, unAckAlarmsCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(ackSystemId, ackTime, ackUserId, state, alarmPattern, unAckedAlarm, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UnAckAlarmsCreate {\n"); + + sb.append(" ackSystemId: ").append(toIndentedString(ackSystemId)).append("\n"); + sb.append(" ackTime: ").append(toIndentedString(ackTime)).append("\n"); + sb.append(" ackUserId: ").append(toIndentedString(ackUserId)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" alarmPattern: ").append(toIndentedString(alarmPattern)).append("\n"); + sb.append(" unAckedAlarm: ").append(toIndentedString(unAckedAlarm)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsCreateEvent.java b/src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsCreateEvent.java new file mode 100644 index 0000000..05f6f3a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsCreateEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class UnAckAlarmsCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private UnAckAlarmsCreateEventPayload event = null; + + public UnAckAlarmsCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public UnAckAlarmsCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public UnAckAlarmsCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public UnAckAlarmsCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public UnAckAlarmsCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public UnAckAlarmsCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public UnAckAlarmsCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public UnAckAlarmsCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public UnAckAlarmsCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public UnAckAlarmsCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public UnAckAlarmsCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public UnAckAlarmsCreateEvent event(UnAckAlarmsCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public UnAckAlarmsCreateEventPayload getEvent() { + return event; + } + + public void setEvent(UnAckAlarmsCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UnAckAlarmsCreateEvent unAckAlarmsCreateEvent = (UnAckAlarmsCreateEvent) o; + return Objects.equals(this.id, unAckAlarmsCreateEvent.id) && + Objects.equals(this.href, unAckAlarmsCreateEvent.href) && + Objects.equals(this.eventId, unAckAlarmsCreateEvent.eventId) && + Objects.equals(this.eventTime, unAckAlarmsCreateEvent.eventTime) && + Objects.equals(this.eventType, unAckAlarmsCreateEvent.eventType) && + Objects.equals(this.correlationId, unAckAlarmsCreateEvent.correlationId) && + Objects.equals(this.domain, unAckAlarmsCreateEvent.domain) && + Objects.equals(this.title, unAckAlarmsCreateEvent.title) && + Objects.equals(this.description, unAckAlarmsCreateEvent.description) && + Objects.equals(this.priority, unAckAlarmsCreateEvent.priority) && + Objects.equals(this.timeOcurred, unAckAlarmsCreateEvent.timeOcurred) && + Objects.equals(this.event, unAckAlarmsCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UnAckAlarmsCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsCreateEventPayload.java new file mode 100644 index 0000000..6bd2eab --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsCreateEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class UnAckAlarmsCreateEventPayload { + @JsonProperty("unAckAlarms") + private UnAckAlarms unAckAlarms = null; + + public UnAckAlarmsCreateEventPayload unAckAlarms(UnAckAlarms unAckAlarms) { + this.unAckAlarms = unAckAlarms; + return this; + } + + /** + * Get unAckAlarms + * @return unAckAlarms + **/ + @Schema(description = "") + + @Valid + public UnAckAlarms getUnAckAlarms() { + return unAckAlarms; + } + + public void setUnAckAlarms(UnAckAlarms unAckAlarms) { + this.unAckAlarms = unAckAlarms; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UnAckAlarmsCreateEventPayload unAckAlarmsCreateEventPayload = (UnAckAlarmsCreateEventPayload) o; + return Objects.equals(this.unAckAlarms, unAckAlarmsCreateEventPayload.unAckAlarms); + } + + @Override + public int hashCode() { + return Objects.hash(unAckAlarms); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UnAckAlarmsCreateEventPayload {\n"); + + sb.append(" unAckAlarms: ").append(toIndentedString(unAckAlarms)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsStateChangeEvent.java new file mode 100644 index 0000000..2b9a83b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsStateChangeEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class UnAckAlarmsStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private UnAckAlarmsStateChangeEventPayload event = null; + + public UnAckAlarmsStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public UnAckAlarmsStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public UnAckAlarmsStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public UnAckAlarmsStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public UnAckAlarmsStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public UnAckAlarmsStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public UnAckAlarmsStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public UnAckAlarmsStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public UnAckAlarmsStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public UnAckAlarmsStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public UnAckAlarmsStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public UnAckAlarmsStateChangeEvent event(UnAckAlarmsStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public UnAckAlarmsStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(UnAckAlarmsStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UnAckAlarmsStateChangeEvent unAckAlarmsStateChangeEvent = (UnAckAlarmsStateChangeEvent) o; + return Objects.equals(this.id, unAckAlarmsStateChangeEvent.id) && + Objects.equals(this.href, unAckAlarmsStateChangeEvent.href) && + Objects.equals(this.eventId, unAckAlarmsStateChangeEvent.eventId) && + Objects.equals(this.eventTime, unAckAlarmsStateChangeEvent.eventTime) && + Objects.equals(this.eventType, unAckAlarmsStateChangeEvent.eventType) && + Objects.equals(this.correlationId, unAckAlarmsStateChangeEvent.correlationId) && + Objects.equals(this.domain, unAckAlarmsStateChangeEvent.domain) && + Objects.equals(this.title, unAckAlarmsStateChangeEvent.title) && + Objects.equals(this.description, unAckAlarmsStateChangeEvent.description) && + Objects.equals(this.priority, unAckAlarmsStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, unAckAlarmsStateChangeEvent.timeOcurred) && + Objects.equals(this.event, unAckAlarmsStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UnAckAlarmsStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsStateChangeEventPayload.java new file mode 100644 index 0000000..13707f0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/UnAckAlarmsStateChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class UnAckAlarmsStateChangeEventPayload { + @JsonProperty("unAckAlarms") + private UnAckAlarms unAckAlarms = null; + + public UnAckAlarmsStateChangeEventPayload unAckAlarms(UnAckAlarms unAckAlarms) { + this.unAckAlarms = unAckAlarms; + return this; + } + + /** + * Get unAckAlarms + * @return unAckAlarms + **/ + @Schema(description = "") + + @Valid + public UnAckAlarms getUnAckAlarms() { + return unAckAlarms; + } + + public void setUnAckAlarms(UnAckAlarms unAckAlarms) { + this.unAckAlarms = unAckAlarms; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UnAckAlarmsStateChangeEventPayload unAckAlarmsStateChangeEventPayload = (UnAckAlarmsStateChangeEventPayload) o; + return Objects.equals(this.unAckAlarms, unAckAlarmsStateChangeEventPayload.unAckAlarms); + } + + @Override + public int hashCode() { + return Objects.hash(unAckAlarms); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UnAckAlarmsStateChangeEventPayload {\n"); + + sb.append(" unAckAlarms: ").append(toIndentedString(unAckAlarms)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarms.java b/src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarms.java new file mode 100644 index 0000000..db69028 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarms.java @@ -0,0 +1,359 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * Task resource for ungroup alarms operation + */ +@Schema(description = "Task resource for ungroup alarms operation") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +@Entity(name = "AMUnGroupAlarms") +@Table(name = "AMUnGroupAlarms") +public class UnGroupAlarms extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("alarmChangedTime") + private OffsetDateTime alarmChangedTime = null; + + @JsonProperty("sourceSystemId") + private String sourceSystemId = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("correlatedAlarm") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set correlatedAlarm = null; + + @JsonProperty("parentAlarm") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private AlarmRefOrValue parentAlarm = null; + + @JsonProperty("unGroupedAlarm") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set unGroupedAlarm = null; + + /** + * @return the id + */ + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + public UnGroupAlarms href(String href) { + this.href = href; + return this; + } + + /** + * A reference to the task + * + * @return href + **/ + @Schema(description = "A reference to the task") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public UnGroupAlarms alarmChangedTime(OffsetDateTime alarmChangedTime) { + this.alarmChangedTime = alarmChangedTime; + return this; + } + + /** + * Time of the uncorrelation + * + * @return alarmChangedTime + **/ + @Schema(description = "Time of the uncorrelation") + + @Valid + public OffsetDateTime getAlarmChangedTime() { + return alarmChangedTime; + } + + public void setAlarmChangedTime(OffsetDateTime alarmChangedTime) { + this.alarmChangedTime = alarmChangedTime; + } + + public UnGroupAlarms sourceSystemId(String sourceSystemId) { + this.sourceSystemId = sourceSystemId; + return this; + } + + /** + * Source system identifier + * + * @return sourceSystemId + **/ + @Schema(description = "Source system identifier") + + public String getSourceSystemId() { + return sourceSystemId; + } + + public void setSourceSystemId(String sourceSystemId) { + this.sourceSystemId = sourceSystemId; + } + + public UnGroupAlarms state(String state) { + this.state = state; + return this; + } + + /** + * Current state of the operation task + * + * @return state + **/ + @Schema(description = "Current state of the operation task") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public UnGroupAlarms correlatedAlarm(Set correlatedAlarm) { + this.correlatedAlarm = correlatedAlarm; + return this; + } + + public UnGroupAlarms addCorrelatedAlarmItem(AlarmRefOrValue correlatedAlarmItem) { + if (this.correlatedAlarm == null) { + this.correlatedAlarm = new HashSet<>(); + } + this.correlatedAlarm.add(correlatedAlarmItem); + return this; + } + + /** + * Correlated alarms + * + * @return correlatedAlarm + **/ + @Schema(description = "Correlated alarms") + @Valid + public Set getCorrelatedAlarm() { + return correlatedAlarm; + } + + public void setCorrelatedAlarm(Set correlatedAlarm) { + this.correlatedAlarm = correlatedAlarm; + } + + public UnGroupAlarms parentAlarm(AlarmRefOrValue parentAlarm) { + this.parentAlarm = parentAlarm; + return this; + } + + /** + * Get parentAlarm + * + * @return parentAlarm + **/ + @Schema(description = "") + + @Valid + public AlarmRefOrValue getParentAlarm() { + return parentAlarm; + } + + public void setParentAlarm(AlarmRefOrValue parentAlarm) { + this.parentAlarm = parentAlarm; + } + + public UnGroupAlarms unGroupedAlarm(Set unGroupedAlarm) { + this.unGroupedAlarm = unGroupedAlarm; + return this; + } + + public UnGroupAlarms addUnGroupedAlarmItem(AlarmRefOrValue unGroupedAlarmItem) { + if (this.unGroupedAlarm == null) { + this.unGroupedAlarm = new HashSet<>(); + } + this.unGroupedAlarm.add(unGroupedAlarmItem); + return this; + } + + /** + * The successfully uncorrelated alarms + * + * @return unGroupedAlarm + **/ + @Schema(description = "The successfully uncorrelated alarms") + @Valid + public Set getUnGroupedAlarm() { + return unGroupedAlarm; + } + + public void setUnGroupedAlarm(Set unGroupedAlarm) { + this.unGroupedAlarm = unGroupedAlarm; + } + + public UnGroupAlarms baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public UnGroupAlarms schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public UnGroupAlarms type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UnGroupAlarms unGroupAlarms = (UnGroupAlarms) o; + return Objects.equals(this.id, unGroupAlarms.id) && Objects.equals(this.href, unGroupAlarms.href) + && Objects.equals(this.alarmChangedTime, unGroupAlarms.alarmChangedTime) + && Objects.equals(this.sourceSystemId, unGroupAlarms.sourceSystemId) + && Objects.equals(this.state, unGroupAlarms.state) + && Objects.equals(this.correlatedAlarm, unGroupAlarms.correlatedAlarm) + && Objects.equals(this.parentAlarm, unGroupAlarms.parentAlarm) + && Objects.equals(this.unGroupedAlarm, unGroupAlarms.unGroupedAlarm) + && Objects.equals(this.baseType, unGroupAlarms.baseType) + && Objects.equals(this.schemaLocation, unGroupAlarms.schemaLocation) + && Objects.equals(this.type, unGroupAlarms.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, alarmChangedTime, sourceSystemId, state, correlatedAlarm, parentAlarm, + unGroupedAlarm, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UnGroupAlarms {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" alarmChangedTime: ").append(toIndentedString(alarmChangedTime)).append("\n"); + sb.append(" sourceSystemId: ").append(toIndentedString(sourceSystemId)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" correlatedAlarm: ").append(toIndentedString(correlatedAlarm)).append("\n"); + sb.append(" parentAlarm: ").append(toIndentedString(parentAlarm)).append("\n"); + sb.append(" unGroupedAlarm: ").append(toIndentedString(unGroupedAlarm)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsCreate.java b/src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsCreate.java new file mode 100644 index 0000000..6415c71 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsCreate.java @@ -0,0 +1,316 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * Task resource for ungroup alarms operation Skipped properties: id,href + */ +@Schema(description = "Task resource for ungroup alarms operation Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class UnGroupAlarmsCreate { + @JsonProperty("alarmChangedTime") + private OffsetDateTime alarmChangedTime = null; + + @JsonProperty("sourceSystemId") + private String sourceSystemId = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("correlatedAlarm") + @Valid + private List correlatedAlarm = new ArrayList<>(); + + @JsonProperty("parentAlarm") + private AlarmRefOrValue parentAlarm = null; + + @JsonProperty("unGroupedAlarm") + @Valid + private List unGroupedAlarm = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public UnGroupAlarmsCreate alarmChangedTime(OffsetDateTime alarmChangedTime) { + this.alarmChangedTime = alarmChangedTime; + return this; + } + + /** + * Time of the uncorrelation + * @return alarmChangedTime + **/ + @Schema(description = "Time of the uncorrelation") + @NotNull + + @Valid + public OffsetDateTime getAlarmChangedTime() { + return alarmChangedTime; + } + + public void setAlarmChangedTime(OffsetDateTime alarmChangedTime) { + this.alarmChangedTime = alarmChangedTime; + } + + public UnGroupAlarmsCreate sourceSystemId(String sourceSystemId) { + this.sourceSystemId = sourceSystemId; + return this; + } + + /** + * Source system identifier + * @return sourceSystemId + **/ + @Schema(description = "Source system identifier") + @NotNull + + public String getSourceSystemId() { + return sourceSystemId; + } + + public void setSourceSystemId(String sourceSystemId) { + this.sourceSystemId = sourceSystemId; + } + + public UnGroupAlarmsCreate state(String state) { + this.state = state; + return this; + } + + /** + * Current state of the operation task + * @return state + **/ + @Schema(description = "Current state of the operation task") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public UnGroupAlarmsCreate correlatedAlarm(List correlatedAlarm) { + this.correlatedAlarm = correlatedAlarm; + return this; + } + + public UnGroupAlarmsCreate addCorrelatedAlarmItem(AlarmRefOrValue correlatedAlarmItem) { + this.correlatedAlarm.add(correlatedAlarmItem); + return this; + } + + /** + * Correlated alarms + * @return correlatedAlarm + **/ + @Schema(description = "Correlated alarms") + @NotNull + @Valid + @Size(min=1) public List getCorrelatedAlarm() { + return correlatedAlarm; + } + + public void setCorrelatedAlarm(List correlatedAlarm) { + this.correlatedAlarm = correlatedAlarm; + } + + public UnGroupAlarmsCreate parentAlarm(AlarmRefOrValue parentAlarm) { + this.parentAlarm = parentAlarm; + return this; + } + + /** + * Get parentAlarm + * @return parentAlarm + **/ + @Schema(description = "") + @NotNull + + @Valid + public AlarmRefOrValue getParentAlarm() { + return parentAlarm; + } + + public void setParentAlarm(AlarmRefOrValue parentAlarm) { + this.parentAlarm = parentAlarm; + } + + public UnGroupAlarmsCreate unGroupedAlarm(List unGroupedAlarm) { + this.unGroupedAlarm = unGroupedAlarm; + return this; + } + + public UnGroupAlarmsCreate addUnGroupedAlarmItem(AlarmRefOrValue unGroupedAlarmItem) { + if (this.unGroupedAlarm == null) { + this.unGroupedAlarm = new ArrayList<>(); + } + this.unGroupedAlarm.add(unGroupedAlarmItem); + return this; + } + + /** + * The successfully uncorrelated alarms + * @return unGroupedAlarm + **/ + @Schema(description = "The successfully uncorrelated alarms") + @Valid + public List getUnGroupedAlarm() { + return unGroupedAlarm; + } + + public void setUnGroupedAlarm(List unGroupedAlarm) { + this.unGroupedAlarm = unGroupedAlarm; + } + + public UnGroupAlarmsCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public UnGroupAlarmsCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public UnGroupAlarmsCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UnGroupAlarmsCreate unGroupAlarmsCreate = (UnGroupAlarmsCreate) o; + return Objects.equals(this.alarmChangedTime, unGroupAlarmsCreate.alarmChangedTime) && + Objects.equals(this.sourceSystemId, unGroupAlarmsCreate.sourceSystemId) && + Objects.equals(this.state, unGroupAlarmsCreate.state) && + Objects.equals(this.correlatedAlarm, unGroupAlarmsCreate.correlatedAlarm) && + Objects.equals(this.parentAlarm, unGroupAlarmsCreate.parentAlarm) && + Objects.equals(this.unGroupedAlarm, unGroupAlarmsCreate.unGroupedAlarm) && + Objects.equals(this.baseType, unGroupAlarmsCreate.baseType) && + Objects.equals(this.schemaLocation, unGroupAlarmsCreate.schemaLocation) && + Objects.equals(this.type, unGroupAlarmsCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(alarmChangedTime, sourceSystemId, state, correlatedAlarm, parentAlarm, unGroupedAlarm, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UnGroupAlarmsCreate {\n"); + + sb.append(" alarmChangedTime: ").append(toIndentedString(alarmChangedTime)).append("\n"); + sb.append(" sourceSystemId: ").append(toIndentedString(sourceSystemId)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" correlatedAlarm: ").append(toIndentedString(correlatedAlarm)).append("\n"); + sb.append(" parentAlarm: ").append(toIndentedString(parentAlarm)).append("\n"); + sb.append(" unGroupedAlarm: ").append(toIndentedString(unGroupedAlarm)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsCreateEvent.java b/src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsCreateEvent.java new file mode 100644 index 0000000..6326c23 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsCreateEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class UnGroupAlarmsCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private UnGroupAlarmsCreateEventPayload event = null; + + public UnGroupAlarmsCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public UnGroupAlarmsCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public UnGroupAlarmsCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public UnGroupAlarmsCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public UnGroupAlarmsCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public UnGroupAlarmsCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public UnGroupAlarmsCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public UnGroupAlarmsCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public UnGroupAlarmsCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public UnGroupAlarmsCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public UnGroupAlarmsCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public UnGroupAlarmsCreateEvent event(UnGroupAlarmsCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public UnGroupAlarmsCreateEventPayload getEvent() { + return event; + } + + public void setEvent(UnGroupAlarmsCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UnGroupAlarmsCreateEvent unGroupAlarmsCreateEvent = (UnGroupAlarmsCreateEvent) o; + return Objects.equals(this.id, unGroupAlarmsCreateEvent.id) && + Objects.equals(this.href, unGroupAlarmsCreateEvent.href) && + Objects.equals(this.eventId, unGroupAlarmsCreateEvent.eventId) && + Objects.equals(this.eventTime, unGroupAlarmsCreateEvent.eventTime) && + Objects.equals(this.eventType, unGroupAlarmsCreateEvent.eventType) && + Objects.equals(this.correlationId, unGroupAlarmsCreateEvent.correlationId) && + Objects.equals(this.domain, unGroupAlarmsCreateEvent.domain) && + Objects.equals(this.title, unGroupAlarmsCreateEvent.title) && + Objects.equals(this.description, unGroupAlarmsCreateEvent.description) && + Objects.equals(this.priority, unGroupAlarmsCreateEvent.priority) && + Objects.equals(this.timeOcurred, unGroupAlarmsCreateEvent.timeOcurred) && + Objects.equals(this.event, unGroupAlarmsCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UnGroupAlarmsCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsCreateEventPayload.java new file mode 100644 index 0000000..6f217ba --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsCreateEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class UnGroupAlarmsCreateEventPayload { + @JsonProperty("unGroupAlarms") + private UnGroupAlarms unGroupAlarms = null; + + public UnGroupAlarmsCreateEventPayload unGroupAlarms(UnGroupAlarms unGroupAlarms) { + this.unGroupAlarms = unGroupAlarms; + return this; + } + + /** + * Get unGroupAlarms + * @return unGroupAlarms + **/ + @Schema(description = "") + + @Valid + public UnGroupAlarms getUnGroupAlarms() { + return unGroupAlarms; + } + + public void setUnGroupAlarms(UnGroupAlarms unGroupAlarms) { + this.unGroupAlarms = unGroupAlarms; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UnGroupAlarmsCreateEventPayload unGroupAlarmsCreateEventPayload = (UnGroupAlarmsCreateEventPayload) o; + return Objects.equals(this.unGroupAlarms, unGroupAlarmsCreateEventPayload.unGroupAlarms); + } + + @Override + public int hashCode() { + return Objects.hash(unGroupAlarms); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UnGroupAlarmsCreateEventPayload {\n"); + + sb.append(" unGroupAlarms: ").append(toIndentedString(unGroupAlarms)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsStateChangeEvent.java new file mode 100644 index 0000000..a2039c9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsStateChangeEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class UnGroupAlarmsStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private UnGroupAlarmsStateChangeEventPayload event = null; + + public UnGroupAlarmsStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public UnGroupAlarmsStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public UnGroupAlarmsStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public UnGroupAlarmsStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public UnGroupAlarmsStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public UnGroupAlarmsStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public UnGroupAlarmsStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public UnGroupAlarmsStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public UnGroupAlarmsStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public UnGroupAlarmsStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public UnGroupAlarmsStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public UnGroupAlarmsStateChangeEvent event(UnGroupAlarmsStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public UnGroupAlarmsStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(UnGroupAlarmsStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UnGroupAlarmsStateChangeEvent unGroupAlarmsStateChangeEvent = (UnGroupAlarmsStateChangeEvent) o; + return Objects.equals(this.id, unGroupAlarmsStateChangeEvent.id) && + Objects.equals(this.href, unGroupAlarmsStateChangeEvent.href) && + Objects.equals(this.eventId, unGroupAlarmsStateChangeEvent.eventId) && + Objects.equals(this.eventTime, unGroupAlarmsStateChangeEvent.eventTime) && + Objects.equals(this.eventType, unGroupAlarmsStateChangeEvent.eventType) && + Objects.equals(this.correlationId, unGroupAlarmsStateChangeEvent.correlationId) && + Objects.equals(this.domain, unGroupAlarmsStateChangeEvent.domain) && + Objects.equals(this.title, unGroupAlarmsStateChangeEvent.title) && + Objects.equals(this.description, unGroupAlarmsStateChangeEvent.description) && + Objects.equals(this.priority, unGroupAlarmsStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, unGroupAlarmsStateChangeEvent.timeOcurred) && + Objects.equals(this.event, unGroupAlarmsStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UnGroupAlarmsStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsStateChangeEventPayload.java new file mode 100644 index 0000000..e4d465d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/model/UnGroupAlarmsStateChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class UnGroupAlarmsStateChangeEventPayload { + @JsonProperty("unGroupAlarms") + private UnGroupAlarms unGroupAlarms = null; + + public UnGroupAlarmsStateChangeEventPayload unGroupAlarms(UnGroupAlarms unGroupAlarms) { + this.unGroupAlarms = unGroupAlarms; + return this; + } + + /** + * Get unGroupAlarms + * @return unGroupAlarms + **/ + @Schema(description = "") + + @Valid + public UnGroupAlarms getUnGroupAlarms() { + return unGroupAlarms; + } + + public void setUnGroupAlarms(UnGroupAlarms unGroupAlarms) { + this.unGroupAlarms = unGroupAlarms; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UnGroupAlarmsStateChangeEventPayload unGroupAlarmsStateChangeEventPayload = (UnGroupAlarmsStateChangeEventPayload) o; + return Objects.equals(this.unGroupAlarms, unGroupAlarmsStateChangeEventPayload.unGroupAlarms); + } + + @Override + public int hashCode() { + return Objects.hash(unGroupAlarms); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UnGroupAlarmsStateChangeEventPayload {\n"); + + sb.append(" unGroupAlarms: ").append(toIndentedString(unGroupAlarms)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/repo/AckAlarmsRepository.java b/src/main/java/org/etsi/osl/tmf/am642/repo/AckAlarmsRepository.java new file mode 100644 index 0000000..d74a673 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/repo/AckAlarmsRepository.java @@ -0,0 +1,35 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.repo; + +import java.util.Optional; +import org.etsi.osl.tmf.am642.model.AckAlarms; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface AckAlarmsRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/repo/AlarmRepository.java b/src/main/java/org/etsi/osl/tmf/am642/repo/AlarmRepository.java new file mode 100644 index 0000000..fa5ecd4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/repo/AlarmRepository.java @@ -0,0 +1,35 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.repo; + +import java.util.Optional; +import org.etsi.osl.tmf.am642.model.Alarm; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface AlarmRepository extends CrudRepository,PagingAndSortingRepository { + + + Optional findByUuid(String id); + + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/repo/ClearAlarmsRepository.java b/src/main/java/org/etsi/osl/tmf/am642/repo/ClearAlarmsRepository.java new file mode 100644 index 0000000..2d2c957 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/repo/ClearAlarmsRepository.java @@ -0,0 +1,35 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.repo; + +import java.util.Optional; +import org.etsi.osl.tmf.am642.model.ClearAlarms; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface ClearAlarmsRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/repo/CommentAlarmsRepository.java b/src/main/java/org/etsi/osl/tmf/am642/repo/CommentAlarmsRepository.java new file mode 100644 index 0000000..91e484e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/repo/CommentAlarmsRepository.java @@ -0,0 +1,35 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.repo; + +import java.util.Optional; +import org.etsi.osl.tmf.am642.model.CommentAlarms; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface CommentAlarmsRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/repo/GroupAlarmsRepository.java b/src/main/java/org/etsi/osl/tmf/am642/repo/GroupAlarmsRepository.java new file mode 100644 index 0000000..40bef51 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/repo/GroupAlarmsRepository.java @@ -0,0 +1,35 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.repo; + +import java.util.Optional; +import org.etsi.osl.tmf.am642.model.GroupAlarms; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface GroupAlarmsRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/repo/UnAckAlarmsRepository.java b/src/main/java/org/etsi/osl/tmf/am642/repo/UnAckAlarmsRepository.java new file mode 100644 index 0000000..b24881c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/repo/UnAckAlarmsRepository.java @@ -0,0 +1,35 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.repo; + +import java.util.Optional; +import org.etsi.osl.tmf.am642.model.UnAckAlarms; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface UnAckAlarmsRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/repo/UnGroupAlarmsRepository.java b/src/main/java/org/etsi/osl/tmf/am642/repo/UnGroupAlarmsRepository.java new file mode 100644 index 0000000..5aa8304 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/repo/UnGroupAlarmsRepository.java @@ -0,0 +1,35 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.repo; + +import java.util.Optional; +import org.etsi.osl.tmf.am642.model.UnGroupAlarms; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface UnGroupAlarmsRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/reposervices/AckAlarmsRepoService.java b/src/main/java/org/etsi/osl/tmf/am642/reposervices/AckAlarmsRepoService.java new file mode 100644 index 0000000..8bdc851 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/reposervices/AckAlarmsRepoService.java @@ -0,0 +1,167 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.reposervices; + +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.etsi.osl.tmf.am642.model.AckAlarms; +import org.etsi.osl.tmf.am642.model.AckAlarmsCreate; +import org.etsi.osl.tmf.am642.repo.AckAlarmsRepository; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.transform.ResultTransformer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + +@Service +public class AckAlarmsRepoService { + + @Autowired + AckAlarmsRepository alRepo; + + private SessionFactory sessionFactory; + + @Autowired + public AckAlarmsRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + public AckAlarms addAckAlarm(@Valid AckAlarmsCreate ac) { + AckAlarms al = new AckAlarms(); + + al = updateFromAPICall( al , ac); + return this.alRepo.save( al ); + } + + + + public List findAll(String fields, Map allParams) throws UnsupportedEncodingException { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + List alist = null; + try { + String sql = "SELECT " + + "s.uuid as uuid," + + "s.id as id," + + "s.ackTime as ackTime," + + "s.ackUserId as ackUserId," + + "s.state as state"; + + if (fields != null) { + String[] field = fields.split(","); + for (String f : field) { + sql += ", s." + f + " as " + f ; + } + + } + sql += " FROM AMAckAlarms s"; + if (allParams.size() > 0) { + sql += " WHERE "; + for (String pname : allParams.keySet()) { + sql += " " + pname + " LIKE "; + String pval = URLDecoder.decode(allParams.get(pname), StandardCharsets.UTF_8.toString()); + sql += "'" + pval + "'"; + } + + } + sql += " ORDER BY s.ackTime DESC"; + + + + List mapaEntity = session + .createQuery(sql ) + .setResultTransformer( new ResultTransformer() { + + @Override + public Object transformTuple(Object[] tuple, String[] aliases) { + Map result = new LinkedHashMap(tuple.length); + for (int i = 0; i < tuple.length; i++) { + String alias = aliases[i]; + if (alias.equals("type")) { + alias = "@type"; + } + if (alias != null) { + result.put(alias, tuple[i]); + } + } + + return result; + } + + @Override + public List transformList(List collection) { + return collection; + } + } ) + .list(); + +// //this will fetch the whole object fields +// if ( (( allParams!= null) && ( allParams.size()>0)) ) { +// List resultlist = new ArrayList<>(); +// for (ServiceSpecification s : alist) { +// resultlist.add( findByUuid( s.getUuid() )); +// } +// return resultlist; +// } + + + + return mapaEntity; + + + + + } finally { + tx.commit(); + session.close(); + } + } + + public AckAlarms findById(String id) { + Optional optionalCat = this.alRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + private AckAlarms updateFromAPICall(AckAlarms al, @Valid AckAlarmsCreate aSrc) { + + al.setAckSystemId( aSrc.getAckSystemId()); + al.ackTime( OffsetDateTime.now(ZoneOffset.UTC) ); + al.setAckUserId( aSrc.getAckUserId() ); + al.setState( aSrc.getState()); + al.getAckedAlarm().addAll( aSrc.getAckedAlarm() ) ; + al.getAlarmPattern().addAll(aSrc.getAlarmPattern() ); + + return al; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/reposervices/AlarmRepoService.java b/src/main/java/org/etsi/osl/tmf/am642/reposervices/AlarmRepoService.java new file mode 100644 index 0000000..1ffba45 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/reposervices/AlarmRepoService.java @@ -0,0 +1,528 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.reposervices; + +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.etsi.osl.tmf.am642.api.AlarmApiRouteBuilderEvents; +import org.etsi.osl.tmf.am642.model.AffectedService; +import org.etsi.osl.tmf.am642.model.Alarm; +import org.etsi.osl.tmf.am642.model.AlarmCreate; +import org.etsi.osl.tmf.am642.model.AlarmCreateEvent; +import org.etsi.osl.tmf.am642.model.AlarmCreateEventPayload; +import org.etsi.osl.tmf.am642.model.AlarmRef; +import org.etsi.osl.tmf.am642.model.AlarmStateType; +import org.etsi.osl.tmf.am642.model.AlarmUpdate; +import org.etsi.osl.tmf.am642.model.Comment; +import org.etsi.osl.tmf.am642.model.RelatedPlaceRefOrValue; +import org.etsi.osl.tmf.am642.repo.AlarmRepository; +import org.etsi.osl.tmf.common.model.service.ServiceStateType; +import org.etsi.osl.tmf.scm633.model.ServiceSpecification; +import org.etsi.osl.tmf.sim638.service.ServiceRepoService; +import org.hibernate.Hibernate; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.transform.ResultTransformer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + +@Service +public class AlarmRepoService { + + @Autowired + AlarmRepository alarmRepo; + + @Autowired + ServiceRepoService serviceRepoService; + + @Autowired + AlarmApiRouteBuilderEvents alarmApiRouteBuilder; + + private SessionFactory sessionFactory; + + @Autowired + public AlarmRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + @Transactional + public Alarm addAlarm(@Valid AlarmCreate alarmUpdate) { + Alarm al = new Alarm(); + al.setAlarmReportingTime(OffsetDateTime.now(ZoneOffset.UTC)); + al.setAlarmChangedTime(OffsetDateTime.now(ZoneOffset.UTC)); + al.setSourceSystemId(alarmUpdate.getSourceSystemId()); + al.setAlarmRaisedTime( alarmUpdate.getAlarmRaisedTime() ); + + al = updateAlarmFromAPICall(al, alarmUpdate); + + al = updateAffectedServiceIF_NFVO(al); + + al = this.alarmRepo.save(al); + raiseAlarmCreateEvent(al); + return al; + } + + public List findAll() { + return (List) this.alarmRepo.findAll(); + } + + public Alarm findById(String id) { + Optional optionalCat = this.alarmRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + /** + * + * This one is needed if we have a specific alarm from NFVO (OSM in our case) + * In future we might have more complex things + * This function could be in OAS to find and identify the related Service from the inventory + * that is related with this NS instance + * + * @param al + * @return + */ + private Alarm updateAffectedServiceIF_NFVO(Alarm al) { + // specificProblem(DeploymentRequestID=OSM NS_ID) + + if ( (al.getSourceSystemId().equals("mano-client-service") ) && (al.getAlarmDetails() != null) ) { + if (al.getAlarmDetails().contains("DeploymentRequestID")) { + String[] vals = al.getAlarmDetails().split(";"); + for (String details : vals) { + String[] d = details.split("="); + if ( d[0].equals( "DeploymentRequestID" ) ) { + var aservices = serviceRepoService.findDeploymentRequestID( d[1] ); + + for (org.etsi.osl.tmf.sim638.model.Service service : aservices) { + if ( service.getState().equals( ServiceStateType.ACTIVE ) ) { + AffectedService as = new AffectedService(); + as.setId( service.getUuid()); + as.setBaseType("Service"); + al.getAffectedService().add(as ); + } + } + + } + } + + } + } + + return al; + } + + @Transactional + private Alarm updateAlarmFromAPICall(Alarm al, @Valid AlarmUpdate alarmUpdate) { + + if (alarmUpdate.getAckState() != null) { + al.setAckState(alarmUpdate.getAckState()); + } + if (alarmUpdate.getAckSystemId() != null) { + al.setAckSystemId(alarmUpdate.getAckSystemId()); + } + if (alarmUpdate.getAckUserId() != null) { + al.setAckUserId(alarmUpdate.getAckUserId()); + } + if (alarmUpdate.getAlarmChangedTime() != null) { + al.setAlarmChangedTime(alarmUpdate.getAlarmChangedTime()); + } + if (alarmUpdate.getAlarmClearedTime() != null) { + al.setAlarmClearedTime(alarmUpdate.getAlarmClearedTime()); + } + if (alarmUpdate.getAlarmDetails() != null) { + al.setAlarmDetails(alarmUpdate.getAlarmDetails()); + } + if (alarmUpdate.isAlarmEscalation() != null) { + al.setAlarmEscalation(alarmUpdate.isAlarmEscalation()); + } +// if (alarmUpdate.getAlarmReportingTime()!=null){ +// al.setAlarmReportingTime(alarmUpdate.getAlarmReportingTime()); +// } + if (alarmUpdate.getAlarmType() != null) { + al.setAlarmType(alarmUpdate.getAlarmType()); + } + if (alarmUpdate.getAlarmedObjectType() != null) { + al.setAlarmedObjectType(alarmUpdate.getAlarmedObjectType()); + } + if (alarmUpdate.getClearSystemId() != null) { + al.setClearSystemId(alarmUpdate.getClearSystemId()); + } + if (alarmUpdate.getClearUserId() != null) { + al.setClearUserId(alarmUpdate.getClearUserId()); + } + if (alarmUpdate.getExternalAlarmId() != null) { + al.setExternalAlarmId(alarmUpdate.getExternalAlarmId()); + } + if (alarmUpdate.isIsRootCause() != null) { + al.setIsRootCause(alarmUpdate.isIsRootCause()); + } + if (alarmUpdate.getPerceivedSeverity() != null) { + al.setPerceivedSeverity(alarmUpdate.getPerceivedSeverity()); + } + if (alarmUpdate.getPlannedOutageIndicator() != null) { + al.setPlannedOutageIndicator(alarmUpdate.getPlannedOutageIndicator()); + } + if (alarmUpdate.getProbableCause() != null) { + al.setProbableCause(alarmUpdate.getProbableCause()); + } + if (alarmUpdate.getProposedRepairedActions() != null) { + al.setProposedRepairedActions(alarmUpdate.getProposedRepairedActions()); + } + if (alarmUpdate.getReportingSystemId() != null) { + al.setReportingSystemId(alarmUpdate.getReportingSystemId()); + } + + if (alarmUpdate.isServiceAffecting() != null) { + al.setServiceAffecting(alarmUpdate.isServiceAffecting()); + } + if (alarmUpdate.getSpecificProblem() != null) { + al.setSpecificProblem(alarmUpdate.getSpecificProblem()); + } + + al.setState(AlarmStateType.raised.name()); + if (alarmUpdate.getState() != null) { + al.setState(alarmUpdate.getState()); + } + + if (alarmUpdate.getAffectedService() != null) { + // reattach attachments fromDB + + Map idAddedUpdated = new HashMap<>(); + + for (AffectedService ar : alarmUpdate.getAffectedService()) { + // find by id and reload it here. + // we need the model from resource models + boolean idexists = false; + for (AffectedService orinalAtt : al.getAffectedService()) { + if (orinalAtt.getId().equals(ar.getId())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getId(), true); + break; + } + } + + if (!idexists) { + al.getAffectedService().add(ar); + idAddedUpdated.put(ar.getId(), true); + } + } + + List toRemove = new ArrayList<>(); + for (AffectedService ss : al.getAffectedService()) { + if (idAddedUpdated.get(ss.getId()) == null) { + toRemove.add(ss); + } + } + + for (AffectedService ar : toRemove) { + al.getAffectedService().remove(ar); + } + + } + + if (alarmUpdate.getAlarmedObject() != null) { + al.setAlarmedObject(alarmUpdate.getAlarmedObject()); + } + + if (alarmUpdate.getCorrelatedAlarm() != null) { + // reattach attachments fromDB + + Map idAddedUpdated = new HashMap<>(); + + for (AlarmRef ar : alarmUpdate.getCorrelatedAlarm()) { + // find by id and reload it here. + // we need the model from resource models + boolean idexists = false; + for (AlarmRef orinalCom : al.getCorrelatedAlarm()) { + if (orinalCom.getUuid().equals(ar.getUuid())) { + idexists = true; + idAddedUpdated.put(orinalCom.getUuid(), true); + break; + } + } + + if (!idexists) { + al.getCorrelatedAlarm().add(ar); + idAddedUpdated.put(ar.getUuid(), true); + } + } + + List toRemove = new ArrayList<>(); + for (AlarmRef ss : al.getCorrelatedAlarm()) { + if (idAddedUpdated.get(ss.getUuid()) == null) { + toRemove.add(ss); + } + } + + for (AlarmRef ar : toRemove) { + al.getCorrelatedAlarm().remove(ar); + } + + } + + if (alarmUpdate.getCrossedThresholdInformation() != null) { + al.setCrossedThresholdInformation(alarmUpdate.getCrossedThresholdInformation()); + } + + if (alarmUpdate.getParentAlarm() != null) { + // reattach attachments fromDB + + Map idAddedUpdated = new HashMap<>(); + + for (AlarmRef ar : alarmUpdate.getParentAlarm()) { + // find by id and reload it here. + // we need the model from resource models + boolean idexists = false; + for (AlarmRef orinalCom : al.getParentAlarm()) { + if (orinalCom.getUuid().equals(ar.getUuid())) { + idexists = true; + idAddedUpdated.put(orinalCom.getUuid(), true); + break; + } + } + + if (!idexists) { + al.getParentAlarm().add(ar); + idAddedUpdated.put(ar.getUuid(), true); + } + } + + List toRemove = new ArrayList<>(); + for (AlarmRef ss : al.getParentAlarm()) { + if (idAddedUpdated.get(ss.getUuid()) == null) { + toRemove.add(ss); + } + } + + for (AlarmRef ar : toRemove) { + al.getParentAlarm().remove(ar); + } + + } + + if (alarmUpdate.getPlace() != null) { + // reattach attachments fromDB + + Map idAddedUpdated = new HashMap<>(); + + for (RelatedPlaceRefOrValue ar : alarmUpdate.getPlace()) { + // find by id and reload it here. + // we need the model from resource models + boolean idexists = false; + for (RelatedPlaceRefOrValue orinalCom : al.getPlace()) { + if (orinalCom.getUuid().equals(ar.getUuid())) { + idexists = true; + idAddedUpdated.put(orinalCom.getUuid(), true); + break; + } + } + + if (!idexists) { + al.getPlace().add(ar); + idAddedUpdated.put(ar.getUuid(), true); + } + } + + List toRemove = new ArrayList<>(); + for (RelatedPlaceRefOrValue ss : al.getPlace()) { + if (idAddedUpdated.get(ss.getUuid()) == null) { + toRemove.add(ss); + } + } + + for (RelatedPlaceRefOrValue ar : toRemove) { + al.getPlace().remove(ar); + } + + } + + if (alarmUpdate.getComment() != null) { + // reattach attachments fromDB + + Map idAddedUpdated = new HashMap<>(); + + for (Comment ar : alarmUpdate.getComment()) { + // find by id and reload it here. + // we need the model from resource models + boolean idexists = false; + for (Comment orinalCom : al.getComment()) { + if (orinalCom.getUuid().equals(ar.getUuid())) { + idexists = true; + idAddedUpdated.put(orinalCom.getUuid(), true); + break; + } + } + + if (!idexists) { + al.getComment().add(ar); + idAddedUpdated.put(ar.getUuid(), true); + } + } + + } + + return al; + } + + public Void deleteById(String id) { + Optional optionalCat = this.alarmRepo.findByUuid(id); + this.alarmRepo.delete(optionalCat.get()); + return null; + } + + public List findAll(@Valid String fields, Map allParams) throws UnsupportedEncodingException { + + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + List alist = null; + try { + String sql = "SELECT " + "s.uuid as uuid," + "s.uuid as id," + "s.alarmType as alarmType," + + "s.ackState as ackState," + "s.alarmRaisedTime as alarmRaisedTime," + + "s.alarmReportingTime as alarmReportingTime," + "s.probableCause as probableCause," + + "s.sourceSystemId as sourceSystemId," + "s.state as state," + + "s.perceivedSeverity as perceivedSeverity"; + + if (fields != null) { + String[] field = fields.split(","); + for (String f : field) { + sql += ", s." + f + " as " + f; + } + + } + sql += " FROM AMAlarm s"; + if (allParams.size() > 0) { + sql += " WHERE "; + for (String pname : allParams.keySet()) { + sql += " " + pname + " LIKE "; + String pval = URLDecoder.decode(allParams.get(pname), StandardCharsets.UTF_8.toString()); + sql += "'" + pval + "'"; + } + + } + sql += " ORDER BY s.alarmRaisedTime DESC"; + + List mapaEntity = session.createQuery(sql).setResultTransformer(new ResultTransformer() { + + @Override + public Object transformTuple(Object[] tuple, String[] aliases) { + Map result = new LinkedHashMap(tuple.length); + for (int i = 0; i < tuple.length; i++) { + String alias = aliases[i]; + if (alias.equals("type")) { + alias = "@type"; + } + if (alias != null) { + result.put(alias, tuple[i]); + } + } + + return result; + } + + @Override + public List transformList(List collection) { + return collection; + } + }).list(); + +// //this will fetch the whole object fields +// if ( (( allParams!= null) && ( allParams.size()>0)) ) { +// List resultlist = new ArrayList<>(); +// for (ServiceSpecification s : alist) { +// resultlist.add( findByUuid( s.getUuid() )); +// } +// return resultlist; +// } + + return mapaEntity; + + } finally { + tx.commit(); + session.close(); + } + } + + @Transactional + public Alarm updateAlarm(String id, @Valid AlarmUpdate alarmUpdate) { + Alarm s = this.findByUuid(id); + if (s == null) { + return null; + } + Alarm alm = s; + alm = this.updateAlarmFromAPICall(alm, alarmUpdate); + + alm = this.alarmRepo.save(alm); + return alm; + } + + public Alarm findByUuid(String id) { + Optional optionalCat = this.alarmRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + public Alarm findByUuidEager(String id) { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); // instead of begin transaction, is it possible to continue? + Alarm dd = null; + try { + dd = session.get(Alarm.class, id); + if (dd == null) { + return this.findByUuid(id);// last resort + } + Hibernate.initialize(dd.getAffectedService()); + Hibernate.initialize(dd.getComment()); + Hibernate.initialize(dd.getCorrelatedAlarm()); + Hibernate.initialize(dd.getParentAlarm()); + Hibernate.initialize(dd.getPlace()); + + tx.commit(); + } finally { + session.close(); + } + return dd; + } + + @Transactional + private void raiseAlarmCreateEvent(Alarm alarm) { + AlarmCreateEvent e = new AlarmCreateEvent(); + AlarmCreateEventPayload p = new AlarmCreateEventPayload(); + p.setAlarm(alarm); + e.setEvent(p); + e.setTitle("AlarmCreate " + alarm.getId()); + e.setTimeOcurred( alarm.getAlarmReportingTime() ); + alarmApiRouteBuilder.publishEvent(e, alarm.getId()); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/reposervices/ClearAlarmsRepoService.java b/src/main/java/org/etsi/osl/tmf/am642/reposervices/ClearAlarmsRepoService.java new file mode 100644 index 0000000..9b60048 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/reposervices/ClearAlarmsRepoService.java @@ -0,0 +1,183 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.reposervices; + +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.etsi.osl.tmf.am642.model.AlarmStateType; +import org.etsi.osl.tmf.am642.model.ClearAlarms; +import org.etsi.osl.tmf.am642.model.ClearAlarmsCreate; +import org.etsi.osl.tmf.am642.repo.ClearAlarmsRepository; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.transform.ResultTransformer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + +@Service +public class ClearAlarmsRepoService { + + @Autowired + ClearAlarmsRepository alRepo; + + private SessionFactory sessionFactory; + + @Autowired + public ClearAlarmsRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + public ClearAlarms addClearAlarm(@Valid ClearAlarmsCreate ac) { + ClearAlarms al = new ClearAlarms(); + + al = updateFromAPICall( al , ac); + return this.alRepo.save( al ); + } + + + + public List findAll(String fields, Map allParams) throws UnsupportedEncodingException { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + List alist = null; + try { + String sql = "SELECT " + + "s.uuid as uuid," + + "s.id as id," + + "s.alarmClearedTime as alarmClearedTime," + + "s.clearUserId as clearUserId," + + "s.state as state"; + + if (fields != null) { + String[] field = fields.split(","); + for (String f : field) { + sql += ", s." + f + " as " + f ; + } + + } + sql += " FROM AMClearAlarms s"; + if (allParams.size() > 0) { + sql += " WHERE "; + for (String pname : allParams.keySet()) { + sql += " " + pname + " LIKE "; + String pval = URLDecoder.decode(allParams.get(pname), StandardCharsets.UTF_8.toString()); + sql += "'" + pval + "'"; + } + + } + sql += " ORDER BY s.alarmClearedTime DESC"; + + + + List mapaEntity = session + .createQuery(sql ) + .setResultTransformer( new ResultTransformer() { + + @Override + public Object transformTuple(Object[] tuple, String[] aliases) { + Map result = new LinkedHashMap(tuple.length); + for (int i = 0; i < tuple.length; i++) { + String alias = aliases[i]; + if (alias.equals("type")) { + alias = "@type"; + } + if (alias != null) { + result.put(alias, tuple[i]); + } + } + + return result; + } + + @Override + public List transformList(List collection) { + return collection; + } + } ) + .list(); + +// //this will fetch the whole object fields +// if ( (( allParams!= null) && ( allParams.size()>0)) ) { +// List resultlist = new ArrayList<>(); +// for (ServiceSpecification s : alist) { +// resultlist.add( findByUuid( s.getUuid() )); +// } +// return resultlist; +// } + + + + return mapaEntity; + + + + + } finally { + tx.commit(); + session.close(); + } + } + + public ClearAlarms findById(String id) { + Optional optionalCat = this.alRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + private ClearAlarms updateFromAPICall(ClearAlarms al, @Valid ClearAlarmsCreate aSrc) { + + al.setClearSystemId( aSrc.getClearSystemId()); + al.setAlarmClearedTime( OffsetDateTime.now(ZoneOffset.UTC) ); + al.setClearUserId( aSrc.getClearUserId() ); + + if ( aSrc.getState() != null ) { + al.setState( aSrc.getState()); + } + al.setState( AlarmStateType.cleared.name() ); + if ( aSrc.getState() != null ) { + al.setState( aSrc.getState()); + } + +// maybe here we need to update the real Alarm? +// raised | updated | cleared). + + al.getClearedAlarm().addAll( aSrc.getClearedAlarm() ) ; + + + al.getAlarmPattern().addAll(aSrc.getAlarmPattern() ); + + + + return al; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/reposervices/CommentAlarmsRepoService.java b/src/main/java/org/etsi/osl/tmf/am642/reposervices/CommentAlarmsRepoService.java new file mode 100644 index 0000000..9f9731e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/reposervices/CommentAlarmsRepoService.java @@ -0,0 +1,166 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.reposervices; + +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.etsi.osl.tmf.am642.model.CommentAlarms; +import org.etsi.osl.tmf.am642.model.CommentAlarmsCreate; +import org.etsi.osl.tmf.am642.repo.CommentAlarmsRepository; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.transform.ResultTransformer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + +@Service +public class CommentAlarmsRepoService { + + + @Autowired + CommentAlarmsRepository alRepo; + + private SessionFactory sessionFactory; + + @Autowired + public CommentAlarmsRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + public CommentAlarms addCommentAlarms(@Valid CommentAlarmsCreate ac) { + CommentAlarms al = new CommentAlarms(); + + al = updateFromAPICall( al , ac); + return this.alRepo.save( al ); + } + + + + public List findAll(String fields, Map allParams) throws UnsupportedEncodingException { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + List alist = null; + try { + String sql = "SELECT " + + "s.uuid as uuid," + + "s.id as id," + + "s.alarmChangedTime as alarmChangedTime," + + "s.sourceSystemId as sourceSystemId," + + "s.state as state"; + + if (fields != null) { + String[] field = fields.split(","); + for (String f : field) { + sql += ", s." + f + " as " + f ; + } + + } + sql += " FROM AMCommentAlarms s"; + if (allParams.size() > 0) { + sql += " WHERE "; + for (String pname : allParams.keySet()) { + sql += " " + pname + " LIKE "; + String pval = URLDecoder.decode(allParams.get(pname), StandardCharsets.UTF_8.toString()); + sql += "'" + pval + "'"; + } + + } + sql += " ORDER BY s.alarmChangedTime DESC"; + + + + List mapaEntity = session + .createQuery(sql ) + .setResultTransformer( new ResultTransformer() { + + @Override + public Object transformTuple(Object[] tuple, String[] aliases) { + Map result = new LinkedHashMap(tuple.length); + for (int i = 0; i < tuple.length; i++) { + String alias = aliases[i]; + if (alias.equals("type")) { + alias = "@type"; + } + if (alias != null) { + result.put(alias, tuple[i]); + } + } + + return result; + } + + @Override + public List transformList(List collection) { + return collection; + } + } ) + .list(); + +// //this will fetch the whole object fields +// if ( (( allParams!= null) && ( allParams.size()>0)) ) { +// List resultlist = new ArrayList<>(); +// for (ServiceSpecification s : alist) { +// resultlist.add( findByUuid( s.getUuid() )); +// } +// return resultlist; +// } + + + + return mapaEntity; + + + + + } finally { + tx.commit(); + session.close(); + } + } + + public CommentAlarms findById(String id) { + Optional optionalCat = this.alRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + private CommentAlarms updateFromAPICall(CommentAlarms al, @Valid CommentAlarmsCreate aSrc) { + + + al.setState( aSrc.getState()); + al.setComment(aSrc.getComment()); + al.getCommentedAlarm().addAll( aSrc.getCommentedAlarm()); + al.getAlarmPattern().addAll( aSrc.getAlarmPattern() ); + + return al; + } + +} + diff --git a/src/main/java/org/etsi/osl/tmf/am642/reposervices/GroupAlarmsRepoService.java b/src/main/java/org/etsi/osl/tmf/am642/reposervices/GroupAlarmsRepoService.java new file mode 100644 index 0000000..6197a4b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/reposervices/GroupAlarmsRepoService.java @@ -0,0 +1,167 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.reposervices; + +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.etsi.osl.tmf.am642.model.GroupAlarms; +import org.etsi.osl.tmf.am642.model.GroupAlarmsCreate; +import org.etsi.osl.tmf.am642.repo.GroupAlarmsRepository; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.transform.ResultTransformer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + +@Service +public class GroupAlarmsRepoService { + + @Autowired + GroupAlarmsRepository alRepo; + + private SessionFactory sessionFactory; + + @Autowired + public GroupAlarmsRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + public GroupAlarms addGroupAlarms(@Valid GroupAlarmsCreate ac) { + GroupAlarms al = new GroupAlarms(); + + al = updateFromAPICall( al , ac); + return this.alRepo.save( al ); + } + + + + public List findAll(String fields, Map allParams) throws UnsupportedEncodingException { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + List alist = null; + try { + String sql = "SELECT " + + "s.uuid as uuid," + + "s.id as id," + + "s.alarmChangedTime as alarmChangedTime," + + "s.sourceSystemId as sourceSystemId," + + "s.state as state"; + + if (fields != null) { + String[] field = fields.split(","); + for (String f : field) { + sql += ", s." + f + " as " + f ; + } + + } + sql += " FROM AMGroupAlarms s"; + if (allParams.size() > 0) { + sql += " WHERE "; + for (String pname : allParams.keySet()) { + sql += " " + pname + " LIKE "; + String pval = URLDecoder.decode(allParams.get(pname), StandardCharsets.UTF_8.toString()); + sql += "'" + pval + "'"; + } + + } + sql += " ORDER BY s.alarmChangedTime DESC"; + + + + List mapaEntity = session + .createQuery(sql ) + .setResultTransformer( new ResultTransformer() { + + @Override + public Object transformTuple(Object[] tuple, String[] aliases) { + Map result = new LinkedHashMap(tuple.length); + for (int i = 0; i < tuple.length; i++) { + String alias = aliases[i]; + if (alias.equals("type")) { + alias = "@type"; + } + if (alias != null) { + result.put(alias, tuple[i]); + } + } + + return result; + } + + @Override + public List transformList(List collection) { + return collection; + } + } ) + .list(); + +// //this will fetch the whole object fields +// if ( (( allParams!= null) && ( allParams.size()>0)) ) { +// List resultlist = new ArrayList<>(); +// for (ServiceSpecification s : alist) { +// resultlist.add( findByUuid( s.getUuid() )); +// } +// return resultlist; +// } + + + + return mapaEntity; + + + + + } finally { + tx.commit(); + session.close(); + } + } + + public GroupAlarms findById(String id) { + Optional optionalCat = this.alRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + private GroupAlarms updateFromAPICall(GroupAlarms al, @Valid GroupAlarmsCreate aSrc) { + + al.setSourceSystemId( aSrc.getSourceSystemId()); + al.setAlarmChangedTime( OffsetDateTime.now(ZoneOffset.UTC) ); + al.setState( aSrc.getState()); + al.setParentAlarm( aSrc.getParentAlarm()); + al.getCorrelatedAlarm().addAll( aSrc.getCorrelatedAlarm()); + al.getGroupedAlarm().addAll( aSrc.getGroupedAlarm() ); + + return al; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/reposervices/UnAckAlarmsRepoService.java b/src/main/java/org/etsi/osl/tmf/am642/reposervices/UnAckAlarmsRepoService.java new file mode 100644 index 0000000..9b76651 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/reposervices/UnAckAlarmsRepoService.java @@ -0,0 +1,167 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.reposervices; + +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.etsi.osl.tmf.am642.model.UnAckAlarms; +import org.etsi.osl.tmf.am642.model.UnAckAlarmsCreate; +import org.etsi.osl.tmf.am642.repo.UnAckAlarmsRepository; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.transform.ResultTransformer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + +@Service +public class UnAckAlarmsRepoService { + + @Autowired + UnAckAlarmsRepository alRepo; + + private SessionFactory sessionFactory; + + @Autowired + public UnAckAlarmsRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + public UnAckAlarms addAckAlarm(@Valid UnAckAlarmsCreate ac) { + UnAckAlarms al = new UnAckAlarms(); + + al = updateFromAPICall( al , ac); + return this.alRepo.save( al ); + } + + + + public List findAll(String fields, Map allParams) throws UnsupportedEncodingException { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + List alist = null; + try { + String sql = "SELECT " + + "s.uuid as uuid," + + "s.id as id," + + "s.ackTime as ackTime," + + "s.ackUserId as ackUserId," + + "s.state as state"; + + if (fields != null) { + String[] field = fields.split(","); + for (String f : field) { + sql += ", s." + f + " as " + f ; + } + + } + sql += " FROM AMUnAckAlarms s"; + if (allParams.size() > 0) { + sql += " WHERE "; + for (String pname : allParams.keySet()) { + sql += " " + pname + " LIKE "; + String pval = URLDecoder.decode(allParams.get(pname), StandardCharsets.UTF_8.toString()); + sql += "'" + pval + "'"; + } + + } + sql += " ORDER BY s.ackTime DESC"; + + + + List mapaEntity = session + .createQuery(sql ) + .setResultTransformer( new ResultTransformer() { + + @Override + public Object transformTuple(Object[] tuple, String[] aliases) { + Map result = new LinkedHashMap(tuple.length); + for (int i = 0; i < tuple.length; i++) { + String alias = aliases[i]; + if (alias.equals("type")) { + alias = "@type"; + } + if (alias != null) { + result.put(alias, tuple[i]); + } + } + + return result; + } + + @Override + public List transformList(List collection) { + return collection; + } + } ) + .list(); + +// //this will fetch the whole object fields +// if ( (( allParams!= null) && ( allParams.size()>0)) ) { +// List resultlist = new ArrayList<>(); +// for (ServiceSpecification s : alist) { +// resultlist.add( findByUuid( s.getUuid() )); +// } +// return resultlist; +// } + + + + return mapaEntity; + + + + + } finally { + tx.commit(); + session.close(); + } + } + + public UnAckAlarms findById(String id) { + Optional optionalCat = this.alRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + private UnAckAlarms updateFromAPICall(UnAckAlarms al, @Valid UnAckAlarmsCreate aSrc) { + + al.setAckSystemId( aSrc.getAckSystemId()); + al.ackTime( OffsetDateTime.now(ZoneOffset.UTC) ); + al.setAckUserId( aSrc.getAckUserId() ); + al.setState( aSrc.getState()); + al.getUnAckedAlarm().addAll( aSrc.getUnAckedAlarm() ) ; + al.getAlarmPattern().addAll(aSrc.getAlarmPattern() ); + + return al; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am642/reposervices/UnGroupAlarmsRepoService.java b/src/main/java/org/etsi/osl/tmf/am642/reposervices/UnGroupAlarmsRepoService.java new file mode 100644 index 0000000..d4e0b6f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am642/reposervices/UnGroupAlarmsRepoService.java @@ -0,0 +1,167 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am642.reposervices; + +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.etsi.osl.tmf.am642.model.UnGroupAlarms; +import org.etsi.osl.tmf.am642.model.UnGroupAlarmsCreate; +import org.etsi.osl.tmf.am642.repo.UnGroupAlarmsRepository; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.transform.ResultTransformer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + +@Service +public class UnGroupAlarmsRepoService { + + @Autowired + UnGroupAlarmsRepository alRepo; + + private SessionFactory sessionFactory; + + @Autowired + public UnGroupAlarmsRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + public UnGroupAlarms addUnGroupAlarms(@Valid UnGroupAlarmsCreate ac) { + UnGroupAlarms al = new UnGroupAlarms(); + + al = updateFromAPICall( al , ac); + return this.alRepo.save( al ); + } + + + + public List findAll(String fields, Map allParams) throws UnsupportedEncodingException { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + List alist = null; + try { + String sql = "SELECT " + + "s.uuid as uuid," + + "s.id as id," + + "s.alarmChangedTime as alarmChangedTime," + + "s.sourceSystemId as sourceSystemId," + + "s.state as state"; + + if (fields != null) { + String[] field = fields.split(","); + for (String f : field) { + sql += ", s." + f + " as " + f ; + } + + } + sql += " FROM AMUnGroupAlarms s"; + if (allParams.size() > 0) { + sql += " WHERE "; + for (String pname : allParams.keySet()) { + sql += " " + pname + " LIKE "; + String pval = URLDecoder.decode(allParams.get(pname), StandardCharsets.UTF_8.toString()); + sql += "'" + pval + "'"; + } + + } + sql += " ORDER BY s.alarmChangedTime DESC"; + + + + List mapaEntity = session + .createQuery(sql ) + .setResultTransformer( new ResultTransformer() { + + @Override + public Object transformTuple(Object[] tuple, String[] aliases) { + Map result = new LinkedHashMap(tuple.length); + for (int i = 0; i < tuple.length; i++) { + String alias = aliases[i]; + if (alias.equals("type")) { + alias = "@type"; + } + if (alias != null) { + result.put(alias, tuple[i]); + } + } + + return result; + } + + @Override + public List transformList(List collection) { + return collection; + } + } ) + .list(); + +// //this will fetch the whole object fields +// if ( (( allParams!= null) && ( allParams.size()>0)) ) { +// List resultlist = new ArrayList<>(); +// for (ServiceSpecification s : alist) { +// resultlist.add( findByUuid( s.getUuid() )); +// } +// return resultlist; +// } + + + + return mapaEntity; + + + + + } finally { + tx.commit(); + session.close(); + } + } + + public UnGroupAlarms findById(String id) { + Optional optionalCat = this.alRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + private UnGroupAlarms updateFromAPICall(UnGroupAlarms al, @Valid UnGroupAlarmsCreate aSrc) { + + al.setSourceSystemId( aSrc.getSourceSystemId()); + al.setAlarmChangedTime( OffsetDateTime.now(ZoneOffset.UTC) ); + al.setState( aSrc.getState()); + al.setParentAlarm( aSrc.getParentAlarm()); + al.getCorrelatedAlarm().addAll( aSrc.getCorrelatedAlarm()); + al.getUnGroupedAlarm().addAll( aSrc.getUnGroupedAlarm() ); + + return al; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am651/api/AgreementApi.java b/src/main/java/org/etsi/osl/tmf/am651/api/AgreementApi.java new file mode 100644 index 0000000..a932016 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/api/AgreementApi.java @@ -0,0 +1,216 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am651.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am651.model.Agreement; +import org.etsi.osl.tmf.am651.model.AgreementCreate; +import org.etsi.osl.tmf.am651.model.AgreementUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +@Tag(name = "agreement", description = "the agreement API") +public interface AgreementApi { + + Logger log = LoggerFactory.getLogger(AgreementApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a 'Agreement'", operationId = "createAgreement", description = "", tags={ "agreement", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/agreement", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.POST) + default ResponseEntity createAgreement(@Parameter(description = "The Agreement to be created" ,required=true ) @Valid @RequestBody AgreementCreate agreement) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"agreementPeriod\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"associatedAgreement\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"documentNumber\" : 0, \"agreementSpecification\" : { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"description\" : \"description\", \"href\" : \"href\", \"id\" : \"id\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"type\" : \"type\", \"version\" : \"version\", \"initialDate\" : \"2000-01-23T04:56:07.000+00:00\", \"engagedPartyRole\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"partyName\" : \"partyName\", \"href\" : \"href\", \"id\" : \"id\", \"partyId\" : \"partyId\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"partyName\" : \"partyName\", \"href\" : \"href\", \"id\" : \"id\", \"partyId\" : \"partyId\" } ], \"characteristic\" : [ { \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"@schemaLocation\", \"value\" : \"value\" }, { \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"@schemaLocation\", \"value\" : \"value\" } ], \"agreementAuthorization\" : [ { \"date\" : \"2000-01-23T04:56:07.000+00:00\", \"@type\" : \"@type\", \"signatureRepresentation\" : \"signatureRepresentation\", \"state\" : \"state\" }, { \"date\" : \"2000-01-23T04:56:07.000+00:00\", \"@type\" : \"@type\", \"signatureRepresentation\" : \"signatureRepresentation\", \"state\" : \"state\" } ], \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"completionDate\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"statementOfIntent\" : \"statementOfIntent\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"agreementItem\" : [ { \"termOrCondition\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" } ], \"productOffering\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"@type\" : \"@type\" }, { \"termOrCondition\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" } ], \"productOffering\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"@type\" : \"@type\" } ], \"status\" : \"status\"}", Agreement.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AgreementApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a 'Agreement' by Id", operationId = "deleteAgreement", description = "", tags={ "agreement", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/agreement/{id}", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteAgreement(@Parameter(description = "Identifier of the Agreement",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AgreementApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find 'Agreement' objects", operationId = "listAgreement", description = "" , tags={ "agreement", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Ok" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/agreement", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.GET) + default ResponseEntity> listAgreement(@Parameter(description = "Comma separated properties to display in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"agreementPeriod\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"associatedAgreement\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"documentNumber\" : 0, \"agreementSpecification\" : { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"description\" : \"description\", \"href\" : \"href\", \"id\" : \"id\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"type\" : \"type\", \"version\" : \"version\", \"initialDate\" : \"2000-01-23T04:56:07.000+00:00\", \"engagedPartyRole\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"partyName\" : \"partyName\", \"href\" : \"href\", \"id\" : \"id\", \"partyId\" : \"partyId\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"partyName\" : \"partyName\", \"href\" : \"href\", \"id\" : \"id\", \"partyId\" : \"partyId\" } ], \"characteristic\" : [ { \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"@schemaLocation\", \"value\" : \"value\" }, { \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"@schemaLocation\", \"value\" : \"value\" } ], \"agreementAuthorization\" : [ { \"date\" : \"2000-01-23T04:56:07.000+00:00\", \"@type\" : \"@type\", \"signatureRepresentation\" : \"signatureRepresentation\", \"state\" : \"state\" }, { \"date\" : \"2000-01-23T04:56:07.000+00:00\", \"@type\" : \"@type\", \"signatureRepresentation\" : \"signatureRepresentation\", \"state\" : \"state\" } ], \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"completionDate\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"statementOfIntent\" : \"statementOfIntent\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"agreementItem\" : [ { \"termOrCondition\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" } ], \"productOffering\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"@type\" : \"@type\" }, { \"termOrCondition\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" } ], \"productOffering\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"@type\" : \"@type\" } ], \"status\" : \"status\"}, { \"agreementPeriod\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"associatedAgreement\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"documentNumber\" : 0, \"agreementSpecification\" : { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"description\" : \"description\", \"href\" : \"href\", \"id\" : \"id\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"type\" : \"type\", \"version\" : \"version\", \"initialDate\" : \"2000-01-23T04:56:07.000+00:00\", \"engagedPartyRole\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"partyName\" : \"partyName\", \"href\" : \"href\", \"id\" : \"id\", \"partyId\" : \"partyId\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"partyName\" : \"partyName\", \"href\" : \"href\", \"id\" : \"id\", \"partyId\" : \"partyId\" } ], \"characteristic\" : [ { \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"@schemaLocation\", \"value\" : \"value\" }, { \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"@schemaLocation\", \"value\" : \"value\" } ], \"agreementAuthorization\" : [ { \"date\" : \"2000-01-23T04:56:07.000+00:00\", \"@type\" : \"@type\", \"signatureRepresentation\" : \"signatureRepresentation\", \"state\" : \"state\" }, { \"date\" : \"2000-01-23T04:56:07.000+00:00\", \"@type\" : \"@type\", \"signatureRepresentation\" : \"signatureRepresentation\", \"state\" : \"state\" } ], \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"completionDate\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"statementOfIntent\" : \"statementOfIntent\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"agreementItem\" : [ { \"termOrCondition\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" } ], \"productOffering\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"@type\" : \"@type\" }, { \"termOrCondition\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" } ], \"productOffering\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"@type\" : \"@type\" } ], \"status\" : \"status\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AgreementApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a 'Agreement' by Id", operationId = "patchAgreement", description = "", tags={ "agreement", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/agreement/{id}", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.PATCH) + default ResponseEntity patchAgreement(@Parameter(description = "Identifier of the Agreement",required=true) @PathVariable("id") String id,@Parameter(description = "The Agreement to be updated" ,required=true ) @Valid @RequestBody AgreementUpdate agreement) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"agreementPeriod\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"associatedAgreement\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"documentNumber\" : 0, \"agreementSpecification\" : { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"description\" : \"description\", \"href\" : \"href\", \"id\" : \"id\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"type\" : \"type\", \"version\" : \"version\", \"initialDate\" : \"2000-01-23T04:56:07.000+00:00\", \"engagedPartyRole\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"partyName\" : \"partyName\", \"href\" : \"href\", \"id\" : \"id\", \"partyId\" : \"partyId\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"partyName\" : \"partyName\", \"href\" : \"href\", \"id\" : \"id\", \"partyId\" : \"partyId\" } ], \"characteristic\" : [ { \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"@schemaLocation\", \"value\" : \"value\" }, { \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"@schemaLocation\", \"value\" : \"value\" } ], \"agreementAuthorization\" : [ { \"date\" : \"2000-01-23T04:56:07.000+00:00\", \"@type\" : \"@type\", \"signatureRepresentation\" : \"signatureRepresentation\", \"state\" : \"state\" }, { \"date\" : \"2000-01-23T04:56:07.000+00:00\", \"@type\" : \"@type\", \"signatureRepresentation\" : \"signatureRepresentation\", \"state\" : \"state\" } ], \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"completionDate\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"statementOfIntent\" : \"statementOfIntent\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"agreementItem\" : [ { \"termOrCondition\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" } ], \"productOffering\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"@type\" : \"@type\" }, { \"termOrCondition\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" } ], \"productOffering\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"@type\" : \"@type\" } ], \"status\" : \"status\"}", Agreement.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AgreementApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a 'Agreement' by Id", operationId = "retrieveAgreement", description = "" , tags={ "agreement", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Ok" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/agreement/{id}", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.GET) + default ResponseEntity> retrieveAgreement(@Parameter(description = "Identifier of the Agreement",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"agreementPeriod\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"associatedAgreement\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"documentNumber\" : 0, \"agreementSpecification\" : { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"description\" : \"description\", \"href\" : \"href\", \"id\" : \"id\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"type\" : \"type\", \"version\" : \"version\", \"initialDate\" : \"2000-01-23T04:56:07.000+00:00\", \"engagedPartyRole\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"partyName\" : \"partyName\", \"href\" : \"href\", \"id\" : \"id\", \"partyId\" : \"partyId\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"partyName\" : \"partyName\", \"href\" : \"href\", \"id\" : \"id\", \"partyId\" : \"partyId\" } ], \"characteristic\" : [ { \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"@schemaLocation\", \"value\" : \"value\" }, { \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"@schemaLocation\", \"value\" : \"value\" } ], \"agreementAuthorization\" : [ { \"date\" : \"2000-01-23T04:56:07.000+00:00\", \"@type\" : \"@type\", \"signatureRepresentation\" : \"signatureRepresentation\", \"state\" : \"state\" }, { \"date\" : \"2000-01-23T04:56:07.000+00:00\", \"@type\" : \"@type\", \"signatureRepresentation\" : \"signatureRepresentation\", \"state\" : \"state\" } ], \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"completionDate\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"statementOfIntent\" : \"statementOfIntent\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"agreementItem\" : [ { \"termOrCondition\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" } ], \"productOffering\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"@type\" : \"@type\" }, { \"termOrCondition\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" } ], \"productOffering\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"@type\" : \"@type\" } ], \"status\" : \"status\"}, { \"agreementPeriod\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"associatedAgreement\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"documentNumber\" : 0, \"agreementSpecification\" : { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"description\" : \"description\", \"href\" : \"href\", \"id\" : \"id\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"type\" : \"type\", \"version\" : \"version\", \"initialDate\" : \"2000-01-23T04:56:07.000+00:00\", \"engagedPartyRole\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"partyName\" : \"partyName\", \"href\" : \"href\", \"id\" : \"id\", \"partyId\" : \"partyId\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"partyName\" : \"partyName\", \"href\" : \"href\", \"id\" : \"id\", \"partyId\" : \"partyId\" } ], \"characteristic\" : [ { \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"@schemaLocation\", \"value\" : \"value\" }, { \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"@schemaLocation\", \"value\" : \"value\" } ], \"agreementAuthorization\" : [ { \"date\" : \"2000-01-23T04:56:07.000+00:00\", \"@type\" : \"@type\", \"signatureRepresentation\" : \"signatureRepresentation\", \"state\" : \"state\" }, { \"date\" : \"2000-01-23T04:56:07.000+00:00\", \"@type\" : \"@type\", \"signatureRepresentation\" : \"signatureRepresentation\", \"state\" : \"state\" } ], \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"completionDate\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"statementOfIntent\" : \"statementOfIntent\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"agreementItem\" : [ { \"termOrCondition\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" } ], \"productOffering\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"@type\" : \"@type\" }, { \"termOrCondition\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"id\" : \"id\" } ], \"productOffering\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"@type\" : \"@type\" } ], \"status\" : \"status\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AgreementApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am651/api/AgreementApiController.java b/src/main/java/org/etsi/osl/tmf/am651/api/AgreementApiController.java new file mode 100644 index 0000000..2c9e65e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/api/AgreementApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +@Controller +@RequestMapping("/agreementManagement/v2/") +public class AgreementApiController implements AgreementApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public AgreementApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am651/api/AgreementSpecificationApi.java b/src/main/java/org/etsi/osl/tmf/am651/api/AgreementSpecificationApi.java new file mode 100644 index 0000000..3f47700 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/api/AgreementSpecificationApi.java @@ -0,0 +1,216 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am651.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am651.model.AgreementSpecification; +import org.etsi.osl.tmf.am651.model.AgreementSpecificationCreate; +import org.etsi.osl.tmf.am651.model.AgreementSpecificationUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +@Tag(name = "agreementSpecification", description = "the agreementSpecification API") +public interface AgreementSpecificationApi { + + Logger log = LoggerFactory.getLogger(AgreementSpecificationApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a 'AgreementSpecification'", operationId = "createAgreementSpecification", description = "", tags={ "agreementSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/agreementSpecification", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.POST) + default ResponseEntity createAgreementSpecification(@Parameter(description = "The Agreement Specification to be created" ,required=true ) @Valid @RequestBody AgreementSpecificationCreate agreementSpecification) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"isBundle\" : true, \"lifecycleStatus\" : \"lifecycleStatus\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"specCharacteristic\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"specCharacteristicValue\" : [ { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" }, { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"@schemaLocation\", \"configurable\" : true }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"specCharacteristicValue\" : [ { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" }, { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"@schemaLocation\", \"configurable\" : true } ], \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"version\" : \"version\", \"serviceCategory\" : { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, \"specificationRelationship\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\" }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\" } ], \"attachment\" : [ { \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\", \"url\" : \"url\" }, { \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\", \"url\" : \"url\" } ], \"@baseType\" : \"@baseType\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\"}", AgreementSpecification.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AgreementSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a 'AgreementSpecification' by Id", operationId = "deleteAgreementSpecification", description = "", tags={ "agreementSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/agreementSpecification/{id}", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteAgreementSpecification(@Parameter(description = "Identifier of the Agreement Specification",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AgreementSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find 'AgreementSpecification' objects", operationId = "listAgreementSpecification", description = "" , tags={ "agreementSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Ok" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/agreementSpecification", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.GET) + default ResponseEntity> listAgreementSpecification(@Parameter(description = "Comma separated properties to display in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"isBundle\" : true, \"lifecycleStatus\" : \"lifecycleStatus\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"specCharacteristic\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"specCharacteristicValue\" : [ { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" }, { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"@schemaLocation\", \"configurable\" : true }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"specCharacteristicValue\" : [ { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" }, { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"@schemaLocation\", \"configurable\" : true } ], \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"version\" : \"version\", \"serviceCategory\" : { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, \"specificationRelationship\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\" }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\" } ], \"attachment\" : [ { \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\", \"url\" : \"url\" }, { \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\", \"url\" : \"url\" } ], \"@baseType\" : \"@baseType\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\"}, { \"isBundle\" : true, \"lifecycleStatus\" : \"lifecycleStatus\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"specCharacteristic\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"specCharacteristicValue\" : [ { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" }, { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"@schemaLocation\", \"configurable\" : true }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"specCharacteristicValue\" : [ { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" }, { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"@schemaLocation\", \"configurable\" : true } ], \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"version\" : \"version\", \"serviceCategory\" : { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, \"specificationRelationship\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\" }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\" } ], \"attachment\" : [ { \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\", \"url\" : \"url\" }, { \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\", \"url\" : \"url\" } ], \"@baseType\" : \"@baseType\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AgreementSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a 'AgreementSpecification' by Id", operationId = "patchAgreementSpecification", description = "", tags={ "agreementSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/agreementSpecification/{id}", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.PATCH) + default ResponseEntity patchAgreementSpecification(@Parameter(description = "Identifier of the Agreement Specification",required=true) @PathVariable("id") String id,@Parameter(description = "The Agreement Specification to be updated" ,required=true ) @Valid @RequestBody AgreementSpecificationUpdate agreementSpecification) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"isBundle\" : true, \"lifecycleStatus\" : \"lifecycleStatus\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"specCharacteristic\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"specCharacteristicValue\" : [ { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" }, { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"@schemaLocation\", \"configurable\" : true }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"specCharacteristicValue\" : [ { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" }, { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"@schemaLocation\", \"configurable\" : true } ], \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"version\" : \"version\", \"serviceCategory\" : { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, \"specificationRelationship\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\" }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\" } ], \"attachment\" : [ { \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\", \"url\" : \"url\" }, { \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\", \"url\" : \"url\" } ], \"@baseType\" : \"@baseType\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\"}", AgreementSpecification.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AgreementSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a 'AgreementSpecification' by Id", operationId = "retrieveAgreementSpecification", description = "" , tags={ "agreementSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Ok" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/agreementSpecification/{id}", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.GET) + default ResponseEntity> retrieveAgreementSpecification(@Parameter(description = "Identifier of the Agreement Specification",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"isBundle\" : true, \"lifecycleStatus\" : \"lifecycleStatus\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"specCharacteristic\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"specCharacteristicValue\" : [ { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" }, { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"@schemaLocation\", \"configurable\" : true }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"specCharacteristicValue\" : [ { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" }, { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"@schemaLocation\", \"configurable\" : true } ], \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"version\" : \"version\", \"serviceCategory\" : { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, \"specificationRelationship\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\" }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\" } ], \"attachment\" : [ { \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\", \"url\" : \"url\" }, { \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\", \"url\" : \"url\" } ], \"@baseType\" : \"@baseType\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\"}, { \"isBundle\" : true, \"lifecycleStatus\" : \"lifecycleStatus\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"specCharacteristic\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"specCharacteristicValue\" : [ { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" }, { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"@schemaLocation\", \"configurable\" : true }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"specCharacteristicValue\" : [ { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" }, { \"default\" : true, \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"value\" : \"value\", \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"@schemaLocation\", \"configurable\" : true } ], \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"version\" : \"version\", \"serviceCategory\" : { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, \"specificationRelationship\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\" }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\" } ], \"attachment\" : [ { \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\", \"url\" : \"url\" }, { \"@type\" : \"@type\", \"href\" : \"href\", \"id\" : \"id\", \"type\" : \"type\", \"url\" : \"url\" } ], \"@baseType\" : \"@baseType\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AgreementSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am651/api/AgreementSpecificationApiController.java b/src/main/java/org/etsi/osl/tmf/am651/api/AgreementSpecificationApiController.java new file mode 100644 index 0000000..6cf2d26 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/api/AgreementSpecificationApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +@Controller +@RequestMapping("/agreementManagement/v2/") +public class AgreementSpecificationApiController implements AgreementSpecificationApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public AgreementSpecificationApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am651/api/ApiException.java b/src/main/java/org/etsi/osl/tmf/am651/api/ApiException.java new file mode 100644 index 0000000..710571a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/api/ApiException.java @@ -0,0 +1,30 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am651/api/ApiOriginFilter.java b/src/main/java/org/etsi/osl/tmf/am651/api/ApiOriginFilter.java new file mode 100644 index 0000000..a3ba454 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/api/ApiOriginFilter.java @@ -0,0 +1,51 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.api; + +import java.io.IOException; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class ApiOriginFilter implements jakarta.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am651/api/ApiResponseMessage.java b/src/main/java/org/etsi/osl/tmf/am651/api/ApiResponseMessage.java new file mode 100644 index 0000000..a7b0ea1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/api/ApiResponseMessage.java @@ -0,0 +1,89 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.api; + +import jakarta.xml.bind.annotation.XmlTransient; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +@jakarta.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am651/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/am651/api/HubApi.java new file mode 100644 index 0000000..df34058 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/api/HubApi.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am651.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am651.model.EventSubscription; +import org.etsi.osl.tmf.am651.model.EventSubscriptionInput; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +@Tag(name = "hub", description = "the hub API") +public interface HubApi { + + Logger log = LoggerFactory.getLogger(HubApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Register a listener", operationId = "registerListener", description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Subscribed" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.POST) + default ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Unregister a listener", operationId = "unregisterListener", description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method not allowed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub/{id}", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.DELETE) + default ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am651/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/am651/api/HubApiController.java new file mode 100644 index 0000000..fdce842 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/api/HubApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +@Controller("HubApiController651") +@RequestMapping("/agreementManagement/v2/") +public class HubApiController implements HubApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public HubApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am651/api/NotFoundException.java b/src/main/java/org/etsi/osl/tmf/am651/api/NotFoundException.java new file mode 100644 index 0000000..c6a41e6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/api/NotFoundException.java @@ -0,0 +1,30 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class NotFoundException extends ApiException { + private int code; + public NotFoundException (int code, String msg) { + super(code, msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am651/api/RFC3339DateFormat.java b/src/main/java/org/etsi/osl/tmf/am651/api/RFC3339DateFormat.java new file mode 100644 index 0000000..7efad72 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/api/RFC3339DateFormat.java @@ -0,0 +1,41 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.api; + +import java.text.FieldPosition; +import java.util.Date; + +import com.fasterxml.jackson.databind.util.ISO8601DateFormat; +import com.fasterxml.jackson.databind.util.ISO8601Utils; + + +public class RFC3339DateFormat extends ISO8601DateFormat { + + private static final long serialVersionUID = 1L; + + // Same as ISO8601DateFormat but serializing milliseconds. + @Override + public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) { + String value = ISO8601Utils.format(date, true); + toAppendTo.append(value); + return toAppendTo; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/Agreement.java b/src/main/java/org/etsi/osl/tmf/am651/model/Agreement.java new file mode 100644 index 0000000..9dd3e97 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/Agreement.java @@ -0,0 +1,659 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications. + */ +@Schema(description = "An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class Agreement { + @JsonProperty("agreementPeriod") + private TimePeriod agreementPeriod = null; + + @JsonProperty("completionDate") + private TimePeriod completionDate = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("documentNumber") + private Integer documentNumber = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("initialDate") + private OffsetDateTime initialDate = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("statementOfIntent") + private String statementOfIntent = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("type") + private String typeAgreement = null; + + @JsonProperty("version") + private String version = null; + + @JsonProperty("agreementSpecification") + private AgreementSpecificationRef agreementSpecification = null; + + @JsonProperty("agreementItem") + @Valid + private List agreementItem = null; + + @JsonProperty("engagedPartyRole") + @Valid + private List engagedPartyRole = null; + + @JsonProperty("agreementAuthorization") + @Valid + private List agreementAuthorization = null; + + @JsonProperty("characteristic") + @Valid + private List characteristic = null; + + @JsonProperty("associatedAgreement") + @Valid + private List associatedAgreement = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@baseType") + private String baseType = null; + + public Agreement agreementPeriod(TimePeriod agreementPeriod) { + this.agreementPeriod = agreementPeriod; + return this; + } + + /** + * The time period during which the Agreement is in effect. + * @return agreementPeriod + **/ + @Schema(description = "The time period during which the Agreement is in effect.") + + @Valid + + public TimePeriod getAgreementPeriod() { + return agreementPeriod; + } + + public void setAgreementPeriod(TimePeriod agreementPeriod) { + this.agreementPeriod = agreementPeriod; + } + + public Agreement completionDate(TimePeriod completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Date at which the agreement is completed + * @return completionDate + **/ + @Schema(description = "Date at which the agreement is completed") + + @Valid + + public TimePeriod getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(TimePeriod completionDate) { + this.completionDate = completionDate; + } + + public Agreement description(String description) { + this.description = description; + return this; + } + + /** + * Narrative that explains the agreement and details about the it , such as why the agreement is taking place. + * @return description + **/ + @Schema(description = "Narrative that explains the agreement and details about the it , such as why the agreement is taking place.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Agreement documentNumber(Integer documentNumber) { + this.documentNumber = documentNumber; + return this; + } + + /** + * A reference number assigned to an Agreement that follows a prescribed numbering system. + * @return documentNumber + **/ + @Schema(description = "A reference number assigned to an Agreement that follows a prescribed numbering system.") + + + public Integer getDocumentNumber() { + return documentNumber; + } + + public void setDocumentNumber(Integer documentNumber) { + this.documentNumber = documentNumber; + } + + public Agreement href(String href) { + this.href = href; + return this; + } + + /** + * Unique url identifying the agreement as a resource + * @return href + **/ + @Schema(description = "Unique url identifying the agreement as a resource") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public Agreement id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier for the agreement + * @return id + **/ + @Schema(description = "Unique identifier for the agreement") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Agreement initialDate(OffsetDateTime initialDate) { + this.initialDate = initialDate; + return this; + } + + /** + * Date at which the agreement was initialized + * @return initialDate + **/ + @Schema(description = "Date at which the agreement was initialized") + + @Valid + + public OffsetDateTime getInitialDate() { + return initialDate; + } + + public void setInitialDate(OffsetDateTime initialDate) { + this.initialDate = initialDate; + } + + public Agreement name(String name) { + this.name = name; + return this; + } + + /** + * A human-readable name for the agreement + * @return name + **/ + @Schema(description = "A human-readable name for the agreement") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Agreement statementOfIntent(String statementOfIntent) { + this.statementOfIntent = statementOfIntent; + return this; + } + + /** + * An overview and goals of the Agreement. + * @return statementOfIntent + **/ + @Schema(description = "An overview and goals of the Agreement.") + + + public String getStatementOfIntent() { + return statementOfIntent; + } + + public void setStatementOfIntent(String statementOfIntent) { + this.statementOfIntent = statementOfIntent; + } + + public Agreement status(String status) { + this.status = status; + return this; + } + + /** + * The current status of the agreement. Typical values are: in process, approved and rejected. + * @return status + **/ + @Schema(description = "The current status of the agreement. Typical values are: in process, approved and rejected.") + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Agreement typeAgreement(String type) { + this.typeAgreement = type; + return this; + } + + /** + * The type of the agreement. For example \"commercial\". + * @return type + **/ + @Schema(description = "The type of the agreement. For example \"commercial\".") + + + public String getTypeAgreement() { + return typeAgreement; + } + + public void setTypeAgreement(String type) { + this.typeAgreement = type; + } + + public Agreement version(String version) { + this.version = version; + return this; + } + + /** + * A string identifying the version of the agreement. + * @return version + **/ + @Schema(description = "A string identifying the version of the agreement.") + + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public Agreement agreementSpecification(AgreementSpecificationRef agreementSpecification) { + this.agreementSpecification = agreementSpecification; + return this; + } + + /** + * Get agreementSpecification + * @return agreementSpecification + **/ + @Schema(description = "") + + @Valid + + public AgreementSpecificationRef getAgreementSpecification() { + return agreementSpecification; + } + + public void setAgreementSpecification(AgreementSpecificationRef agreementSpecification) { + this.agreementSpecification = agreementSpecification; + } + + public Agreement agreementItem(List agreementItem) { + this.agreementItem = agreementItem; + return this; + } + + public Agreement addAgreementItemItem(AgreementItem agreementItemItem) { + if (this.agreementItem == null) { + this.agreementItem = new ArrayList<>(); + } + this.agreementItem.add(agreementItemItem); + return this; + } + + /** + * Get agreementItem + * @return agreementItem + **/ + @Schema(description = "") + + @Valid + + public List getAgreementItem() { + return agreementItem; + } + + public void setAgreementItem(List agreementItem) { + this.agreementItem = agreementItem; + } + + public Agreement engagedPartyRole(List engagedPartyRole) { + this.engagedPartyRole = engagedPartyRole; + return this; + } + + public Agreement addEngagedPartyRoleItem(PartyRoleRef engagedPartyRoleItem) { + if (this.engagedPartyRole == null) { + this.engagedPartyRole = new ArrayList<>(); + } + this.engagedPartyRole.add(engagedPartyRoleItem); + return this; + } + + /** + * Get engagedPartyRole + * @return engagedPartyRole + **/ + @Schema(description = "") + + @Valid + + public List getEngagedPartyRole() { + return engagedPartyRole; + } + + public void setEngagedPartyRole(List engagedPartyRole) { + this.engagedPartyRole = engagedPartyRole; + } + + public Agreement agreementAuthorization(List agreementAuthorization) { + this.agreementAuthorization = agreementAuthorization; + return this; + } + + public Agreement addAgreementAuthorizationItem(AgreementAuthorization agreementAuthorizationItem) { + if (this.agreementAuthorization == null) { + this.agreementAuthorization = new ArrayList<>(); + } + this.agreementAuthorization.add(agreementAuthorizationItem); + return this; + } + + /** + * Get agreementAuthorization + * @return agreementAuthorization + **/ + @Schema(description = "") + + @Valid + + public List getAgreementAuthorization() { + return agreementAuthorization; + } + + public void setAgreementAuthorization(List agreementAuthorization) { + this.agreementAuthorization = agreementAuthorization; + } + + public Agreement characteristic(List characteristic) { + this.characteristic = characteristic; + return this; + } + + public Agreement addCharacteristicItem(Characteristic characteristicItem) { + if (this.characteristic == null) { + this.characteristic = new ArrayList<>(); + } + this.characteristic.add(characteristicItem); + return this; + } + + /** + * Get characteristic + * @return characteristic + **/ + @Schema(description = "") + + @Valid + + public List getCharacteristic() { + return characteristic; + } + + public void setCharacteristic(List characteristic) { + this.characteristic = characteristic; + } + + public Agreement associatedAgreement(List associatedAgreement) { + this.associatedAgreement = associatedAgreement; + return this; + } + + public Agreement addAssociatedAgreementItem(AgreementRef associatedAgreementItem) { + if (this.associatedAgreement == null) { + this.associatedAgreement = new ArrayList<>(); + } + this.associatedAgreement.add(associatedAgreementItem); + return this; + } + + /** + * Get associatedAgreement + * @return associatedAgreement + **/ + @Schema(description = "") + + @Valid + + public List getAssociatedAgreement() { + return associatedAgreement; + } + + public void setAssociatedAgreement(List associatedAgreement) { + this.associatedAgreement = associatedAgreement; + } + + public Agreement type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public Agreement schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * @return schemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Agreement baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * @return baseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Agreement agreement = (Agreement) o; + return Objects.equals(this.agreementPeriod, agreement.agreementPeriod) && + Objects.equals(this.completionDate, agreement.completionDate) && + Objects.equals(this.description, agreement.description) && + Objects.equals(this.documentNumber, agreement.documentNumber) && + Objects.equals(this.href, agreement.href) && + Objects.equals(this.id, agreement.id) && + Objects.equals(this.initialDate, agreement.initialDate) && + Objects.equals(this.name, agreement.name) && + Objects.equals(this.statementOfIntent, agreement.statementOfIntent) && + Objects.equals(this.status, agreement.status) && + Objects.equals(this.type, agreement.type) && + Objects.equals(this.version, agreement.version) && + Objects.equals(this.agreementSpecification, agreement.agreementSpecification) && + Objects.equals(this.agreementItem, agreement.agreementItem) && + Objects.equals(this.engagedPartyRole, agreement.engagedPartyRole) && + Objects.equals(this.agreementAuthorization, agreement.agreementAuthorization) && + Objects.equals(this.characteristic, agreement.characteristic) && + Objects.equals(this.associatedAgreement, agreement.associatedAgreement) && + Objects.equals(this.type, agreement.type) && + Objects.equals(this.schemaLocation, agreement.schemaLocation) && + Objects.equals(this.baseType, agreement.baseType); + } + + @Override + public int hashCode() { + return Objects.hash(agreementPeriod, completionDate, description, documentNumber, href, id, initialDate, name, statementOfIntent, status, type, version, agreementSpecification, agreementItem, engagedPartyRole, agreementAuthorization, characteristic, associatedAgreement, type, schemaLocation, baseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Agreement {\n"); + + sb.append(" agreementPeriod: ").append(toIndentedString(agreementPeriod)).append("\n"); + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" documentNumber: ").append(toIndentedString(documentNumber)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" initialDate: ").append(toIndentedString(initialDate)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" statementOfIntent: ").append(toIndentedString(statementOfIntent)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" agreementSpecification: ").append(toIndentedString(agreementSpecification)).append("\n"); + sb.append(" agreementItem: ").append(toIndentedString(agreementItem)).append("\n"); + sb.append(" engagedPartyRole: ").append(toIndentedString(engagedPartyRole)).append("\n"); + sb.append(" agreementAuthorization: ").append(toIndentedString(agreementAuthorization)).append("\n"); + sb.append(" characteristic: ").append(toIndentedString(characteristic)).append("\n"); + sb.append(" associatedAgreement: ").append(toIndentedString(associatedAgreement)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/AgreementAttachment.java b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementAttachment.java new file mode 100644 index 0000000..fbff9a2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementAttachment.java @@ -0,0 +1,200 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Represents a complementary piece of information to describe the agreement. Could be a document, picture, a video or any kind of multimedia content. + */ +@Schema(description = "Represents a complementary piece of information to describe the agreement. Could be a document, picture, a video or any kind of multimedia content.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class AgreementAttachment { + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("type") + private String typeAgreementAttachment = null; + + @JsonProperty("url") + private String url = null; + + @JsonProperty("@type") + private String type = null; + + public AgreementAttachment href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the attachment + * @return href + **/ + @Schema(description = "Reference of the attachment") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public AgreementAttachment id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the attachment + * @return id + **/ + @Schema(description = "Unique identifier of the attachment") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AgreementAttachment typeAgreementAttachment(String type) { + this.type = type; + return this; + } + + /** + * Attachment type such as video, picture + * @return type + **/ + @Schema(description = "Attachment type such as video, picture") + + + public String getTypeAgreementAttachment() { + return typeAgreementAttachment; + } + + public void setTypeAgreementAttachment(String type) { + this.typeAgreementAttachment = type; + } + + public AgreementAttachment url(String url) { + this.url = url; + return this; + } + + /** + * Uniform Resource Locator, is a web page address (a subset of URI) + * @return url + **/ + @Schema(description = "Uniform Resource Locator, is a web page address (a subset of URI)") + + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public AgreementAttachment type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AgreementAttachment agreementAttachment = (AgreementAttachment) o; + return Objects.equals(this.href, agreementAttachment.href) && + Objects.equals(this.id, agreementAttachment.id) && + Objects.equals(this.type, agreementAttachment.type) && + Objects.equals(this.url, agreementAttachment.url) && + Objects.equals(this.type, agreementAttachment.type); + } + + @Override + public int hashCode() { + return Objects.hash(href, id, type, url, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgreementAttachment {\n"); + + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/AgreementAuthorization.java b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementAuthorization.java new file mode 100644 index 0000000..23fe3df --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementAuthorization.java @@ -0,0 +1,178 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * A business participant that is responsible for approving the agreement. + */ +@Schema(description = "A business participant that is responsible for approving the agreement.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class AgreementAuthorization { + @JsonProperty("date") + private OffsetDateTime date = null; + + @JsonProperty("signatureRepresentation") + private String signatureRepresentation = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("@type") + private String type = null; + + public AgreementAuthorization date(OffsetDateTime date) { + this.date = date; + return this; + } + + /** + * The date associated with the authorization state. + * @return date + **/ + @Schema(description = "The date associated with the authorization state.") + + @Valid + + public OffsetDateTime getDate() { + return date; + } + + public void setDate(OffsetDateTime date) { + this.date = date; + } + + public AgreementAuthorization signatureRepresentation(String signatureRepresentation) { + this.signatureRepresentation = signatureRepresentation; + return this; + } + + /** + * Indication that represents whether the signature is a physical paper signature or a digital signature. + * @return signatureRepresentation + **/ + @Schema(description = "Indication that represents whether the signature is a physical paper signature or a digital signature.") + + + public String getSignatureRepresentation() { + return signatureRepresentation; + } + + public void setSignatureRepresentation(String signatureRepresentation) { + this.signatureRepresentation = signatureRepresentation; + } + + public AgreementAuthorization state(String state) { + this.state = state; + return this; + } + + /** + * Current status of the authorization, for example in process, approved, rejected. + * @return state + **/ + @Schema(description = "Current status of the authorization, for example in process, approved, rejected.") + + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public AgreementAuthorization type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AgreementAuthorization agreementAuthorization = (AgreementAuthorization) o; + return Objects.equals(this.date, agreementAuthorization.date) && + Objects.equals(this.signatureRepresentation, agreementAuthorization.signatureRepresentation) && + Objects.equals(this.state, agreementAuthorization.state) && + Objects.equals(this.type, agreementAuthorization.type); + } + + @Override + public int hashCode() { + return Objects.hash(date, signatureRepresentation, state, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgreementAuthorization {\n"); + + sb.append(" date: ").append(toIndentedString(date)).append("\n"); + sb.append(" signatureRepresentation: ").append(toIndentedString(signatureRepresentation)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/AgreementCreate.java b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementCreate.java new file mode 100644 index 0000000..841688a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementCreate.java @@ -0,0 +1,606 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications. Skipped properties: id,href + */ +@Schema(description = "An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class AgreementCreate { + @JsonProperty("agreementPeriod") + private TimePeriod agreementPeriod = null; + + @JsonProperty("completionDate") + private TimePeriod completionDate = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("documentNumber") + private Integer documentNumber = null; + + @JsonProperty("initialDate") + private OffsetDateTime initialDate = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("statementOfIntent") + private String statementOfIntent = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("type") + private String typeAgreementCreate = null; + + @JsonProperty("version") + private String version = null; + + @JsonProperty("agreementSpecification") + private AgreementSpecificationRef agreementSpecification = null; + + @JsonProperty("agreementItem") + @Valid + private List agreementItem = new ArrayList<>(); + + @JsonProperty("engagedPartyRole") + @Valid + private List engagedPartyRole = new ArrayList<>(); + + @JsonProperty("agreementAuthorization") + @Valid + private List agreementAuthorization = null; + + @JsonProperty("characteristic") + @Valid + private List characteristic = null; + + @JsonProperty("associatedAgreement") + @Valid + private List associatedAgreement = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@baseType") + private String baseType = null; + + public AgreementCreate agreementPeriod(TimePeriod agreementPeriod) { + this.agreementPeriod = agreementPeriod; + return this; + } + + /** + * The time period during which the Agreement is in effect. + * @return agreementPeriod + **/ + @Schema(description = "The time period during which the Agreement is in effect.") + + @Valid + + public TimePeriod getAgreementPeriod() { + return agreementPeriod; + } + + public void setAgreementPeriod(TimePeriod agreementPeriod) { + this.agreementPeriod = agreementPeriod; + } + + public AgreementCreate completionDate(TimePeriod completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Date at which the agreement is completed + * @return completionDate + **/ + @Schema(description = "Date at which the agreement is completed") + + @Valid + + public TimePeriod getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(TimePeriod completionDate) { + this.completionDate = completionDate; + } + + public AgreementCreate description(String description) { + this.description = description; + return this; + } + + /** + * Narrative that explains the agreement and details about the it , such as why the agreement is taking place. + * @return description + **/ + @Schema(description = "Narrative that explains the agreement and details about the it , such as why the agreement is taking place.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public AgreementCreate documentNumber(Integer documentNumber) { + this.documentNumber = documentNumber; + return this; + } + + /** + * A reference number assigned to an Agreement that follows a prescribed numbering system. + * @return documentNumber + **/ + @Schema(description = "A reference number assigned to an Agreement that follows a prescribed numbering system.") + + + public Integer getDocumentNumber() { + return documentNumber; + } + + public void setDocumentNumber(Integer documentNumber) { + this.documentNumber = documentNumber; + } + + public AgreementCreate initialDate(OffsetDateTime initialDate) { + this.initialDate = initialDate; + return this; + } + + /** + * Date at which the agreement was initialized + * @return initialDate + **/ + @Schema(description = "Date at which the agreement was initialized") + + @Valid + + public OffsetDateTime getInitialDate() { + return initialDate; + } + + public void setInitialDate(OffsetDateTime initialDate) { + this.initialDate = initialDate; + } + + public AgreementCreate name(String name) { + this.name = name; + return this; + } + + /** + * A human-readable name for the agreement + * @return name + **/ + @Schema(description = "A human-readable name for the agreement") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public AgreementCreate statementOfIntent(String statementOfIntent) { + this.statementOfIntent = statementOfIntent; + return this; + } + + /** + * An overview and goals of the Agreement. + * @return statementOfIntent + **/ + @Schema(description = "An overview and goals of the Agreement.") + + + public String getStatementOfIntent() { + return statementOfIntent; + } + + public void setStatementOfIntent(String statementOfIntent) { + this.statementOfIntent = statementOfIntent; + } + + public AgreementCreate status(String status) { + this.status = status; + return this; + } + + /** + * The current status of the agreement. Typical values are: in process, approved and rejected. + * @return status + **/ + @Schema(description = "The current status of the agreement. Typical values are: in process, approved and rejected.") + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public AgreementCreate typeAgreementCreate(String type) { + this.typeAgreementCreate = type; + return this; + } + + /** + * The type of the agreement. For example \"commercial\". + * @return type + **/ + @Schema(description = "The type of the agreement. For example \"commercial\".") + @NotNull + + + public String getTypeAgreementCreate() { + return typeAgreementCreate; + } + + public void setTypeAgreementCreate(String type) { + this.typeAgreementCreate = type; + } + + public AgreementCreate version(String version) { + this.version = version; + return this; + } + + /** + * A string identifying the version of the agreement. + * @return version + **/ + @Schema(description = "A string identifying the version of the agreement.") + + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public AgreementCreate agreementSpecification(AgreementSpecificationRef agreementSpecification) { + this.agreementSpecification = agreementSpecification; + return this; + } + + /** + * Get agreementSpecification + * @return agreementSpecification + **/ + @Schema(description = "") + + @Valid + + public AgreementSpecificationRef getAgreementSpecification() { + return agreementSpecification; + } + + public void setAgreementSpecification(AgreementSpecificationRef agreementSpecification) { + this.agreementSpecification = agreementSpecification; + } + + public AgreementCreate agreementItem(List agreementItem) { + this.agreementItem = agreementItem; + return this; + } + + public AgreementCreate addAgreementItemItem(AgreementItem agreementItemItem) { + this.agreementItem.add(agreementItemItem); + return this; + } + + /** + * Get agreementItem + * @return agreementItem + **/ + @Schema(description = "") + @NotNull + + @Valid + + public List getAgreementItem() { + return agreementItem; + } + + public void setAgreementItem(List agreementItem) { + this.agreementItem = agreementItem; + } + + public AgreementCreate engagedPartyRole(List engagedPartyRole) { + this.engagedPartyRole = engagedPartyRole; + return this; + } + + public AgreementCreate addEngagedPartyRoleItem(PartyRoleRef engagedPartyRoleItem) { + this.engagedPartyRole.add(engagedPartyRoleItem); + return this; + } + + /** + * Get engagedPartyRole + * @return engagedPartyRole + **/ + @Schema(description = "") + @NotNull + + @Valid + + public List getEngagedPartyRole() { + return engagedPartyRole; + } + + public void setEngagedPartyRole(List engagedPartyRole) { + this.engagedPartyRole = engagedPartyRole; + } + + public AgreementCreate agreementAuthorization(List agreementAuthorization) { + this.agreementAuthorization = agreementAuthorization; + return this; + } + + public AgreementCreate addAgreementAuthorizationItem(AgreementAuthorization agreementAuthorizationItem) { + if (this.agreementAuthorization == null) { + this.agreementAuthorization = new ArrayList<>(); + } + this.agreementAuthorization.add(agreementAuthorizationItem); + return this; + } + + /** + * Get agreementAuthorization + * @return agreementAuthorization + **/ + @Schema(description = "") + + @Valid + + public List getAgreementAuthorization() { + return agreementAuthorization; + } + + public void setAgreementAuthorization(List agreementAuthorization) { + this.agreementAuthorization = agreementAuthorization; + } + + public AgreementCreate characteristic(List characteristic) { + this.characteristic = characteristic; + return this; + } + + public AgreementCreate addCharacteristicItem(Characteristic characteristicItem) { + if (this.characteristic == null) { + this.characteristic = new ArrayList<>(); + } + this.characteristic.add(characteristicItem); + return this; + } + + /** + * Get characteristic + * @return characteristic + **/ + @Schema(description = "") + + @Valid + + public List getCharacteristic() { + return characteristic; + } + + public void setCharacteristic(List characteristic) { + this.characteristic = characteristic; + } + + public AgreementCreate associatedAgreement(List associatedAgreement) { + this.associatedAgreement = associatedAgreement; + return this; + } + + public AgreementCreate addAssociatedAgreementItem(AgreementRef associatedAgreementItem) { + if (this.associatedAgreement == null) { + this.associatedAgreement = new ArrayList<>(); + } + this.associatedAgreement.add(associatedAgreementItem); + return this; + } + + /** + * Get associatedAgreement + * @return associatedAgreement + **/ + @Schema(description = "") + + @Valid + + public List getAssociatedAgreement() { + return associatedAgreement; + } + + public void setAssociatedAgreement(List associatedAgreement) { + this.associatedAgreement = associatedAgreement; + } + + public AgreementCreate type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public AgreementCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * @return schemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public AgreementCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * @return baseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AgreementCreate agreementCreate = (AgreementCreate) o; + return Objects.equals(this.agreementPeriod, agreementCreate.agreementPeriod) && + Objects.equals(this.completionDate, agreementCreate.completionDate) && + Objects.equals(this.description, agreementCreate.description) && + Objects.equals(this.documentNumber, agreementCreate.documentNumber) && + Objects.equals(this.initialDate, agreementCreate.initialDate) && + Objects.equals(this.name, agreementCreate.name) && + Objects.equals(this.statementOfIntent, agreementCreate.statementOfIntent) && + Objects.equals(this.status, agreementCreate.status) && + Objects.equals(this.type, agreementCreate.type) && + Objects.equals(this.version, agreementCreate.version) && + Objects.equals(this.agreementSpecification, agreementCreate.agreementSpecification) && + Objects.equals(this.agreementItem, agreementCreate.agreementItem) && + Objects.equals(this.engagedPartyRole, agreementCreate.engagedPartyRole) && + Objects.equals(this.agreementAuthorization, agreementCreate.agreementAuthorization) && + Objects.equals(this.characteristic, agreementCreate.characteristic) && + Objects.equals(this.associatedAgreement, agreementCreate.associatedAgreement) && + Objects.equals(this.type, agreementCreate.type) && + Objects.equals(this.schemaLocation, agreementCreate.schemaLocation) && + Objects.equals(this.baseType, agreementCreate.baseType); + } + + @Override + public int hashCode() { + return Objects.hash(agreementPeriod, completionDate, description, documentNumber, initialDate, name, statementOfIntent, status, type, version, agreementSpecification, agreementItem, engagedPartyRole, agreementAuthorization, characteristic, associatedAgreement, type, schemaLocation, baseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgreementCreate {\n"); + + sb.append(" agreementPeriod: ").append(toIndentedString(agreementPeriod)).append("\n"); + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" documentNumber: ").append(toIndentedString(documentNumber)).append("\n"); + sb.append(" initialDate: ").append(toIndentedString(initialDate)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" statementOfIntent: ").append(toIndentedString(statementOfIntent)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" agreementSpecification: ").append(toIndentedString(agreementSpecification)).append("\n"); + sb.append(" agreementItem: ").append(toIndentedString(agreementItem)).append("\n"); + sb.append(" engagedPartyRole: ").append(toIndentedString(engagedPartyRole)).append("\n"); + sb.append(" agreementAuthorization: ").append(toIndentedString(agreementAuthorization)).append("\n"); + sb.append(" characteristic: ").append(toIndentedString(characteristic)).append("\n"); + sb.append(" associatedAgreement: ").append(toIndentedString(associatedAgreement)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/AgreementItem.java b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementItem.java new file mode 100644 index 0000000..a07440a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementItem.java @@ -0,0 +1,173 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * A part of the agreement expressed in terms of a product offering and possibly including specific terms and conditions. + */ +@Schema(description = "A part of the agreement expressed in terms of a product offering and possibly including specific terms and conditions.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class AgreementItem { + @JsonProperty("productOffering") + @Valid + private List productOffering = null; + + @JsonProperty("termOrCondition") + @Valid + private List termOrCondition = null; + + @JsonProperty("@type") + private String type = null; + + public AgreementItem productOffering(List productOffering) { + this.productOffering = productOffering; + return this; + } + + public AgreementItem addProductOfferingItem(ProductOfferingRef productOfferingItem) { + if (this.productOffering == null) { + this.productOffering = new ArrayList<>(); + } + this.productOffering.add(productOfferingItem); + return this; + } + + /** + * Get productOffering + * @return productOffering + **/ + @Schema(description = "") + + @Valid + + public List getProductOffering() { + return productOffering; + } + + public void setProductOffering(List productOffering) { + this.productOffering = productOffering; + } + + public AgreementItem termOrCondition(List termOrCondition) { + this.termOrCondition = termOrCondition; + return this; + } + + public AgreementItem addTermOrConditionItem(AgreementTermOrCondition termOrConditionItem) { + if (this.termOrCondition == null) { + this.termOrCondition = new ArrayList<>(); + } + this.termOrCondition.add(termOrConditionItem); + return this; + } + + /** + * Get termOrCondition + * @return termOrCondition + **/ + @Schema(description = "") + + @Valid + + public List getTermOrCondition() { + return termOrCondition; + } + + public void setTermOrCondition(List termOrCondition) { + this.termOrCondition = termOrCondition; + } + + public AgreementItem type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AgreementItem agreementItem = (AgreementItem) o; + return Objects.equals(this.productOffering, agreementItem.productOffering) && + Objects.equals(this.termOrCondition, agreementItem.termOrCondition) && + Objects.equals(this.type, agreementItem.type); + } + + @Override + public int hashCode() { + return Objects.hash(productOffering, termOrCondition, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgreementItem {\n"); + + sb.append(" productOffering: ").append(toIndentedString(productOffering)).append("\n"); + sb.append(" termOrCondition: ").append(toIndentedString(termOrCondition)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/AgreementRef.java b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementRef.java new file mode 100644 index 0000000..98aa302 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementRef.java @@ -0,0 +1,124 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * Agreement reference. An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications. + */ +@Schema(description = "Agreement reference. An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") +@Entity(name = "AgreementRef") +public class AgreementRef extends BaseRootNamedEntity{ + + @JsonProperty("id") + private String id = null; + + @JsonProperty("@referredType") + private String referredType = null; + + + public AgreementRef id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the agreement + * @return id + **/ + @Schema(description = "Identifier of the agreement") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AgreementRef agreementRef = (AgreementRef) o; + return Objects.equals(this.href, agreementRef.href) && + Objects.equals(this.id, agreementRef.id) && + Objects.equals(this.name, agreementRef.name) && + Objects.equals(this.referredType, agreementRef.referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgreementRef {\n"); + + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecCharacteristic.java b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecCharacteristic.java new file mode 100644 index 0000000..1ae0e42 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecCharacteristic.java @@ -0,0 +1,288 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * A characteristic quality or distinctive feature of an agreement. + */ +@Schema(description = "A characteristic quality or distinctive feature of an agreement.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class AgreementSpecCharacteristic { + @JsonProperty("configurable") + private Boolean configurable = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("specCharacteristicValue") + @Valid + private List specCharacteristicValue = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + public AgreementSpecCharacteristic configurable(Boolean configurable) { + this.configurable = configurable; + return this; + } + + /** + * If true, the Boolean indicates that the characteristic is configurable + * @return configurable + **/ + @Schema(description = "If true, the Boolean indicates that the characteristic is configurable") + + + public Boolean isConfigurable() { + return configurable; + } + + public void setConfigurable(Boolean configurable) { + this.configurable = configurable; + } + + public AgreementSpecCharacteristic description(String description) { + this.description = description; + return this; + } + + /** + * A narrative that explains in detail what the characteristic is + * @return description + **/ + @Schema(description = "A narrative that explains in detail what the characteristic is") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public AgreementSpecCharacteristic name(String name) { + this.name = name; + return this; + } + + /** + * Name of the characteristic being specified. + * @return name + **/ + @Schema(description = "Name of the characteristic being specified.") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public AgreementSpecCharacteristic validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the specification characteristic is valid + * @return validFor + **/ + @Schema(description = "The period for which the specification characteristic is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public AgreementSpecCharacteristic valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * A kind of value that the characteristic can take on, such as numeric, text and so forth + * @return valueType + **/ + @Schema(description = "A kind of value that the characteristic can take on, such as numeric, text and so forth") + + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public AgreementSpecCharacteristic specCharacteristicValue(List specCharacteristicValue) { + this.specCharacteristicValue = specCharacteristicValue; + return this; + } + + public AgreementSpecCharacteristic addSpecCharacteristicValueItem(AgreementSpecCharacteristicValue specCharacteristicValueItem) { + if (this.specCharacteristicValue == null) { + this.specCharacteristicValue = new ArrayList<>(); + } + this.specCharacteristicValue.add(specCharacteristicValueItem); + return this; + } + + /** + * Get specCharacteristicValue + * @return specCharacteristicValue + **/ + @Schema(description = "") + + @Valid + + public List getSpecCharacteristicValue() { + return specCharacteristicValue; + } + + public void setSpecCharacteristicValue(List specCharacteristicValue) { + this.specCharacteristicValue = specCharacteristicValue; + } + + public AgreementSpecCharacteristic type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public AgreementSpecCharacteristic schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * @return schemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AgreementSpecCharacteristic agreementSpecCharacteristic = (AgreementSpecCharacteristic) o; + return Objects.equals(this.configurable, agreementSpecCharacteristic.configurable) && + Objects.equals(this.description, agreementSpecCharacteristic.description) && + Objects.equals(this.name, agreementSpecCharacteristic.name) && + Objects.equals(this.validFor, agreementSpecCharacteristic.validFor) && + Objects.equals(this.valueType, agreementSpecCharacteristic.valueType) && + Objects.equals(this.specCharacteristicValue, agreementSpecCharacteristic.specCharacteristicValue) && + Objects.equals(this.type, agreementSpecCharacteristic.type) && + Objects.equals(this.schemaLocation, agreementSpecCharacteristic.schemaLocation); + } + + @Override + public int hashCode() { + return Objects.hash(configurable, description, name, validFor, valueType, specCharacteristicValue, type, schemaLocation); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgreementSpecCharacteristic {\n"); + + sb.append(" configurable: ").append(toIndentedString(configurable)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" specCharacteristicValue: ").append(toIndentedString(specCharacteristicValue)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecCharacteristicValue.java b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecCharacteristicValue.java new file mode 100644 index 0000000..1e3c661 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecCharacteristicValue.java @@ -0,0 +1,276 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * A number or text that can be assigned to an agreement specification characteristic. + */ +@Schema(description = "A number or text that can be assigned to an agreement specification characteristic.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class AgreementSpecCharacteristicValue { + @JsonProperty("default") + private Boolean _default = null; + + @JsonProperty("unitOfMeasure") + private String unitOfMeasure = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("value") + private String value = null; + + @JsonProperty("valueFrom") + private String valueFrom = null; + + @JsonProperty("valueTo") + private String valueTo = null; + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("@type") + private String type = null; + + public AgreementSpecCharacteristicValue _default(Boolean _default) { + this._default = _default; + return this; + } + + /** + * Indicates if the value is the default value for a characteristic + * @return _default + **/ + @Schema(description = "Indicates if the value is the default value for a characteristic") + + + public Boolean isDefault() { + return _default; + } + + public void setDefault(Boolean _default) { + this._default = _default; + } + + public AgreementSpecCharacteristicValue unitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + return this; + } + + /** + * Unit of measure for the characteristic, such as minutes, gigabytes (GB) and so on. + * @return unitOfMeasure + **/ + @Schema(description = "Unit of measure for the characteristic, such as minutes, gigabytes (GB) and so on.") + + + public String getUnitOfMeasure() { + return unitOfMeasure; + } + + public void setUnitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + } + + public AgreementSpecCharacteristicValue validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period of time for which a value is applicable + * @return validFor + **/ + @Schema(description = "The period of time for which a value is applicable") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public AgreementSpecCharacteristicValue value(String value) { + this.value = value; + return this; + } + + /** + * A discrete value that the characteristic can take on + * @return value + **/ + @Schema(description = "A discrete value that the characteristic can take on") + + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public AgreementSpecCharacteristicValue valueFrom(String valueFrom) { + this.valueFrom = valueFrom; + return this; + } + + /** + * The low range value that a characteristic can take on + * @return valueFrom + **/ + @Schema(description = "The low range value that a characteristic can take on") + + + public String getValueFrom() { + return valueFrom; + } + + public void setValueFrom(String valueFrom) { + this.valueFrom = valueFrom; + } + + public AgreementSpecCharacteristicValue valueTo(String valueTo) { + this.valueTo = valueTo; + return this; + } + + /** + * The upper range value that a characteristic can take on + * @return valueTo + **/ + @Schema(description = "The upper range value that a characteristic can take on") + + + public String getValueTo() { + return valueTo; + } + + public void setValueTo(String valueTo) { + this.valueTo = valueTo; + } + + public AgreementSpecCharacteristicValue valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * A kind of value that the characteristic can take on, such as numeric, text, and so forth + * @return valueType + **/ + @Schema(description = "A kind of value that the characteristic can take on, such as numeric, text, and so forth") + + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public AgreementSpecCharacteristicValue type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AgreementSpecCharacteristicValue agreementSpecCharacteristicValue = (AgreementSpecCharacteristicValue) o; + return Objects.equals(this._default, agreementSpecCharacteristicValue._default) && + Objects.equals(this.unitOfMeasure, agreementSpecCharacteristicValue.unitOfMeasure) && + Objects.equals(this.validFor, agreementSpecCharacteristicValue.validFor) && + Objects.equals(this.value, agreementSpecCharacteristicValue.value) && + Objects.equals(this.valueFrom, agreementSpecCharacteristicValue.valueFrom) && + Objects.equals(this.valueTo, agreementSpecCharacteristicValue.valueTo) && + Objects.equals(this.valueType, agreementSpecCharacteristicValue.valueType) && + Objects.equals(this.type, agreementSpecCharacteristicValue.type); + } + + @Override + public int hashCode() { + return Objects.hash(_default, unitOfMeasure, validFor, value, valueFrom, valueTo, valueType, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgreementSpecCharacteristicValue {\n"); + + sb.append(" _default: ").append(toIndentedString(_default)).append("\n"); + sb.append(" unitOfMeasure: ").append(toIndentedString(unitOfMeasure)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" valueFrom: ").append(toIndentedString(valueFrom)).append("\n"); + sb.append(" valueTo: ").append(toIndentedString(valueTo)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecification.java b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecification.java new file mode 100644 index 0000000..86b99c1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecification.java @@ -0,0 +1,548 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * A template of an agreement that can be used when establishing partnerships. + */ +@Schema(description = "A template of an agreement that can be used when establishing partnerships.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class AgreementSpecification { + @JsonProperty("description") + private String description = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("isBundle") + private Boolean isBundle = null; + + @JsonProperty("lastUpdate") + private OffsetDateTime lastUpdate = null; + + @JsonProperty("lifecycleStatus") + private String lifecycleStatus = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("version") + private String version = null; + + @JsonProperty("serviceCategory") + private CategoryRef serviceCategory = null; + + @JsonProperty("specCharacteristic") + @Valid + private List specCharacteristic = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @JsonProperty("attachment") + @Valid + private List attachment = null; + + @JsonProperty("specificationRelationship") + @Valid + private List specificationRelationship = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@baseType") + private String baseType = null; + + public AgreementSpecification description(String description) { + this.description = description; + return this; + } + + /** + * A narrative that explains in detail what the agreement specification is about. + * @return description + **/ + @Schema(description = "A narrative that explains in detail what the agreement specification is about.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public AgreementSpecification href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the agreement specification + * @return href + **/ + @Schema(description = "Reference of the agreement specification") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public AgreementSpecification id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the agreement specification + * @return id + **/ + @Schema(description = "Unique identifier of the agreement specification") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AgreementSpecification isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * Indicates that this agreement specification is a grouping of other agreement specifications. The list of bundled agreement specifications is provided via the specificationRelationship property. + * @return isBundle + **/ + @Schema(description = "Indicates that this agreement specification is a grouping of other agreement specifications. The list of bundled agreement specifications is provided via the specificationRelationship property.") + + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + public AgreementSpecification lastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + /** + * Date and time of the last update + * @return lastUpdate + **/ + @Schema(description = "Date and time of the last update") + + @Valid + + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + public AgreementSpecification lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Indicates the current lifecycle status + * @return lifecycleStatus + **/ + @Schema(description = "Indicates the current lifecycle status") + + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public AgreementSpecification name(String name) { + this.name = name; + return this; + } + + /** + * Name of the agreement specification + * @return name + **/ + @Schema(description = "Name of the agreement specification") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public AgreementSpecification validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the agreement specification is valid + * @return validFor + **/ + @Schema(description = "The period for which the agreement specification is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public AgreementSpecification version(String version) { + this.version = version; + return this; + } + + /** + * Agreement specification version + * @return version + **/ + @Schema(description = "Agreement specification version") + + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public AgreementSpecification serviceCategory(CategoryRef serviceCategory) { + this.serviceCategory = serviceCategory; + return this; + } + + /** + * Get serviceCategory + * @return serviceCategory + **/ + @Schema(description = "") + + @Valid + + public CategoryRef getServiceCategory() { + return serviceCategory; + } + + public void setServiceCategory(CategoryRef serviceCategory) { + this.serviceCategory = serviceCategory; + } + + public AgreementSpecification specCharacteristic(List specCharacteristic) { + this.specCharacteristic = specCharacteristic; + return this; + } + + public AgreementSpecification addSpecCharacteristicItem(AgreementSpecCharacteristic specCharacteristicItem) { + if (this.specCharacteristic == null) { + this.specCharacteristic = new ArrayList<>(); + } + this.specCharacteristic.add(specCharacteristicItem); + return this; + } + + /** + * Get specCharacteristic + * @return specCharacteristic + **/ + @Schema(description = "") + + @Valid + + public List getSpecCharacteristic() { + return specCharacteristic; + } + + public void setSpecCharacteristic(List specCharacteristic) { + this.specCharacteristic = specCharacteristic; + } + + public AgreementSpecification relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public AgreementSpecification addRelatedPartyItem(RelatedPartyRef relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public AgreementSpecification attachment(List attachment) { + this.attachment = attachment; + return this; + } + + public AgreementSpecification addAttachmentItem(AgreementAttachment attachmentItem) { + if (this.attachment == null) { + this.attachment = new ArrayList<>(); + } + this.attachment.add(attachmentItem); + return this; + } + + /** + * Get attachment + * @return attachment + **/ + @Schema(description = "") + + @Valid + + public List getAttachment() { + return attachment; + } + + public void setAttachment(List attachment) { + this.attachment = attachment; + } + + public AgreementSpecification specificationRelationship(List specificationRelationship) { + this.specificationRelationship = specificationRelationship; + return this; + } + + public AgreementSpecification addSpecificationRelationshipItem(AgreementSpecificationRelationship specificationRelationshipItem) { + if (this.specificationRelationship == null) { + this.specificationRelationship = new ArrayList<>(); + } + this.specificationRelationship.add(specificationRelationshipItem); + return this; + } + + /** + * Get specificationRelationship + * @return specificationRelationship + **/ + @Schema(description = "") + + @Valid + + public List getSpecificationRelationship() { + return specificationRelationship; + } + + public void setSpecificationRelationship(List specificationRelationship) { + this.specificationRelationship = specificationRelationship; + } + + public AgreementSpecification type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public AgreementSpecification schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * @return schemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public AgreementSpecification baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * @return baseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AgreementSpecification agreementSpecification = (AgreementSpecification) o; + return Objects.equals(this.description, agreementSpecification.description) && + Objects.equals(this.href, agreementSpecification.href) && + Objects.equals(this.id, agreementSpecification.id) && + Objects.equals(this.isBundle, agreementSpecification.isBundle) && + Objects.equals(this.lastUpdate, agreementSpecification.lastUpdate) && + Objects.equals(this.lifecycleStatus, agreementSpecification.lifecycleStatus) && + Objects.equals(this.name, agreementSpecification.name) && + Objects.equals(this.validFor, agreementSpecification.validFor) && + Objects.equals(this.version, agreementSpecification.version) && + Objects.equals(this.serviceCategory, agreementSpecification.serviceCategory) && + Objects.equals(this.specCharacteristic, agreementSpecification.specCharacteristic) && + Objects.equals(this.relatedParty, agreementSpecification.relatedParty) && + Objects.equals(this.attachment, agreementSpecification.attachment) && + Objects.equals(this.specificationRelationship, agreementSpecification.specificationRelationship) && + Objects.equals(this.type, agreementSpecification.type) && + Objects.equals(this.schemaLocation, agreementSpecification.schemaLocation) && + Objects.equals(this.baseType, agreementSpecification.baseType); + } + + @Override + public int hashCode() { + return Objects.hash(description, href, id, isBundle, lastUpdate, lifecycleStatus, name, validFor, version, serviceCategory, specCharacteristic, relatedParty, attachment, specificationRelationship, type, schemaLocation, baseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgreementSpecification {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" serviceCategory: ").append(toIndentedString(serviceCategory)).append("\n"); + sb.append(" specCharacteristic: ").append(toIndentedString(specCharacteristic)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" specificationRelationship: ").append(toIndentedString(specificationRelationship)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecificationCreate.java b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecificationCreate.java new file mode 100644 index 0000000..b68894c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecificationCreate.java @@ -0,0 +1,496 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * A template of an agreement that can be used when establishing partnerships. Skipped properties: id,href + */ +@Schema(description = "A template of an agreement that can be used when establishing partnerships. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class AgreementSpecificationCreate { + @JsonProperty("description") + private String description = null; + + @JsonProperty("isBundle") + private Boolean isBundle = null; + + @JsonProperty("lastUpdate") + private OffsetDateTime lastUpdate = null; + + @JsonProperty("lifecycleStatus") + private String lifecycleStatus = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("version") + private String version = null; + + @JsonProperty("serviceCategory") + private CategoryRef serviceCategory = null; + + @JsonProperty("specCharacteristic") + @Valid + private List specCharacteristic = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @JsonProperty("attachment") + @Valid + private List attachment = new ArrayList<>(); + + @JsonProperty("specificationRelationship") + @Valid + private List specificationRelationship = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@baseType") + private String baseType = null; + + public AgreementSpecificationCreate description(String description) { + this.description = description; + return this; + } + + /** + * A narrative that explains in detail what the agreement specification is about. + * @return description + **/ + @Schema(description = "A narrative that explains in detail what the agreement specification is about.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public AgreementSpecificationCreate isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * Indicates that this agreement specification is a grouping of other agreement specifications. The list of bundled agreement specifications is provided via the specificationRelationship property. + * @return isBundle + **/ + @Schema(description = "Indicates that this agreement specification is a grouping of other agreement specifications. The list of bundled agreement specifications is provided via the specificationRelationship property.") + + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + public AgreementSpecificationCreate lastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + /** + * Date and time of the last update + * @return lastUpdate + **/ + @Schema(description = "Date and time of the last update") + + @Valid + + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + public AgreementSpecificationCreate lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Indicates the current lifecycle status + * @return lifecycleStatus + **/ + @Schema(description = "Indicates the current lifecycle status") + + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public AgreementSpecificationCreate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the agreement specification + * @return name + **/ + @Schema(description = "Name of the agreement specification") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public AgreementSpecificationCreate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the agreement specification is valid + * @return validFor + **/ + @Schema(description = "The period for which the agreement specification is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public AgreementSpecificationCreate version(String version) { + this.version = version; + return this; + } + + /** + * Agreement specification version + * @return version + **/ + @Schema(description = "Agreement specification version") + + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public AgreementSpecificationCreate serviceCategory(CategoryRef serviceCategory) { + this.serviceCategory = serviceCategory; + return this; + } + + /** + * Get serviceCategory + * @return serviceCategory + **/ + @Schema(description = "") + + @Valid + + public CategoryRef getServiceCategory() { + return serviceCategory; + } + + public void setServiceCategory(CategoryRef serviceCategory) { + this.serviceCategory = serviceCategory; + } + + public AgreementSpecificationCreate specCharacteristic(List specCharacteristic) { + this.specCharacteristic = specCharacteristic; + return this; + } + + public AgreementSpecificationCreate addSpecCharacteristicItem(AgreementSpecCharacteristic specCharacteristicItem) { + if (this.specCharacteristic == null) { + this.specCharacteristic = new ArrayList<>(); + } + this.specCharacteristic.add(specCharacteristicItem); + return this; + } + + /** + * Get specCharacteristic + * @return specCharacteristic + **/ + @Schema(description = "") + + @Valid + + public List getSpecCharacteristic() { + return specCharacteristic; + } + + public void setSpecCharacteristic(List specCharacteristic) { + this.specCharacteristic = specCharacteristic; + } + + public AgreementSpecificationCreate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public AgreementSpecificationCreate addRelatedPartyItem(RelatedPartyRef relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public AgreementSpecificationCreate attachment(List attachment) { + this.attachment = attachment; + return this; + } + + public AgreementSpecificationCreate addAttachmentItem(AgreementAttachment attachmentItem) { + this.attachment.add(attachmentItem); + return this; + } + + /** + * Get attachment + * @return attachment + **/ + @Schema(description = "") + @NotNull + + @Valid + + public List getAttachment() { + return attachment; + } + + public void setAttachment(List attachment) { + this.attachment = attachment; + } + + public AgreementSpecificationCreate specificationRelationship(List specificationRelationship) { + this.specificationRelationship = specificationRelationship; + return this; + } + + public AgreementSpecificationCreate addSpecificationRelationshipItem(AgreementSpecificationRelationship specificationRelationshipItem) { + if (this.specificationRelationship == null) { + this.specificationRelationship = new ArrayList<>(); + } + this.specificationRelationship.add(specificationRelationshipItem); + return this; + } + + /** + * Get specificationRelationship + * @return specificationRelationship + **/ + @Schema(description = "") + + @Valid + + public List getSpecificationRelationship() { + return specificationRelationship; + } + + public void setSpecificationRelationship(List specificationRelationship) { + this.specificationRelationship = specificationRelationship; + } + + public AgreementSpecificationCreate type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public AgreementSpecificationCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * @return schemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public AgreementSpecificationCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * @return baseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AgreementSpecificationCreate agreementSpecificationCreate = (AgreementSpecificationCreate) o; + return Objects.equals(this.description, agreementSpecificationCreate.description) && + Objects.equals(this.isBundle, agreementSpecificationCreate.isBundle) && + Objects.equals(this.lastUpdate, agreementSpecificationCreate.lastUpdate) && + Objects.equals(this.lifecycleStatus, agreementSpecificationCreate.lifecycleStatus) && + Objects.equals(this.name, agreementSpecificationCreate.name) && + Objects.equals(this.validFor, agreementSpecificationCreate.validFor) && + Objects.equals(this.version, agreementSpecificationCreate.version) && + Objects.equals(this.serviceCategory, agreementSpecificationCreate.serviceCategory) && + Objects.equals(this.specCharacteristic, agreementSpecificationCreate.specCharacteristic) && + Objects.equals(this.relatedParty, agreementSpecificationCreate.relatedParty) && + Objects.equals(this.attachment, agreementSpecificationCreate.attachment) && + Objects.equals(this.specificationRelationship, agreementSpecificationCreate.specificationRelationship) && + Objects.equals(this.type, agreementSpecificationCreate.type) && + Objects.equals(this.schemaLocation, agreementSpecificationCreate.schemaLocation) && + Objects.equals(this.baseType, agreementSpecificationCreate.baseType); + } + + @Override + public int hashCode() { + return Objects.hash(description, isBundle, lastUpdate, lifecycleStatus, name, validFor, version, serviceCategory, specCharacteristic, relatedParty, attachment, specificationRelationship, type, schemaLocation, baseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgreementSpecificationCreate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" serviceCategory: ").append(toIndentedString(serviceCategory)).append("\n"); + sb.append(" specCharacteristic: ").append(toIndentedString(specCharacteristic)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" specificationRelationship: ").append(toIndentedString(specificationRelationship)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecificationRef.java b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecificationRef.java new file mode 100644 index 0000000..58150aa --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecificationRef.java @@ -0,0 +1,200 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * AgreementSpecification reference. An AgreementSpecification represents a template of an agreement that can be used when establishing partnerships. + */ +@Schema(description = "AgreementSpecification reference. An AgreementSpecification represents a template of an agreement that can be used when establishing partnerships.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class AgreementSpecificationRef { + @JsonProperty("description") + private String description = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public AgreementSpecificationRef description(String description) { + this.description = description; + return this; + } + + /** + * A narrative that explains in detail what the agreement specification is about. + * @return description + **/ + @Schema(description = "A narrative that explains in detail what the agreement specification is about.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public AgreementSpecificationRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference URL of the agreement specification + * @return href + **/ + @Schema(description = "Reference URL of the agreement specification") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public AgreementSpecificationRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the agreement specification + * @return id + **/ + @Schema(description = "Unique identifier of the agreement specification") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AgreementSpecificationRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the agreement specification + * @return name + **/ + @Schema(description = "Name of the agreement specification") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public AgreementSpecificationRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AgreementSpecificationRef agreementSpecificationRef = (AgreementSpecificationRef) o; + return Objects.equals(this.description, agreementSpecificationRef.description) && + Objects.equals(this.href, agreementSpecificationRef.href) && + Objects.equals(this.id, agreementSpecificationRef.id) && + Objects.equals(this.name, agreementSpecificationRef.name) && + Objects.equals(this.referredType, agreementSpecificationRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(description, href, id, name, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgreementSpecificationRef {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecificationRelationship.java b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecificationRelationship.java new file mode 100644 index 0000000..afba9f9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecificationRelationship.java @@ -0,0 +1,201 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * A relationship between agreement specifications. Typical relationships are substitution and dependency. + */ +@Schema(description = "A relationship between agreement specifications. Typical relationships are substitution and dependency.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class AgreementSpecificationRelationship { + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("type") + private String typeAgreementSpecificationRelationship = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@type") + private String type = null; + + public AgreementSpecificationRelationship href(String href) { + this.href = href; + return this; + } + + /** + * Reference of an agreement specification. + * @return href + **/ + @Schema(description = "Reference of an agreement specification.") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public AgreementSpecificationRelationship id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the related agreement specification. + * @return id + **/ + @Schema(description = "Unique identifier of the related agreement specification.") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AgreementSpecificationRelationship typeAgreementSpecificationRelationship(String type) { + this.typeAgreementSpecificationRelationship = type; + return this; + } + + /** + * Type of relationship such as, substitution or dependency. + * @return type + **/ + @Schema(description = "Type of relationship such as, substitution or dependency.") + + + public String getTypeAgreementSpecificationRelationship() { + return typeAgreementSpecificationRelationship; + } + + public void setTypeAgreementSpecificationRelationship(String type) { + this.typeAgreementSpecificationRelationship = type; + } + + public AgreementSpecificationRelationship validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the relationship is valid + * @return validFor + **/ + @Schema(description = "The period for which the relationship is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public AgreementSpecificationRelationship type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AgreementSpecificationRelationship agreementSpecificationRelationship = (AgreementSpecificationRelationship) o; + return Objects.equals(this.href, agreementSpecificationRelationship.href) && + Objects.equals(this.id, agreementSpecificationRelationship.id) && + Objects.equals(this.type, agreementSpecificationRelationship.type) && + Objects.equals(this.validFor, agreementSpecificationRelationship.validFor) && + Objects.equals(this.type, agreementSpecificationRelationship.type); + } + + @Override + public int hashCode() { + return Objects.hash(href, id, type, validFor, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgreementSpecificationRelationship {\n"); + + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecificationUpdate.java b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecificationUpdate.java new file mode 100644 index 0000000..f9a0476 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementSpecificationUpdate.java @@ -0,0 +1,496 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * A template of an agreement that can be used when establishing partnerships. Skipped properties: id,href,id,href + */ +@Schema(description = "A template of an agreement that can be used when establishing partnerships. Skipped properties: id,href,id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class AgreementSpecificationUpdate { + @JsonProperty("description") + private String description = null; + + @JsonProperty("isBundle") + private Boolean isBundle = null; + + @JsonProperty("lastUpdate") + private OffsetDateTime lastUpdate = null; + + @JsonProperty("lifecycleStatus") + private String lifecycleStatus = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("version") + private String version = null; + + @JsonProperty("serviceCategory") + private CategoryRef serviceCategory = null; + + @JsonProperty("specCharacteristic") + @Valid + private List specCharacteristic = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @JsonProperty("attachment") + @Valid + private List attachment = null; + + @JsonProperty("specificationRelationship") + @Valid + private List specificationRelationship = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@baseType") + private String baseType = null; + + public AgreementSpecificationUpdate description(String description) { + this.description = description; + return this; + } + + /** + * A narrative that explains in detail what the agreement specification is about. + * @return description + **/ + @Schema(description = "A narrative that explains in detail what the agreement specification is about.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public AgreementSpecificationUpdate isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * Indicates that this agreement specification is a grouping of other agreement specifications. The list of bundled agreement specifications is provided via the specificationRelationship property. + * @return isBundle + **/ + @Schema(description = "Indicates that this agreement specification is a grouping of other agreement specifications. The list of bundled agreement specifications is provided via the specificationRelationship property.") + + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + public AgreementSpecificationUpdate lastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + /** + * Date and time of the last update + * @return lastUpdate + **/ + @Schema(description = "Date and time of the last update") + + @Valid + + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + public AgreementSpecificationUpdate lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Indicates the current lifecycle status + * @return lifecycleStatus + **/ + @Schema(description = "Indicates the current lifecycle status") + + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public AgreementSpecificationUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the agreement specification + * @return name + **/ + @Schema(description = "Name of the agreement specification") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public AgreementSpecificationUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the agreement specification is valid + * @return validFor + **/ + @Schema(description = "The period for which the agreement specification is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public AgreementSpecificationUpdate version(String version) { + this.version = version; + return this; + } + + /** + * Agreement specification version + * @return version + **/ + @Schema(description = "Agreement specification version") + + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public AgreementSpecificationUpdate serviceCategory(CategoryRef serviceCategory) { + this.serviceCategory = serviceCategory; + return this; + } + + /** + * Get serviceCategory + * @return serviceCategory + **/ + @Schema(description = "") + + @Valid + + public CategoryRef getServiceCategory() { + return serviceCategory; + } + + public void setServiceCategory(CategoryRef serviceCategory) { + this.serviceCategory = serviceCategory; + } + + public AgreementSpecificationUpdate specCharacteristic(List specCharacteristic) { + this.specCharacteristic = specCharacteristic; + return this; + } + + public AgreementSpecificationUpdate addSpecCharacteristicItem(AgreementSpecCharacteristic specCharacteristicItem) { + if (this.specCharacteristic == null) { + this.specCharacteristic = new ArrayList<>(); + } + this.specCharacteristic.add(specCharacteristicItem); + return this; + } + + /** + * Get specCharacteristic + * @return specCharacteristic + **/ + @Schema(description = "") + + @Valid + + public List getSpecCharacteristic() { + return specCharacteristic; + } + + public void setSpecCharacteristic(List specCharacteristic) { + this.specCharacteristic = specCharacteristic; + } + + public AgreementSpecificationUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public AgreementSpecificationUpdate addRelatedPartyItem(RelatedPartyRef relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public AgreementSpecificationUpdate attachment(List attachment) { + this.attachment = attachment; + return this; + } + + public AgreementSpecificationUpdate addAttachmentItem(AgreementAttachment attachmentItem) { + if (this.attachment == null) { + this.attachment = new ArrayList<>(); + } + this.attachment.add(attachmentItem); + return this; + } + + /** + * Get attachment + * @return attachment + **/ + @Schema(description = "") + + @Valid + + public List getAttachment() { + return attachment; + } + + public void setAttachment(List attachment) { + this.attachment = attachment; + } + + public AgreementSpecificationUpdate specificationRelationship(List specificationRelationship) { + this.specificationRelationship = specificationRelationship; + return this; + } + + public AgreementSpecificationUpdate addSpecificationRelationshipItem(AgreementSpecificationRelationship specificationRelationshipItem) { + if (this.specificationRelationship == null) { + this.specificationRelationship = new ArrayList<>(); + } + this.specificationRelationship.add(specificationRelationshipItem); + return this; + } + + /** + * Get specificationRelationship + * @return specificationRelationship + **/ + @Schema(description = "") + + @Valid + + public List getSpecificationRelationship() { + return specificationRelationship; + } + + public void setSpecificationRelationship(List specificationRelationship) { + this.specificationRelationship = specificationRelationship; + } + + public AgreementSpecificationUpdate type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public AgreementSpecificationUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * @return schemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public AgreementSpecificationUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * @return baseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AgreementSpecificationUpdate agreementSpecificationUpdate = (AgreementSpecificationUpdate) o; + return Objects.equals(this.description, agreementSpecificationUpdate.description) && + Objects.equals(this.isBundle, agreementSpecificationUpdate.isBundle) && + Objects.equals(this.lastUpdate, agreementSpecificationUpdate.lastUpdate) && + Objects.equals(this.lifecycleStatus, agreementSpecificationUpdate.lifecycleStatus) && + Objects.equals(this.name, agreementSpecificationUpdate.name) && + Objects.equals(this.validFor, agreementSpecificationUpdate.validFor) && + Objects.equals(this.version, agreementSpecificationUpdate.version) && + Objects.equals(this.serviceCategory, agreementSpecificationUpdate.serviceCategory) && + Objects.equals(this.specCharacteristic, agreementSpecificationUpdate.specCharacteristic) && + Objects.equals(this.relatedParty, agreementSpecificationUpdate.relatedParty) && + Objects.equals(this.attachment, agreementSpecificationUpdate.attachment) && + Objects.equals(this.specificationRelationship, agreementSpecificationUpdate.specificationRelationship) && + Objects.equals(this.type, agreementSpecificationUpdate.type) && + Objects.equals(this.schemaLocation, agreementSpecificationUpdate.schemaLocation) && + Objects.equals(this.baseType, agreementSpecificationUpdate.baseType); + } + + @Override + public int hashCode() { + return Objects.hash(description, isBundle, lastUpdate, lifecycleStatus, name, validFor, version, serviceCategory, specCharacteristic, relatedParty, attachment, specificationRelationship, type, schemaLocation, baseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgreementSpecificationUpdate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" serviceCategory: ").append(toIndentedString(serviceCategory)).append("\n"); + sb.append(" specCharacteristic: ").append(toIndentedString(specCharacteristic)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" specificationRelationship: ").append(toIndentedString(specificationRelationship)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/AgreementTermOrCondition.java b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementTermOrCondition.java new file mode 100644 index 0000000..838e9db --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementTermOrCondition.java @@ -0,0 +1,176 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Aspects of the agreement not formally specified elsewhere in the agreement and that cannot be captured elsewhere in a formal notation, or automatically monitored and require a more human level of management. + */ +@Schema(description = "Aspects of the agreement not formally specified elsewhere in the agreement and that cannot be captured elsewhere in a formal notation, or automatically monitored and require a more human level of management.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class AgreementTermOrCondition { + @JsonProperty("description") + private String description = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@type") + private String type = null; + + public AgreementTermOrCondition description(String description) { + this.description = description; + return this; + } + + /** + * Text that explains the term or condition of the agreement. + * @return description + **/ + @Schema(description = "Text that explains the term or condition of the agreement.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public AgreementTermOrCondition id(String id) { + this.id = id; + return this; + } + + /** + * Unique number assigned for reference. + * @return id + **/ + @Schema(description = "Unique number assigned for reference.") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AgreementTermOrCondition validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period of time during which the term or condition of the agreement applies. + * @return validFor + **/ + @Schema(description = "The period of time during which the term or condition of the agreement applies.") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public AgreementTermOrCondition type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AgreementTermOrCondition agreementTermOrCondition = (AgreementTermOrCondition) o; + return Objects.equals(this.description, agreementTermOrCondition.description) && + Objects.equals(this.id, agreementTermOrCondition.id) && + Objects.equals(this.validFor, agreementTermOrCondition.validFor) && + Objects.equals(this.type, agreementTermOrCondition.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, id, validFor, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgreementTermOrCondition {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/AgreementUpdate.java b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementUpdate.java new file mode 100644 index 0000000..b98ce9b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/AgreementUpdate.java @@ -0,0 +1,581 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications. Skipped properties: id,href,id,href,completionDate + */ +@Schema(description = "An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications. Skipped properties: id,href,id,href,completionDate") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class AgreementUpdate { + @JsonProperty("agreementPeriod") + private TimePeriod agreementPeriod = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("documentNumber") + private Integer documentNumber = null; + + @JsonProperty("initialDate") + private OffsetDateTime initialDate = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("statementOfIntent") + private String statementOfIntent = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("type") + private String typeAgreementUpdate = null; + + @JsonProperty("version") + private String version = null; + + @JsonProperty("agreementSpecification") + private AgreementSpecificationRef agreementSpecification = null; + + @JsonProperty("agreementItem") + @Valid + private List agreementItem = null; + + @JsonProperty("engagedPartyRole") + @Valid + private List engagedPartyRole = null; + + @JsonProperty("agreementAuthorization") + @Valid + private List agreementAuthorization = null; + + @JsonProperty("characteristic") + @Valid + private List characteristic = null; + + @JsonProperty("associatedAgreement") + @Valid + private List associatedAgreement = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@baseType") + private String baseType = null; + + public AgreementUpdate agreementPeriod(TimePeriod agreementPeriod) { + this.agreementPeriod = agreementPeriod; + return this; + } + + /** + * The time period during which the Agreement is in effect. + * @return agreementPeriod + **/ + @Schema(description = "The time period during which the Agreement is in effect.") + + @Valid + + public TimePeriod getAgreementPeriod() { + return agreementPeriod; + } + + public void setAgreementPeriod(TimePeriod agreementPeriod) { + this.agreementPeriod = agreementPeriod; + } + + public AgreementUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Narrative that explains the agreement and details about the it , such as why the agreement is taking place. + * @return description + **/ + @Schema(description = "Narrative that explains the agreement and details about the it , such as why the agreement is taking place.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public AgreementUpdate documentNumber(Integer documentNumber) { + this.documentNumber = documentNumber; + return this; + } + + /** + * A reference number assigned to an Agreement that follows a prescribed numbering system. + * @return documentNumber + **/ + @Schema(description = "A reference number assigned to an Agreement that follows a prescribed numbering system.") + + + public Integer getDocumentNumber() { + return documentNumber; + } + + public void setDocumentNumber(Integer documentNumber) { + this.documentNumber = documentNumber; + } + + public AgreementUpdate initialDate(OffsetDateTime initialDate) { + this.initialDate = initialDate; + return this; + } + + /** + * Date at which the agreement was initialized + * @return initialDate + **/ + @Schema(description = "Date at which the agreement was initialized") + + @Valid + + public OffsetDateTime getInitialDate() { + return initialDate; + } + + public void setInitialDate(OffsetDateTime initialDate) { + this.initialDate = initialDate; + } + + public AgreementUpdate name(String name) { + this.name = name; + return this; + } + + /** + * A human-readable name for the agreement + * @return name + **/ + @Schema(description = "A human-readable name for the agreement") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public AgreementUpdate statementOfIntent(String statementOfIntent) { + this.statementOfIntent = statementOfIntent; + return this; + } + + /** + * An overview and goals of the Agreement. + * @return statementOfIntent + **/ + @Schema(description = "An overview and goals of the Agreement.") + + + public String getStatementOfIntent() { + return statementOfIntent; + } + + public void setStatementOfIntent(String statementOfIntent) { + this.statementOfIntent = statementOfIntent; + } + + public AgreementUpdate status(String status) { + this.status = status; + return this; + } + + /** + * The current status of the agreement. Typical values are: in process, approved and rejected. + * @return status + **/ + @Schema(description = "The current status of the agreement. Typical values are: in process, approved and rejected.") + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public AgreementUpdate typeAgreementUpdate(String type) { + this.typeAgreementUpdate = type; + return this; + } + + /** + * The type of the agreement. For example \"commercial\". + * @return type + **/ + @Schema(description = "The type of the agreement. For example \"commercial\".") + + + public String getTypeAgreementUpdate() { + return typeAgreementUpdate; + } + + public void setTypeAgreementUpdate(String type) { + this.typeAgreementUpdate = type; + } + + public AgreementUpdate version(String version) { + this.version = version; + return this; + } + + /** + * A string identifying the version of the agreement. + * @return version + **/ + @Schema(description = "A string identifying the version of the agreement.") + + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public AgreementUpdate agreementSpecification(AgreementSpecificationRef agreementSpecification) { + this.agreementSpecification = agreementSpecification; + return this; + } + + /** + * Get agreementSpecification + * @return agreementSpecification + **/ + @Schema(description = "") + + @Valid + + public AgreementSpecificationRef getAgreementSpecification() { + return agreementSpecification; + } + + public void setAgreementSpecification(AgreementSpecificationRef agreementSpecification) { + this.agreementSpecification = agreementSpecification; + } + + public AgreementUpdate agreementItem(List agreementItem) { + this.agreementItem = agreementItem; + return this; + } + + public AgreementUpdate addAgreementItemItem(AgreementItem agreementItemItem) { + if (this.agreementItem == null) { + this.agreementItem = new ArrayList<>(); + } + this.agreementItem.add(agreementItemItem); + return this; + } + + /** + * Get agreementItem + * @return agreementItem + **/ + @Schema(description = "") + + @Valid + + public List getAgreementItem() { + return agreementItem; + } + + public void setAgreementItem(List agreementItem) { + this.agreementItem = agreementItem; + } + + public AgreementUpdate engagedPartyRole(List engagedPartyRole) { + this.engagedPartyRole = engagedPartyRole; + return this; + } + + public AgreementUpdate addEngagedPartyRoleItem(PartyRoleRef engagedPartyRoleItem) { + if (this.engagedPartyRole == null) { + this.engagedPartyRole = new ArrayList<>(); + } + this.engagedPartyRole.add(engagedPartyRoleItem); + return this; + } + + /** + * Get engagedPartyRole + * @return engagedPartyRole + **/ + @Schema(description = "") + + @Valid + + public List getEngagedPartyRole() { + return engagedPartyRole; + } + + public void setEngagedPartyRole(List engagedPartyRole) { + this.engagedPartyRole = engagedPartyRole; + } + + public AgreementUpdate agreementAuthorization(List agreementAuthorization) { + this.agreementAuthorization = agreementAuthorization; + return this; + } + + public AgreementUpdate addAgreementAuthorizationItem(AgreementAuthorization agreementAuthorizationItem) { + if (this.agreementAuthorization == null) { + this.agreementAuthorization = new ArrayList<>(); + } + this.agreementAuthorization.add(agreementAuthorizationItem); + return this; + } + + /** + * Get agreementAuthorization + * @return agreementAuthorization + **/ + @Schema(description = "") + + @Valid + + public List getAgreementAuthorization() { + return agreementAuthorization; + } + + public void setAgreementAuthorization(List agreementAuthorization) { + this.agreementAuthorization = agreementAuthorization; + } + + public AgreementUpdate characteristic(List characteristic) { + this.characteristic = characteristic; + return this; + } + + public AgreementUpdate addCharacteristicItem(Characteristic characteristicItem) { + if (this.characteristic == null) { + this.characteristic = new ArrayList<>(); + } + this.characteristic.add(characteristicItem); + return this; + } + + /** + * Get characteristic + * @return characteristic + **/ + @Schema(description = "") + + @Valid + + public List getCharacteristic() { + return characteristic; + } + + public void setCharacteristic(List characteristic) { + this.characteristic = characteristic; + } + + public AgreementUpdate associatedAgreement(List associatedAgreement) { + this.associatedAgreement = associatedAgreement; + return this; + } + + public AgreementUpdate addAssociatedAgreementItem(AgreementRef associatedAgreementItem) { + if (this.associatedAgreement == null) { + this.associatedAgreement = new ArrayList<>(); + } + this.associatedAgreement.add(associatedAgreementItem); + return this; + } + + /** + * Get associatedAgreement + * @return associatedAgreement + **/ + @Schema(description = "") + + @Valid + + public List getAssociatedAgreement() { + return associatedAgreement; + } + + public void setAssociatedAgreement(List associatedAgreement) { + this.associatedAgreement = associatedAgreement; + } + + public AgreementUpdate type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public AgreementUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * @return schemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public AgreementUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * @return baseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AgreementUpdate agreementUpdate = (AgreementUpdate) o; + return Objects.equals(this.agreementPeriod, agreementUpdate.agreementPeriod) && + Objects.equals(this.description, agreementUpdate.description) && + Objects.equals(this.documentNumber, agreementUpdate.documentNumber) && + Objects.equals(this.initialDate, agreementUpdate.initialDate) && + Objects.equals(this.name, agreementUpdate.name) && + Objects.equals(this.statementOfIntent, agreementUpdate.statementOfIntent) && + Objects.equals(this.status, agreementUpdate.status) && + Objects.equals(this.type, agreementUpdate.type) && + Objects.equals(this.version, agreementUpdate.version) && + Objects.equals(this.agreementSpecification, agreementUpdate.agreementSpecification) && + Objects.equals(this.agreementItem, agreementUpdate.agreementItem) && + Objects.equals(this.engagedPartyRole, agreementUpdate.engagedPartyRole) && + Objects.equals(this.agreementAuthorization, agreementUpdate.agreementAuthorization) && + Objects.equals(this.characteristic, agreementUpdate.characteristic) && + Objects.equals(this.associatedAgreement, agreementUpdate.associatedAgreement) && + Objects.equals(this.type, agreementUpdate.type) && + Objects.equals(this.schemaLocation, agreementUpdate.schemaLocation) && + Objects.equals(this.baseType, agreementUpdate.baseType); + } + + @Override + public int hashCode() { + return Objects.hash(agreementPeriod, description, documentNumber, initialDate, name, statementOfIntent, status, type, version, agreementSpecification, agreementItem, engagedPartyRole, agreementAuthorization, characteristic, associatedAgreement, type, schemaLocation, baseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgreementUpdate {\n"); + + sb.append(" agreementPeriod: ").append(toIndentedString(agreementPeriod)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" documentNumber: ").append(toIndentedString(documentNumber)).append("\n"); + sb.append(" initialDate: ").append(toIndentedString(initialDate)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" statementOfIntent: ").append(toIndentedString(statementOfIntent)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" agreementSpecification: ").append(toIndentedString(agreementSpecification)).append("\n"); + sb.append(" agreementItem: ").append(toIndentedString(agreementItem)).append("\n"); + sb.append(" engagedPartyRole: ").append(toIndentedString(engagedPartyRole)).append("\n"); + sb.append(" agreementAuthorization: ").append(toIndentedString(agreementAuthorization)).append("\n"); + sb.append(" characteristic: ").append(toIndentedString(characteristic)).append("\n"); + sb.append(" associatedAgreement: ").append(toIndentedString(associatedAgreement)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/CategoryRef.java b/src/main/java/org/etsi/osl/tmf/am651/model/CategoryRef.java new file mode 100644 index 0000000..8b20afb --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/CategoryRef.java @@ -0,0 +1,175 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * The category for grouping recommendations + */ +@Schema(description = "The category for grouping recommendations") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class CategoryRef { + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public CategoryRef href(String href) { + this.href = href; + return this; + } + + /** + * Hypertext Reference of the category + * @return href + **/ + @Schema(description = "Hypertext Reference of the category") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CategoryRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of category + * @return id + **/ + @Schema(description = "Unique identifier of category") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CategoryRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the category. + * @return name + **/ + @Schema(description = "Name of the category.") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public CategoryRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CategoryRef categoryRef = (CategoryRef) o; + return Objects.equals(this.href, categoryRef.href) && + Objects.equals(this.id, categoryRef.id) && + Objects.equals(this.name, categoryRef.name) && + Objects.equals(this.referredType, categoryRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(href, id, name, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CategoryRef {\n"); + + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/Characteristic.java b/src/main/java/org/etsi/osl/tmf/am651/model/Characteristic.java new file mode 100644 index 0000000..b00b36d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/Characteristic.java @@ -0,0 +1,175 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Describes a given characteristic of an object or entity through a name/value pair. + */ +@Schema(description = "Describes a given characteristic of an object or entity through a name/value pair.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class Characteristic { + @JsonProperty("name") + private String name = null; + + @JsonProperty("value") + private String value = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + public Characteristic name(String name) { + this.name = name; + return this; + } + + /** + * Name of the characteristic + * @return name + **/ + @Schema(description = "Name of the characteristic") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Characteristic value(String value) { + this.value = value; + return this; + } + + /** + * Value of the characteristic + * @return value + **/ + @Schema(description = "Value of the characteristic") + + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public Characteristic type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public Characteristic schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * @return schemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Characteristic characteristic = (Characteristic) o; + return Objects.equals(this.name, characteristic.name) && + Objects.equals(this.value, characteristic.value) && + Objects.equals(this.type, characteristic.type) && + Objects.equals(this.schemaLocation, characteristic.schemaLocation); + } + + @Override + public int hashCode() { + return Objects.hash(name, value, type, schemaLocation); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Characteristic {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/Error.java b/src/main/java/org/etsi/osl/tmf/am651/model/Error.java new file mode 100644 index 0000000..e042876 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/Error.java @@ -0,0 +1,252 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Error + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class Error { + @JsonProperty("code") + private Integer code = null; + + @JsonProperty("reason") + private Integer reason = null; + + @JsonProperty("message") + private String message = null; + + @JsonProperty("status") + private Integer status = null; + + @JsonProperty("referenceError") + private String referenceError = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + public Error code(Integer code) { + this.code = code; + return this; + } + + /** + * Application related code. + * @return code + **/ + @Schema(description = "Application related code.") + @NotNull + + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public Error reason(Integer reason) { + this.reason = reason; + return this; + } + + /** + * Text that explains the reason for error. + * @return reason + **/ + @Schema(description = "Text that explains the reason for error.") + @NotNull + + + public Integer getReason() { + return reason; + } + + public void setReason(Integer reason) { + this.reason = reason; + } + + public Error message(String message) { + this.message = message; + return this; + } + + /** + * (optional) Text that provide more details and corrective actions related to the error. + * @return message + **/ + @Schema(description = "(optional) Text that provide more details and corrective actions related to the error.") + + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Error status(Integer status) { + this.status = status; + return this; + } + + /** + * (optional) http error code extension like 400-2 + * @return status + **/ + @Schema(description = "(optional) http error code extension like 400-2") + + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Error referenceError(String referenceError) { + this.referenceError = referenceError; + return this; + } + + /** + * (optional) A URL to online documentation that provides more information about the error. + * @return referenceError + **/ + @Schema(description = "(optional) A URL to online documentation that provides more information about the error.") + + + public String getReferenceError() { + return referenceError; + } + + public void setReferenceError(String referenceError) { + this.referenceError = referenceError; + } + + public Error type(String type) { + this.type = type; + return this; + } + + /** + * (optional) The class type of a REST resource. + * @return type + **/ + @Schema(description = "(optional) The class type of a REST resource.") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public Error schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * (optional) A link to the schema describing a REST resource. + * @return schemaLocation + **/ + @Schema(description = "(optional) A link to the schema describing a REST resource.") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Error error = (Error) o; + return Objects.equals(this.code, error.code) && + Objects.equals(this.reason, error.reason) && + Objects.equals(this.message, error.message) && + Objects.equals(this.status, error.status) && + Objects.equals(this.referenceError, error.referenceError) && + Objects.equals(this.type, error.type) && + Objects.equals(this.schemaLocation, error.schemaLocation); + } + + @Override + public int hashCode() { + return Objects.hash(code, reason, message, status, referenceError, type, schemaLocation); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Error {\n"); + + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" referenceError: ").append(toIndentedString(referenceError)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/am651/model/EventSubscription.java new file mode 100644 index 0000000..8870951 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/EventSubscription.java @@ -0,0 +1,152 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * EventSubscription + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class EventSubscription { + @JsonProperty("id") + private String id = null; + + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscription id(String id) { + this.id = id; + return this; + } + + /** + * Id of the listener + * @return id + **/ + @Schema(description = "Id of the listener") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EventSubscription callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscription query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscription eventSubscription = (EventSubscription) o; + return Objects.equals(this.id, eventSubscription.id) && + Objects.equals(this.callback, eventSubscription.callback) && + Objects.equals(this.query, eventSubscription.query); + } + + @Override + public int hashCode() { + return Objects.hash(id, callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscription {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/EventSubscriptionInput.java b/src/main/java/org/etsi/osl/tmf/am651/model/EventSubscriptionInput.java new file mode 100644 index 0000000..cd4755b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/EventSubscriptionInput.java @@ -0,0 +1,126 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * EventSubscriptionInput + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class EventSubscriptionInput { + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscriptionInput callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscriptionInput query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscriptionInput eventSubscriptionInput = (EventSubscriptionInput) o; + return Objects.equals(this.callback, eventSubscriptionInput.callback) && + Objects.equals(this.query, eventSubscriptionInput.query); + } + + @Override + public int hashCode() { + return Objects.hash(callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscriptionInput {\n"); + + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/PartyRoleRef.java b/src/main/java/org/etsi/osl/tmf/am651/model/PartyRoleRef.java new file mode 100644 index 0000000..eb84f91 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/PartyRoleRef.java @@ -0,0 +1,228 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Party role reference. A party role represents the part played by a party in a given context. + */ +@Schema(description = "Party role reference. A party role represents the part played by a party in a given context.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class PartyRoleRef { + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("partyId") + private String partyId = null; + + @JsonProperty("partyName") + private String partyName = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public PartyRoleRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the product + * @return href + **/ + @Schema(description = "Reference of the product") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public PartyRoleRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the product + * @return id + **/ + @Schema(description = "Unique identifier of the product") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public PartyRoleRef name(String name) { + this.name = name; + return this; + } + + /** + * The name of the referred party role. + * @return name + **/ + @Schema(description = "The name of the referred party role.") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public PartyRoleRef partyId(String partyId) { + this.partyId = partyId; + return this; + } + + /** + * The identifier of the engaged party that is linked to the PartyRole object. + * @return partyId + **/ + @Schema(description = "The identifier of the engaged party that is linked to the PartyRole object.") + + + public String getPartyId() { + return partyId; + } + + public void setPartyId(String partyId) { + this.partyId = partyId; + } + + public PartyRoleRef partyName(String partyName) { + this.partyName = partyName; + return this; + } + + /** + * The name of the engaged party that is linked to the PartyRole object. + * @return partyName + **/ + @Schema(description = "The name of the engaged party that is linked to the PartyRole object.") + + + public String getPartyName() { + return partyName; + } + + public void setPartyName(String partyName) { + this.partyName = partyName; + } + + public PartyRoleRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyRoleRef partyRoleRef = (PartyRoleRef) o; + return Objects.equals(this.href, partyRoleRef.href) && + Objects.equals(this.id, partyRoleRef.id) && + Objects.equals(this.name, partyRoleRef.name) && + Objects.equals(this.partyId, partyRoleRef.partyId) && + Objects.equals(this.partyName, partyRoleRef.partyName) && + Objects.equals(this.referredType, partyRoleRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(href, id, name, partyId, partyName, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyRoleRef {\n"); + + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" partyId: ").append(toIndentedString(partyId)).append("\n"); + sb.append(" partyName: ").append(toIndentedString(partyName)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/ProductOfferingRef.java b/src/main/java/org/etsi/osl/tmf/am651/model/ProductOfferingRef.java new file mode 100644 index 0000000..07b20c4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/ProductOfferingRef.java @@ -0,0 +1,175 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information. + */ +@Schema(description = "ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class ProductOfferingRef { + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public ProductOfferingRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the product offering + * @return href + **/ + @Schema(description = "Reference of the product offering") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductOfferingRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the product offering + * @return id + **/ + @Schema(description = "Unique identifier of the product offering") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductOfferingRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the product offering + * @return name + **/ + @Schema(description = "Name of the product offering") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ProductOfferingRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingRef productOfferingRef = (ProductOfferingRef) o; + return Objects.equals(this.href, productOfferingRef.href) && + Objects.equals(this.id, productOfferingRef.id) && + Objects.equals(this.name, productOfferingRef.name) && + Objects.equals(this.referredType, productOfferingRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(href, id, name, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingRef {\n"); + + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am651/model/RelatedPartyRef.java b/src/main/java/org/etsi/osl/tmf/am651/model/RelatedPartyRef.java new file mode 100644 index 0000000..76fb45b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am651/model/RelatedPartyRef.java @@ -0,0 +1,200 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am651.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * RelatedParty reference. A related party defines party or party role linked to a specific entity. + */ +@Schema(description = "RelatedParty reference. A related party defines party or party role linked to a specific entity.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:51:58.660+03:00") + +public class RelatedPartyRef { + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("role") + private String role = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public RelatedPartyRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related party, could be a party reference or a party role reference + * @return href + **/ + @Schema(description = "Reference of the related party, could be a party reference or a party role reference") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public RelatedPartyRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related party + * @return id + **/ + @Schema(description = "Unique identifier of a related party") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public RelatedPartyRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related party + * @return name + **/ + @Schema(description = "Name of the related party") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public RelatedPartyRef role(String role) { + this.role = role; + return this; + } + + /** + * Role of the related party. + * @return role + **/ + @Schema(description = "Role of the related party.") + + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public RelatedPartyRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RelatedPartyRef relatedPartyRef = (RelatedPartyRef) o; + return Objects.equals(this.href, relatedPartyRef.href) && + Objects.equals(this.id, relatedPartyRef.id) && + Objects.equals(this.name, relatedPartyRef.name) && + Objects.equals(this.role, relatedPartyRef.role) && + Objects.equals(this.referredType, relatedPartyRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(href, id, name, role, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RelatedPartyRef {\n"); + + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/ApiException.java b/src/main/java/org/etsi/osl/tmf/am666/api/ApiException.java new file mode 100644 index 0000000..73cc7b2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/ApiException.java @@ -0,0 +1,30 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/ApiOriginFilter.java b/src/main/java/org/etsi/osl/tmf/am666/api/ApiOriginFilter.java new file mode 100644 index 0000000..bfaea9c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/ApiOriginFilter.java @@ -0,0 +1,51 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.api; + +import java.io.IOException; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class ApiOriginFilter implements jakarta.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/ApiResponseMessage.java b/src/main/java/org/etsi/osl/tmf/am666/api/ApiResponseMessage.java new file mode 100644 index 0000000..930c455 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/ApiResponseMessage.java @@ -0,0 +1,89 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.api; + +import jakarta.xml.bind.annotation.XmlTransient; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@jakarta.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/BillFormatApi.java b/src/main/java/org/etsi/osl/tmf/am666/api/BillFormatApi.java new file mode 100644 index 0000000..2a390e3 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/BillFormatApi.java @@ -0,0 +1,215 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am666.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am666.model.BillFormat; +import org.etsi.osl.tmf.am666.model.BillFormatCreate; +import org.etsi.osl.tmf.am666.model.BillFormatUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Tag(name = "billFormat", description = "the billFormat API") +public interface BillFormatApi { + + Logger log = LoggerFactory.getLogger(BillFormatApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a BillFormat", operationId = "createBillFormat", description = "This operation creates a BillFormat entity.", tags={ "billFormat", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billFormat", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createBillFormat(@Parameter(description = "The BillFormat to be created" ,required=true ) @Valid @RequestBody BillFormatCreate billFormat) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"}", BillFormat.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillFormatApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a BillFormat", operationId = "deleteBillFormat", description = "This operation deletes a BillFormat entity.", tags={ "billFormat", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billFormat/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteBillFormat(@Parameter(description = "Identifier of the BillFormat",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillFormatApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find BillFormat objects", operationId = "listBillFormat", description = "This operation list or find BillFormat entities" , tags={ "billFormat", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billFormat", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listBillFormat(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"}, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillFormatApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a BillFormat", operationId = "patchBillFormat", description = "This operation updates partially a BillFormat entity.", tags={ "billFormat", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billFormat/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchBillFormat(@Parameter(description = "Identifier of the BillFormat",required=true) @PathVariable("id") String id,@Parameter(description = "The BillFormat to be updated" ,required=true ) @Valid @RequestBody BillFormatUpdate billFormat) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"}", BillFormat.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillFormatApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a BillFormat by ID", operationId = "retrieveBillFormat", description = "This operation retrieves a BillFormat entity. Attribute selection is enabled for all first level attributes.", tags={ "billFormat", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billFormat/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveBillFormat(@Parameter(description = "Identifier of the BillFormat",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"}", BillFormat.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillFormatApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/BillFormatApiController.java b/src/main/java/org/etsi/osl/tmf/am666/api/BillFormatApiController.java new file mode 100644 index 0000000..05e5c00 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/BillFormatApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Controller +@RequestMapping("/accountManagement/v4/") +public class BillFormatApiController implements BillFormatApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public BillFormatApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/BillPresentationMediaApi.java b/src/main/java/org/etsi/osl/tmf/am666/api/BillPresentationMediaApi.java new file mode 100644 index 0000000..ae46d5f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/BillPresentationMediaApi.java @@ -0,0 +1,215 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am666.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am666.model.BillPresentationMedia; +import org.etsi.osl.tmf.am666.model.BillPresentationMediaCreate; +import org.etsi.osl.tmf.am666.model.BillPresentationMediaUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Tag(name = "billPresentationMedia", description = "the billPresentationMedia API") +public interface BillPresentationMediaApi { + + Logger log = LoggerFactory.getLogger(BillPresentationMediaApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a BillPresentationMedia", operationId = "createBillPresentationMedia", description = "This operation creates a BillPresentationMedia entity.", tags={ "billPresentationMedia", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billPresentationMedia", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createBillPresentationMedia(@Parameter(description = "The BillPresentationMedia to be created" ,required=true ) @Valid @RequestBody BillPresentationMediaCreate billPresentationMedia) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"}", BillPresentationMedia.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillPresentationMediaApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a BillPresentationMedia", operationId = "deleteBillPresentationMedia", description = "This operation deletes a BillPresentationMedia entity.", tags={ "billPresentationMedia", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billPresentationMedia/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteBillPresentationMedia(@Parameter(description = "Identifier of the BillPresentationMedia",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillPresentationMediaApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find BillPresentationMedia objects", operationId = "listBillPresentationMedia", description = "This operation list or find BillPresentationMedia entities" , tags={ "billPresentationMedia", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billPresentationMedia", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listBillPresentationMedia(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"}, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillPresentationMediaApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a BillPresentationMedia", operationId = "patchBillPresentationMedia", description = "This operation updates partially a BillPresentationMedia entity.", tags={ "billPresentationMedia", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billPresentationMedia/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchBillPresentationMedia(@Parameter(description = "Identifier of the BillPresentationMedia",required=true) @PathVariable("id") String id,@Parameter(description = "The BillPresentationMedia to be updated" ,required=true ) @Valid @RequestBody BillPresentationMediaUpdate billPresentationMedia) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"}", BillPresentationMedia.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillPresentationMediaApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a BillPresentationMedia by ID", operationId = "retrieveBillPresentationMedia", description = "This operation retrieves a BillPresentationMedia entity. Attribute selection is enabled for all first level attributes.", tags={ "billPresentationMedia", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billPresentationMedia/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveBillPresentationMedia(@Parameter(description = "Identifier of the BillPresentationMedia",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"}", BillPresentationMedia.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillPresentationMediaApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/BillPresentationMediaApiController.java b/src/main/java/org/etsi/osl/tmf/am666/api/BillPresentationMediaApiController.java new file mode 100644 index 0000000..b8dda1c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/BillPresentationMediaApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Controller +@RequestMapping("/accountManagement/v4/") +public class BillPresentationMediaApiController implements BillPresentationMediaApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public BillPresentationMediaApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/BillingAccountApi.java b/src/main/java/org/etsi/osl/tmf/am666/api/BillingAccountApi.java new file mode 100644 index 0000000..f020ce5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/BillingAccountApi.java @@ -0,0 +1,215 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am666.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am666.model.BillingAccount; +import org.etsi.osl.tmf.am666.model.BillingAccountCreate; +import org.etsi.osl.tmf.am666.model.BillingAccountUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Tag(name = "billingAccount", description = "the billingAccount API") +public interface BillingAccountApi { + + Logger log = LoggerFactory.getLogger(BillingAccountApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a BillingAccount", operationId = "createBillingAccount", description = "This operation creates a BillingAccount entity.", tags={ "billingAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billingAccount", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createBillingAccount(@Parameter(description = "The BillingAccount to be created" ,required=true ) @Valid @RequestBody BillingAccountCreate billingAccount) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"defaultPaymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentPlan\" : [ { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" }, { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" } ], \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"billStructure\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"format\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"cycleSpecification\" : { \"@referredType\" : \"@referredType\", \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 2, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"dateShift\" : 5, \"description\" : \"description\", \"creditDateOffset\" : 5, \"frequency\" : \"frequency\", \"billingDateShift\" : 6, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 7, \"name\" : \"name\", \"chargeDateOffset\" : 1, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"presentationMedia\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"financialAccount\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"accountBalance\" : { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"ratingType\" : \"ratingType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"paymentStatus\" : \"paymentStatus\"}", BillingAccount.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillingAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a BillingAccount", operationId = "deleteBillingAccount", description = "This operation deletes a BillingAccount entity.", tags={ "billingAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billingAccount/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteBillingAccount(@Parameter(description = "Identifier of the BillingAccount",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillingAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find BillingAccount objects", operationId = "listBillingAccount", description = "This operation list or find BillingAccount entities" , tags={ "billingAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billingAccount", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listBillingAccount(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"defaultPaymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentPlan\" : [ { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" }, { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" } ], \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"billStructure\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"format\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"cycleSpecification\" : { \"@referredType\" : \"@referredType\", \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 2, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"dateShift\" : 5, \"description\" : \"description\", \"creditDateOffset\" : 5, \"frequency\" : \"frequency\", \"billingDateShift\" : 6, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 7, \"name\" : \"name\", \"chargeDateOffset\" : 1, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"presentationMedia\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"financialAccount\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"accountBalance\" : { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"ratingType\" : \"ratingType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"paymentStatus\" : \"paymentStatus\"}, { \"defaultPaymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentPlan\" : [ { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" }, { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" } ], \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"billStructure\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"format\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"cycleSpecification\" : { \"@referredType\" : \"@referredType\", \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 2, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"dateShift\" : 5, \"description\" : \"description\", \"creditDateOffset\" : 5, \"frequency\" : \"frequency\", \"billingDateShift\" : 6, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 7, \"name\" : \"name\", \"chargeDateOffset\" : 1, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"presentationMedia\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"financialAccount\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"accountBalance\" : { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"ratingType\" : \"ratingType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"paymentStatus\" : \"paymentStatus\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillingAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a BillingAccount", operationId = "patchBillingAccount", description = "This operation updates partially a BillingAccount entity.", tags={ "billingAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billingAccount/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchBillingAccount(@Parameter(description = "Identifier of the BillingAccount",required=true) @PathVariable("id") String id,@Parameter(description = "The BillingAccount to be updated" ,required=true ) @Valid @RequestBody BillingAccountUpdate billingAccount) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"defaultPaymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentPlan\" : [ { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" }, { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" } ], \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"billStructure\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"format\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"cycleSpecification\" : { \"@referredType\" : \"@referredType\", \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 2, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"dateShift\" : 5, \"description\" : \"description\", \"creditDateOffset\" : 5, \"frequency\" : \"frequency\", \"billingDateShift\" : 6, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 7, \"name\" : \"name\", \"chargeDateOffset\" : 1, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"presentationMedia\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"financialAccount\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"accountBalance\" : { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"ratingType\" : \"ratingType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"paymentStatus\" : \"paymentStatus\"}", BillingAccount.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillingAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a BillingAccount by ID", operationId = "retrieveBillingAccount", description = "This operation retrieves a BillingAccount entity. Attribute selection is enabled for all first level attributes.", tags={ "billingAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billingAccount/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveBillingAccount(@Parameter(description = "Identifier of the BillingAccount",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"defaultPaymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentPlan\" : [ { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" }, { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" } ], \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"billStructure\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"format\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"cycleSpecification\" : { \"@referredType\" : \"@referredType\", \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 2, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"dateShift\" : 5, \"description\" : \"description\", \"creditDateOffset\" : 5, \"frequency\" : \"frequency\", \"billingDateShift\" : 6, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 7, \"name\" : \"name\", \"chargeDateOffset\" : 1, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"presentationMedia\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"financialAccount\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"accountBalance\" : { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"ratingType\" : \"ratingType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"paymentStatus\" : \"paymentStatus\"}", BillingAccount.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillingAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/BillingAccountApiController.java b/src/main/java/org/etsi/osl/tmf/am666/api/BillingAccountApiController.java new file mode 100644 index 0000000..02bffa2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/BillingAccountApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Controller +@RequestMapping("/accountManagement/v4/") +public class BillingAccountApiController implements BillingAccountApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public BillingAccountApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/BillingCycleSpecificationApi.java b/src/main/java/org/etsi/osl/tmf/am666/api/BillingCycleSpecificationApi.java new file mode 100644 index 0000000..ba6bc4c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/BillingCycleSpecificationApi.java @@ -0,0 +1,215 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am666.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am666.model.BillingCycleSpecification; +import org.etsi.osl.tmf.am666.model.BillingCycleSpecificationCreate; +import org.etsi.osl.tmf.am666.model.BillingCycleSpecificationUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Tag(name = "billingCycleSpecification", description = "the billingCycleSpecification API") +public interface BillingCycleSpecificationApi { + + Logger log = LoggerFactory.getLogger(BillingCycleSpecificationApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a BillingCycleSpecification", operationId = "createBillingCycleSpecification", description = "This operation creates a BillingCycleSpecification entity.", tags={ "billingCycleSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billingCycleSpecification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createBillingCycleSpecification(@Parameter(description = "The BillingCycleSpecification to be created" ,required=true ) @Valid @RequestBody BillingCycleSpecificationCreate billingCycleSpecification) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 5, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"creditDateOffset\" : 1, \"frequency\" : \"frequency\", \"billingDateShift\" : 0, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 5, \"name\" : \"name\", \"chargeDateOffset\" : 6, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"}", BillingCycleSpecification.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillingCycleSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a BillingCycleSpecification", operationId = "deleteBillingCycleSpecification", description = "This operation deletes a BillingCycleSpecification entity.", tags={ "billingCycleSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billingCycleSpecification/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteBillingCycleSpecification(@Parameter(description = "Identifier of the BillingCycleSpecification",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillingCycleSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find BillingCycleSpecification objects", operationId = "listBillingCycleSpecification", description = "This operation list or find BillingCycleSpecification entities" , tags={ "billingCycleSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billingCycleSpecification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listBillingCycleSpecification(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 5, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"creditDateOffset\" : 1, \"frequency\" : \"frequency\", \"billingDateShift\" : 0, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 5, \"name\" : \"name\", \"chargeDateOffset\" : 6, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"}, { \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 5, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"creditDateOffset\" : 1, \"frequency\" : \"frequency\", \"billingDateShift\" : 0, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 5, \"name\" : \"name\", \"chargeDateOffset\" : 6, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillingCycleSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a BillingCycleSpecification", operationId = "patchBillingCycleSpecification", description = "This operation updates partially a BillingCycleSpecification entity.", tags={ "billingCycleSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billingCycleSpecification/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchBillingCycleSpecification(@Parameter(description = "Identifier of the BillingCycleSpecification",required=true) @PathVariable("id") String id,@Parameter(description = "The BillingCycleSpecification to be updated" ,required=true ) @Valid @RequestBody BillingCycleSpecificationUpdate billingCycleSpecification) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 5, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"creditDateOffset\" : 1, \"frequency\" : \"frequency\", \"billingDateShift\" : 0, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 5, \"name\" : \"name\", \"chargeDateOffset\" : 6, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"}", BillingCycleSpecification.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillingCycleSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a BillingCycleSpecification by ID", operationId = "retrieveBillingCycleSpecification", description = "This operation retrieves a BillingCycleSpecification entity. Attribute selection is enabled for all first level attributes.", tags={ "billingCycleSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/billingCycleSpecification/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveBillingCycleSpecification(@Parameter(description = "Identifier of the BillingCycleSpecification",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 5, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"creditDateOffset\" : 1, \"frequency\" : \"frequency\", \"billingDateShift\" : 0, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 5, \"name\" : \"name\", \"chargeDateOffset\" : 6, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"}", BillingCycleSpecification.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default BillingCycleSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/BillingCycleSpecificationApiController.java b/src/main/java/org/etsi/osl/tmf/am666/api/BillingCycleSpecificationApiController.java new file mode 100644 index 0000000..ada7403 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/BillingCycleSpecificationApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Controller +@RequestMapping("/accountManagement/v4/") +public class BillingCycleSpecificationApiController implements BillingCycleSpecificationApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public BillingCycleSpecificationApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/FinancialAccountApi.java b/src/main/java/org/etsi/osl/tmf/am666/api/FinancialAccountApi.java new file mode 100644 index 0000000..568534e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/FinancialAccountApi.java @@ -0,0 +1,215 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am666.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am666.model.FinancialAccount; +import org.etsi.osl.tmf.am666.model.FinancialAccountCreate; +import org.etsi.osl.tmf.am666.model.FinancialAccountUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Tag(name = "financialAccount", description = "the financialAccount API") +public interface FinancialAccountApi { + + Logger log = LoggerFactory.getLogger(FinancialAccountApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a FinancialAccount", operationId = "createFinancialAccount", description = "This operation creates a FinancialAccount entity.", tags={ "financialAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/financialAccount", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createFinancialAccount(@Parameter(description = "The FinancialAccount to be created" ,required=true ) @Valid @RequestBody FinancialAccountCreate financialAccount) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\"}", FinancialAccount.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default FinancialAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a FinancialAccount", operationId = "deleteFinancialAccount", description = "This operation deletes a FinancialAccount entity.", tags={ "financialAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/financialAccount/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteFinancialAccount(@Parameter(description = "Identifier of the FinancialAccount",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default FinancialAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find FinancialAccount objects", operationId = "listFinancialAccount", description = "This operation list or find FinancialAccount entities" , tags={ "financialAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/financialAccount", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listFinancialAccount(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\"}, { \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default FinancialAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a FinancialAccount", operationId = "patchFinancialAccount", description = "This operation updates partially a FinancialAccount entity.", tags={ "financialAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/financialAccount/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchFinancialAccount(@Parameter(description = "Identifier of the FinancialAccount",required=true) @PathVariable("id") String id,@Parameter(description = "The FinancialAccount to be updated" ,required=true ) @Valid @RequestBody FinancialAccountUpdate financialAccount) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\"}", FinancialAccount.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default FinancialAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a FinancialAccount by ID", operationId = "retrieveFinancialAccount", description = "This operation retrieves a FinancialAccount entity. Attribute selection is enabled for all first level attributes.", tags={ "financialAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/financialAccount/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveFinancialAccount(@Parameter(description = "Identifier of the FinancialAccount",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\"}", FinancialAccount.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default FinancialAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/FinancialAccountApiController.java b/src/main/java/org/etsi/osl/tmf/am666/api/FinancialAccountApiController.java new file mode 100644 index 0000000..62913e6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/FinancialAccountApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Controller +@RequestMapping("/accountManagement/v4/") +public class FinancialAccountApiController implements FinancialAccountApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public FinancialAccountApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/am666/api/HubApi.java new file mode 100644 index 0000000..b98c694 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/HubApi.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am666.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am666.model.EventSubscription; +import org.etsi.osl.tmf.am666.model.EventSubscriptionInput; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Tag(name = "hub", description = "the hub API") +public interface HubApi { + + Logger log = LoggerFactory.getLogger(HubApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Register a listener", operationId = "registerListener", description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Subscribed" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Unregister a listener", operationId = "unregisterListener", description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method not allowed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/am666/api/HubApiController.java new file mode 100644 index 0000000..10f3d20 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/HubApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Controller("HubApiController666") +@RequestMapping("/accountManagement/v4/") +public class HubApiController implements HubApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public HubApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/ListenerApi.java b/src/main/java/org/etsi/osl/tmf/am666/api/ListenerApi.java new file mode 100644 index 0000000..2e6c6f5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/ListenerApi.java @@ -0,0 +1,384 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am666.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am666.model.BillingAccountAttributeValueChangeEvent; +import org.etsi.osl.tmf.am666.model.BillingAccountStateChangeEvent; +import org.etsi.osl.tmf.am666.model.EventSubscription; +import org.etsi.osl.tmf.am666.model.FinancialAccountAttributeValueChangeEvent; +import org.etsi.osl.tmf.am666.model.FinancialAccountCreateEvent; +import org.etsi.osl.tmf.am666.model.FinancialAccountDeleteEvent; +import org.etsi.osl.tmf.am666.model.FinancialAccountStateChangeEvent; +import org.etsi.osl.tmf.am666.model.PartyAccountAttributeValueChangeEvent; +import org.etsi.osl.tmf.am666.model.PartyAccountStateChangeEvent; +import org.etsi.osl.tmf.am666.model.SettlementAccountAttributeValueChangeEvent; +import org.etsi.osl.tmf.am666.model.SettlementAccountStateChangeEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Tag(name = "listener", description = "the listener API") +public interface ListenerApi { + + Logger log = LoggerFactory.getLogger(ListenerApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Client listener for entity BillingAccountAttributeValueChangeEvent", operationId = "listenToBillingAccountAttributeValueChangeEvent", description = "Example of a client listener for receiving the notification BillingAccountAttributeValueChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/billingAccountAttributeValueChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToBillingAccountAttributeValueChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody BillingAccountAttributeValueChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity BillingAccountStateChangeEvent", operationId = "listenToBillingAccountStateChangeEvent", description = "Example of a client listener for receiving the notification BillingAccountStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/billingAccountStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToBillingAccountStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody BillingAccountStateChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity FinancialAccountAttributeValueChangeEvent", operationId = "listenToFinancialAccountAttributeValueChangeEvent", description = "Example of a client listener for receiving the notification FinancialAccountAttributeValueChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/financialAccountAttributeValueChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToFinancialAccountAttributeValueChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody FinancialAccountAttributeValueChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity FinancialAccountCreateEvent", operationId = "listenToFinancialAccountCreateEvent", description = "Example of a client listener for receiving the notification FinancialAccountCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/financialAccountCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToFinancialAccountCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody FinancialAccountCreateEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity FinancialAccountDeleteEvent", operationId = "listenToFinancialAccountDeleteEvent", description = "Example of a client listener for receiving the notification FinancialAccountDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/financialAccountDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToFinancialAccountDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody FinancialAccountDeleteEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity FinancialAccountStateChangeEvent", operationId = "listenToFinancialAccountStateChangeEvent", description = "Example of a client listener for receiving the notification FinancialAccountStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/financialAccountStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToFinancialAccountStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody FinancialAccountStateChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity PartyAccountAttributeValueChangeEvent", operationId = "listenToPartyAccountAttributeValueChangeEvent", description = "Example of a client listener for receiving the notification PartyAccountAttributeValueChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/partyAccountAttributeValueChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToPartyAccountAttributeValueChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody PartyAccountAttributeValueChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity PartyAccountStateChangeEvent", operationId = "listenToPartyAccountStateChangeEvent", description = "Example of a client listener for receiving the notification PartyAccountStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/partyAccountStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToPartyAccountStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody PartyAccountStateChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity SettlementAccountAttributeValueChangeEvent", operationId = "listenToSettlementAccountAttributeValueChangeEvent", description = "Example of a client listener for receiving the notification SettlementAccountAttributeValueChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/settlementAccountAttributeValueChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToSettlementAccountAttributeValueChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody SettlementAccountAttributeValueChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity SettlementAccountStateChangeEvent", operationId = "listenToSettlementAccountStateChangeEvent", description = "Example of a client listener for receiving the notification SettlementAccountStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/settlementAccountStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToSettlementAccountStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody SettlementAccountStateChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/ListenerApiController.java b/src/main/java/org/etsi/osl/tmf/am666/api/ListenerApiController.java new file mode 100644 index 0000000..d1d33e9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/ListenerApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Controller("ListenerApiController666") +@RequestMapping("/accountManagement/v4/") +public class ListenerApiController implements ListenerApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ListenerApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/NotFoundException.java b/src/main/java/org/etsi/osl/tmf/am666/api/NotFoundException.java new file mode 100644 index 0000000..aec90ac --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/NotFoundException.java @@ -0,0 +1,30 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class NotFoundException extends ApiException { + private int code; + public NotFoundException (int code, String msg) { + super(code, msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/PartyAccountApi.java b/src/main/java/org/etsi/osl/tmf/am666/api/PartyAccountApi.java new file mode 100644 index 0000000..7a5e75c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/PartyAccountApi.java @@ -0,0 +1,215 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am666.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am666.model.PartyAccount; +import org.etsi.osl.tmf.am666.model.PartyAccountCreate; +import org.etsi.osl.tmf.am666.model.PartyAccountUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Tag(name = "partyAccount", description = "the partyAccount API") +public interface PartyAccountApi { + + Logger log = LoggerFactory.getLogger(PartyAccountApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a PartyAccount", operationId = "createPartyAccount", description = "This operation creates a PartyAccount entity.", tags={ "partyAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/partyAccount", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createPartyAccount(@Parameter(description = "The PartyAccount to be created" ,required=true ) @Valid @RequestBody PartyAccountCreate partyAccount) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"defaultPaymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentPlan\" : [ { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" }, { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" } ], \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"billStructure\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"format\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"cycleSpecification\" : { \"@referredType\" : \"@referredType\", \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 2, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"dateShift\" : 5, \"description\" : \"description\", \"creditDateOffset\" : 5, \"frequency\" : \"frequency\", \"billingDateShift\" : 6, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 7, \"name\" : \"name\", \"chargeDateOffset\" : 1, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"presentationMedia\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"financialAccount\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"accountBalance\" : { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"paymentStatus\" : \"paymentStatus\"}", PartyAccount.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default PartyAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a PartyAccount", operationId = "deletePartyAccount", description = "This operation deletes a PartyAccount entity.", tags={ "partyAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/partyAccount/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deletePartyAccount(@Parameter(description = "Identifier of the PartyAccount",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default PartyAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find PartyAccount objects", operationId = "listPartyAccount", description = "This operation list or find PartyAccount entities" , tags={ "partyAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/partyAccount", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listPartyAccount(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"defaultPaymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentPlan\" : [ { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" }, { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" } ], \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"billStructure\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"format\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"cycleSpecification\" : { \"@referredType\" : \"@referredType\", \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 2, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"dateShift\" : 5, \"description\" : \"description\", \"creditDateOffset\" : 5, \"frequency\" : \"frequency\", \"billingDateShift\" : 6, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 7, \"name\" : \"name\", \"chargeDateOffset\" : 1, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"presentationMedia\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"financialAccount\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"accountBalance\" : { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"paymentStatus\" : \"paymentStatus\"}, { \"defaultPaymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentPlan\" : [ { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" }, { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" } ], \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"billStructure\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"format\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"cycleSpecification\" : { \"@referredType\" : \"@referredType\", \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 2, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"dateShift\" : 5, \"description\" : \"description\", \"creditDateOffset\" : 5, \"frequency\" : \"frequency\", \"billingDateShift\" : 6, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 7, \"name\" : \"name\", \"chargeDateOffset\" : 1, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"presentationMedia\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"financialAccount\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"accountBalance\" : { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"paymentStatus\" : \"paymentStatus\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default PartyAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a PartyAccount", operationId = "patchPartyAccount", description = "This operation updates partially a PartyAccount entity.", tags={ "partyAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/partyAccount/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchPartyAccount(@Parameter(description = "Identifier of the PartyAccount",required=true) @PathVariable("id") String id,@Parameter(description = "The PartyAccount to be updated" ,required=true ) @Valid @RequestBody PartyAccountUpdate partyAccount) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"defaultPaymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentPlan\" : [ { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" }, { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" } ], \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"billStructure\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"format\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"cycleSpecification\" : { \"@referredType\" : \"@referredType\", \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 2, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"dateShift\" : 5, \"description\" : \"description\", \"creditDateOffset\" : 5, \"frequency\" : \"frequency\", \"billingDateShift\" : 6, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 7, \"name\" : \"name\", \"chargeDateOffset\" : 1, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"presentationMedia\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"financialAccount\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"accountBalance\" : { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"paymentStatus\" : \"paymentStatus\"}", PartyAccount.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default PartyAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a PartyAccount by ID", operationId = "retrievePartyAccount", description = "This operation retrieves a PartyAccount entity. Attribute selection is enabled for all first level attributes.", tags={ "partyAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/partyAccount/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrievePartyAccount(@Parameter(description = "Identifier of the PartyAccount",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"defaultPaymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentPlan\" : [ { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" }, { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" } ], \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"billStructure\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"format\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"cycleSpecification\" : { \"@referredType\" : \"@referredType\", \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 2, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"dateShift\" : 5, \"description\" : \"description\", \"creditDateOffset\" : 5, \"frequency\" : \"frequency\", \"billingDateShift\" : 6, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 7, \"name\" : \"name\", \"chargeDateOffset\" : 1, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"presentationMedia\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"financialAccount\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"accountBalance\" : { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"paymentStatus\" : \"paymentStatus\"}", PartyAccount.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default PartyAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/PartyAccountApiController.java b/src/main/java/org/etsi/osl/tmf/am666/api/PartyAccountApiController.java new file mode 100644 index 0000000..cab27fd --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/PartyAccountApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Controller +@RequestMapping("/accountManagement/v4/") +public class PartyAccountApiController implements PartyAccountApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public PartyAccountApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/RFC3339DateFormat.java b/src/main/java/org/etsi/osl/tmf/am666/api/RFC3339DateFormat.java new file mode 100644 index 0000000..ea2d91e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/RFC3339DateFormat.java @@ -0,0 +1,41 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.api; + +import java.text.FieldPosition; +import java.util.Date; + +import com.fasterxml.jackson.databind.util.ISO8601DateFormat; +import com.fasterxml.jackson.databind.util.ISO8601Utils; + + +public class RFC3339DateFormat extends ISO8601DateFormat { + + private static final long serialVersionUID = 1L; + + // Same as ISO8601DateFormat but serializing milliseconds. + @Override + public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) { + String value = ISO8601Utils.format(date, true); + toAppendTo.append(value); + return toAppendTo; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/SettlementAccountApi.java b/src/main/java/org/etsi/osl/tmf/am666/api/SettlementAccountApi.java new file mode 100644 index 0000000..175d7bd --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/SettlementAccountApi.java @@ -0,0 +1,215 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.am666.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.am666.model.SettlementAccount; +import org.etsi.osl.tmf.am666.model.SettlementAccountCreate; +import org.etsi.osl.tmf.am666.model.SettlementAccountUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Tag(name = "settlementAccount", description = "the settlementAccount API") +public interface SettlementAccountApi { + + Logger log = LoggerFactory.getLogger(SettlementAccountApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a SettlementAccount", operationId = "createSettlementAccount", description = "This operation creates a SettlementAccount entity.", tags={ "settlementAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/settlementAccount", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createSettlementAccount(@Parameter(description = "The SettlementAccount to be created" ,required=true ) @Valid @RequestBody SettlementAccountCreate settlementAccount) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"defaultPaymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentPlan\" : [ { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" }, { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" } ], \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"billStructure\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"format\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"cycleSpecification\" : { \"@referredType\" : \"@referredType\", \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 2, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"dateShift\" : 5, \"description\" : \"description\", \"creditDateOffset\" : 5, \"frequency\" : \"frequency\", \"billingDateShift\" : 6, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 7, \"name\" : \"name\", \"chargeDateOffset\" : 1, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"presentationMedia\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"financialAccount\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"accountBalance\" : { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"paymentStatus\" : \"paymentStatus\"}", SettlementAccount.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default SettlementAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a SettlementAccount", operationId = "deleteSettlementAccount", description = "This operation deletes a SettlementAccount entity.", tags={ "settlementAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/settlementAccount/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteSettlementAccount(@Parameter(description = "Identifier of the SettlementAccount",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default SettlementAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find SettlementAccount objects", operationId = "listSettlementAccount", description = "This operation list or find SettlementAccount entities" , tags={ "settlementAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/settlementAccount", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listSettlementAccount(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"defaultPaymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentPlan\" : [ { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" }, { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" } ], \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"billStructure\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"format\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"cycleSpecification\" : { \"@referredType\" : \"@referredType\", \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 2, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"dateShift\" : 5, \"description\" : \"description\", \"creditDateOffset\" : 5, \"frequency\" : \"frequency\", \"billingDateShift\" : 6, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 7, \"name\" : \"name\", \"chargeDateOffset\" : 1, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"presentationMedia\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"financialAccount\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"accountBalance\" : { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"paymentStatus\" : \"paymentStatus\"}, { \"defaultPaymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentPlan\" : [ { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" }, { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" } ], \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"billStructure\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"format\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"cycleSpecification\" : { \"@referredType\" : \"@referredType\", \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 2, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"dateShift\" : 5, \"description\" : \"description\", \"creditDateOffset\" : 5, \"frequency\" : \"frequency\", \"billingDateShift\" : 6, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 7, \"name\" : \"name\", \"chargeDateOffset\" : 1, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"presentationMedia\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"financialAccount\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"accountBalance\" : { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"paymentStatus\" : \"paymentStatus\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default SettlementAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a SettlementAccount", operationId = "patchSettlementAccount", description = "This operation updates partially a SettlementAccount entity.", tags={ "settlementAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/settlementAccount/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchSettlementAccount(@Parameter(description = "Identifier of the SettlementAccount",required=true) @PathVariable("id") String id,@Parameter(description = "The SettlementAccount to be updated" ,required=true ) @Valid @RequestBody SettlementAccountUpdate settlementAccount) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"defaultPaymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentPlan\" : [ { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" }, { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" } ], \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"billStructure\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"format\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"cycleSpecification\" : { \"@referredType\" : \"@referredType\", \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 2, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"dateShift\" : 5, \"description\" : \"description\", \"creditDateOffset\" : 5, \"frequency\" : \"frequency\", \"billingDateShift\" : 6, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 7, \"name\" : \"name\", \"chargeDateOffset\" : 1, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"presentationMedia\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"financialAccount\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"accountBalance\" : { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"paymentStatus\" : \"paymentStatus\"}", SettlementAccount.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default SettlementAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a SettlementAccount by ID", operationId = "retrieveSettlementAccount", description = "This operation retrieves a SettlementAccount entity. Attribute selection is enabled for all first level attributes.", tags={ "settlementAccount", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/settlementAccount/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveSettlementAccount(@Parameter(description = "Identifier of the SettlementAccount",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"defaultPaymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentPlan\" : [ { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" }, { \"numberOfPayments\" : 9, \"totalAmount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"planType\" : \"planType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"paymentMethod\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"paymentFrequency\" : \"paymentFrequency\", \"priority\" : 3, \"@schemaLocation\" : \"http://example.com/aeiou\", \"status\" : \"status\" } ], \"@type\" : \"@type\", \"accountType\" : \"accountType\", \"billStructure\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"format\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"cycleSpecification\" : { \"@referredType\" : \"@referredType\", \"billingPeriod\" : \"billingPeriod\", \"mailingDateOffset\" : 2, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"dateShift\" : 5, \"description\" : \"description\", \"creditDateOffset\" : 5, \"frequency\" : \"frequency\", \"billingDateShift\" : 6, \"@baseType\" : \"@baseType\", \"paymentDueDateOffset\" : 7, \"name\" : \"name\", \"chargeDateOffset\" : 1, \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"presentationMedia\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"description\" : \"description\", \"accountRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"financialAccount\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"accountBalance\" : { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"taxExemption\" : [ { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" }, { \"reason\" : \"reason\", \"@baseType\" : \"@baseType\", \"certificateNumber\" : \"certificateNumber\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"issuingJurisdiction\" : \"issuingJurisdiction\" } ], \"contact\" : [ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"contactName\" : \"contactName\", \"partyRoleType\" : \"partyRoleType\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"relatedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"name\" : \"name\", \"creditLimit\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"id\" : \"id\", \"href\" : \"href\", \"lastModified\" : \"2000-01-23T04:56:07.000+00:00\", \"state\" : \"state\", \"accountBalance\" : [ { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"amount\" : { \"unit\" : \"unit\", \"value\" : 0.8008282 }, \"balanceType\" : \"balanceType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"paymentStatus\" : \"paymentStatus\"}", SettlementAccount.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default SettlementAccountApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/api/SettlementAccountApiController.java b/src/main/java/org/etsi/osl/tmf/am666/api/SettlementAccountApiController.java new file mode 100644 index 0000000..5ed7480 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/api/SettlementAccountApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Controller +@RequestMapping("/accountManagement/v4/") +public class SettlementAccountApiController implements SettlementAccountApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public SettlementAccountApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/Account.java b/src/main/java/org/etsi/osl/tmf/am666/model/Account.java new file mode 100644 index 0000000..5cea661 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/Account.java @@ -0,0 +1,532 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Generic Account structure used to define commonalities between sub concepts of PartyAccount and Financial Account. + */ +@Schema(description = "Generic Account structure used to define commonalities between sub concepts of PartyAccount and Financial Account.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class Account { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("accountType") + private String accountType = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("lastModified") + private OffsetDateTime lastModified = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("accountBalance") + @Valid + private List accountBalance = null; + + @JsonProperty("accountRelationship") + @Valid + private List accountRelationship = null; + + @JsonProperty("contact") + @Valid + private List contact = null; + + @JsonProperty("creditLimit") + private Money creditLimit = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @JsonProperty("taxExemption") + @Valid + private List taxExemption = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Account id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the account + * @return id + **/ + @Schema(description = "Unique identifier of the account") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Account href(String href) { + this.href = href; + return this; + } + + /** + * Unique reference of the account + * @return href + **/ + @Schema(description = "Unique reference of the account") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public Account accountType(String accountType) { + this.accountType = accountType; + return this; + } + + /** + * A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values. + * @return accountType + **/ + @Schema(description = "A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values.") + + + public String getAccountType() { + return accountType; + } + + public void setAccountType(String accountType) { + this.accountType = accountType; + } + + public Account description(String description) { + this.description = description; + return this; + } + + /** + * Detailed description of the party account + * @return description + **/ + @Schema(description = "Detailed description of the party account") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Account lastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + return this; + } + + /** + * Date of last modification of the account + * @return lastModified + **/ + @Schema(description = "Date of last modification of the account") + + @Valid + + public OffsetDateTime getLastModified() { + return lastModified; + } + + public void setLastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + } + + public Account name(String name) { + this.name = name; + return this; + } + + /** + * Name of the account + * @return name + **/ + @Schema(description = "Name of the account") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Account state(String state) { + this.state = state; + return this; + } + + /** + * Contains the lifecycle state such as: Active, Closed, Suspended and so on. + * @return state + **/ + @Schema(description = "Contains the lifecycle state such as: Active, Closed, Suspended and so on.") + + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public Account accountBalance(List accountBalance) { + this.accountBalance = accountBalance; + return this; + } + + public Account addAccountBalanceItem(AccountBalance accountBalanceItem) { + if (this.accountBalance == null) { + this.accountBalance = new ArrayList<>(); + } + this.accountBalance.add(accountBalanceItem); + return this; + } + + /** + * Get accountBalance + * @return accountBalance + **/ + @Schema(description = "") + + @Valid + + public List getAccountBalance() { + return accountBalance; + } + + public void setAccountBalance(List accountBalance) { + this.accountBalance = accountBalance; + } + + public Account accountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + return this; + } + + public Account addAccountRelationshipItem(AccountRelationship accountRelationshipItem) { + if (this.accountRelationship == null) { + this.accountRelationship = new ArrayList<>(); + } + this.accountRelationship.add(accountRelationshipItem); + return this; + } + + /** + * Get accountRelationship + * @return accountRelationship + **/ + @Schema(description = "") + + @Valid + + public List getAccountRelationship() { + return accountRelationship; + } + + public void setAccountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + } + + public Account contact(List contact) { + this.contact = contact; + return this; + } + + public Account addContactItem(Contact contactItem) { + if (this.contact == null) { + this.contact = new ArrayList<>(); + } + this.contact.add(contactItem); + return this; + } + + /** + * Get contact + * @return contact + **/ + @Schema(description = "") + + @Valid + + public List getContact() { + return contact; + } + + public void setContact(List contact) { + this.contact = contact; + } + + public Account creditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + return this; + } + + /** + * The maximum amount of money that may be charged on an account + * @return creditLimit + **/ + @Schema(description = "The maximum amount of money that may be charged on an account") + + @Valid + + public Money getCreditLimit() { + return creditLimit; + } + + public void setCreditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + } + + public Account relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public Account addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public Account taxExemption(List taxExemption) { + this.taxExemption = taxExemption; + return this; + } + + public Account addTaxExemptionItem(AccountTaxExemption taxExemptionItem) { + if (this.taxExemption == null) { + this.taxExemption = new ArrayList<>(); + } + this.taxExemption.add(taxExemptionItem); + return this; + } + + /** + * Get taxExemption + * @return taxExemption + **/ + @Schema(description = "") + + @Valid + + public List getTaxExemption() { + return taxExemption; + } + + public void setTaxExemption(List taxExemption) { + this.taxExemption = taxExemption; + } + + public Account baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public Account schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Account type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Account account = (Account) o; + return Objects.equals(this.id, account.id) && + Objects.equals(this.href, account.href) && + Objects.equals(this.accountType, account.accountType) && + Objects.equals(this.description, account.description) && + Objects.equals(this.lastModified, account.lastModified) && + Objects.equals(this.name, account.name) && + Objects.equals(this.state, account.state) && + Objects.equals(this.accountBalance, account.accountBalance) && + Objects.equals(this.accountRelationship, account.accountRelationship) && + Objects.equals(this.contact, account.contact) && + Objects.equals(this.creditLimit, account.creditLimit) && + Objects.equals(this.relatedParty, account.relatedParty) && + Objects.equals(this.taxExemption, account.taxExemption) && + Objects.equals(this.baseType, account.baseType) && + Objects.equals(this.schemaLocation, account.schemaLocation) && + Objects.equals(this.type, account.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, accountType, description, lastModified, name, state, accountBalance, accountRelationship, contact, creditLimit, relatedParty, taxExemption, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Account {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" accountType: ").append(toIndentedString(accountType)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastModified: ").append(toIndentedString(lastModified)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" accountBalance: ").append(toIndentedString(accountBalance)).append("\n"); + sb.append(" accountRelationship: ").append(toIndentedString(accountRelationship)).append("\n"); + sb.append(" contact: ").append(toIndentedString(contact)).append("\n"); + sb.append(" creditLimit: ").append(toIndentedString(creditLimit)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" taxExemption: ").append(toIndentedString(taxExemption)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/AccountBalance.java b/src/main/java/org/etsi/osl/tmf/am666/model/AccountBalance.java new file mode 100644 index 0000000..ac48429 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/AccountBalance.java @@ -0,0 +1,231 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Balances linked to the account + */ +@Schema(description = "Balances linked to the account") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class AccountBalance { + @JsonProperty("balanceType") + private String balanceType = null; + + @JsonProperty("amount") + private Money amount = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public AccountBalance balanceType(String balanceType) { + this.balanceType = balanceType; + return this; + } + + /** + * Type of the balance : deposit balance, disputed balance, loyalty balance, receivable balance... + * @return balanceType + **/ + @Schema(description = "Type of the balance : deposit balance, disputed balance, loyalty balance, receivable balance...") + @NotNull + + + public String getBalanceType() { + return balanceType; + } + + public void setBalanceType(String balanceType) { + this.balanceType = balanceType; + } + + public AccountBalance amount(Money amount) { + this.amount = amount; + return this; + } + + /** + * Balance amount + * @return amount + **/ + @Schema(description = "Balance amount") + @NotNull + + @Valid + + public Money getAmount() { + return amount; + } + + public void setAmount(Money amount) { + this.amount = amount; + } + + public AccountBalance validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Balance validity period + * @return validFor + **/ + @Schema(description = "Balance validity period") + @NotNull + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public AccountBalance baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public AccountBalance schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public AccountBalance type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AccountBalance accountBalance = (AccountBalance) o; + return Objects.equals(this.balanceType, accountBalance.balanceType) && + Objects.equals(this.amount, accountBalance.amount) && + Objects.equals(this.validFor, accountBalance.validFor) && + Objects.equals(this.baseType, accountBalance.baseType) && + Objects.equals(this.schemaLocation, accountBalance.schemaLocation) && + Objects.equals(this.type, accountBalance.type); + } + + @Override + public int hashCode() { + return Objects.hash(balanceType, amount, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AccountBalance {\n"); + + sb.append(" balanceType: ").append(toIndentedString(balanceType)).append("\n"); + sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/AccountRef.java b/src/main/java/org/etsi/osl/tmf/am666/model/AccountRef.java new file mode 100644 index 0000000..309cd49 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/AccountRef.java @@ -0,0 +1,159 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * Account reference. A account may be a party account or a financial account. + */ +@Schema(description = "Account reference. A account may be a party account or a financial account.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Entity(name = "AccountRef") +public class AccountRef extends BaseRootNamedEntity{ + @JsonProperty("id") + private String id = null; + + + + @JsonProperty("description") + private String description = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public AccountRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the account + * @return id + **/ + @Schema(description = "Unique identifier of the account") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + + + /** + * Detailed description of the account + * @return description + **/ + @Schema(description = "Detailed description of the account") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + + public AccountRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AccountRef accountRef = (AccountRef) o; + return Objects.equals(this.id, accountRef.id) && + Objects.equals(this.href, accountRef.href) && + Objects.equals(this.description, accountRef.description) && + Objects.equals(this.name, accountRef.name) && + Objects.equals(this.baseType, accountRef.baseType) && + Objects.equals(this.schemaLocation, accountRef.schemaLocation) && + Objects.equals(this.type, accountRef.type) && + Objects.equals(this.referredType, accountRef.referredType); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AccountRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/AccountRelationship.java b/src/main/java/org/etsi/osl/tmf/am666/model/AccountRelationship.java new file mode 100644 index 0000000..085da7f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/AccountRelationship.java @@ -0,0 +1,230 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Significant connection between accounts. For instance an aggregating account for a list of shop branches each having its own billing account. + */ +@Schema(description = "Significant connection between accounts. For instance an aggregating account for a list of shop branches each having its own billing account.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class AccountRelationship { + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("account") + private AccountRef account = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public AccountRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * Type of relationship + * @return relationshipType + **/ + @Schema(description = "Type of relationship") + @NotNull + + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public AccountRelationship account(AccountRef account) { + this.account = account; + return this; + } + + /** + * Get account + * @return account + **/ + @Schema(description = "") + + @Valid + + public AccountRef getAccount() { + return account; + } + + public void setAccount(AccountRef account) { + this.account = account; + } + + public AccountRelationship validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Validity period of that relationship + * @return validFor + **/ + @Schema(description = "Validity period of that relationship") + @NotNull + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public AccountRelationship baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public AccountRelationship schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public AccountRelationship type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AccountRelationship accountRelationship = (AccountRelationship) o; + return Objects.equals(this.relationshipType, accountRelationship.relationshipType) && + Objects.equals(this.account, accountRelationship.account) && + Objects.equals(this.validFor, accountRelationship.validFor) && + Objects.equals(this.baseType, accountRelationship.baseType) && + Objects.equals(this.schemaLocation, accountRelationship.schemaLocation) && + Objects.equals(this.type, accountRelationship.type); + } + + @Override + public int hashCode() { + return Objects.hash(relationshipType, account, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AccountRelationship {\n"); + + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" account: ").append(toIndentedString(account)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/AccountTaxExemption.java b/src/main/java/org/etsi/osl/tmf/am666/model/AccountTaxExemption.java new file mode 100644 index 0000000..bd46b70 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/AccountTaxExemption.java @@ -0,0 +1,254 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Proof of freedom from taxes imposed by a taxing jurisdiction + */ +@Schema(description = "Proof of freedom from taxes imposed by a taxing jurisdiction") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class AccountTaxExemption { + @JsonProperty("certificateNumber") + private String certificateNumber = null; + + @JsonProperty("issuingJurisdiction") + private String issuingJurisdiction = null; + + @JsonProperty("reason") + private String reason = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public AccountTaxExemption certificateNumber(String certificateNumber) { + this.certificateNumber = certificateNumber; + return this; + } + + /** + * Identifier of a document that shows proof of exemption from taxes for the taxing jurisdiction + * @return certificateNumber + **/ + @Schema(description = "Identifier of a document that shows proof of exemption from taxes for the taxing jurisdiction") + + + public String getCertificateNumber() { + return certificateNumber; + } + + public void setCertificateNumber(String certificateNumber) { + this.certificateNumber = certificateNumber; + } + + public AccountTaxExemption issuingJurisdiction(String issuingJurisdiction) { + this.issuingJurisdiction = issuingJurisdiction; + return this; + } + + /** + * Name of the taxing jurisdiction for which taxes are exempt + * @return issuingJurisdiction + **/ + @Schema(description = "Name of the taxing jurisdiction for which taxes are exempt") + @NotNull + + + public String getIssuingJurisdiction() { + return issuingJurisdiction; + } + + public void setIssuingJurisdiction(String issuingJurisdiction) { + this.issuingJurisdiction = issuingJurisdiction; + } + + public AccountTaxExemption reason(String reason) { + this.reason = reason; + return this; + } + + /** + * Reason of the tax exemption + * @return reason + **/ + @Schema(description = "Reason of the tax exemption") + + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public AccountTaxExemption validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Period for which the exemption is valid + * @return validFor + **/ + @Schema(description = "Period for which the exemption is valid") + @NotNull + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public AccountTaxExemption baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public AccountTaxExemption schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public AccountTaxExemption type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AccountTaxExemption accountTaxExemption = (AccountTaxExemption) o; + return Objects.equals(this.certificateNumber, accountTaxExemption.certificateNumber) && + Objects.equals(this.issuingJurisdiction, accountTaxExemption.issuingJurisdiction) && + Objects.equals(this.reason, accountTaxExemption.reason) && + Objects.equals(this.validFor, accountTaxExemption.validFor) && + Objects.equals(this.baseType, accountTaxExemption.baseType) && + Objects.equals(this.schemaLocation, accountTaxExemption.schemaLocation) && + Objects.equals(this.type, accountTaxExemption.type); + } + + @Override + public int hashCode() { + return Objects.hash(certificateNumber, issuingJurisdiction, reason, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AccountTaxExemption {\n"); + + sb.append(" certificateNumber: ").append(toIndentedString(certificateNumber)).append("\n"); + sb.append(" issuingJurisdiction: ").append(toIndentedString(issuingJurisdiction)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillFormat.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillFormat.java new file mode 100644 index 0000000..0497023 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillFormat.java @@ -0,0 +1,252 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * A detailed description of the way in which a bill is presented. + */ +@Schema(description = "A detailed description of the way in which a bill is presented.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillFormat { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public BillFormat id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the bill format + * @return id + **/ + @Schema(description = "Unique identifier of the bill format") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public BillFormat href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the bill format + * @return href + **/ + @Schema(description = "Reference of the bill format") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public BillFormat description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory text for this bill format + * @return description + **/ + @Schema(description = "An explanatory text for this bill format") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BillFormat name(String name) { + this.name = name; + return this; + } + + /** + * A short descriptive name + * @return name + **/ + @Schema(description = "A short descriptive name") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillFormat baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillFormat schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillFormat type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillFormat billFormat = (BillFormat) o; + return Objects.equals(this.id, billFormat.id) && + Objects.equals(this.href, billFormat.href) && + Objects.equals(this.description, billFormat.description) && + Objects.equals(this.name, billFormat.name) && + Objects.equals(this.baseType, billFormat.baseType) && + Objects.equals(this.schemaLocation, billFormat.schemaLocation) && + Objects.equals(this.type, billFormat.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, description, name, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillFormat {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillFormatCreate.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillFormatCreate.java new file mode 100644 index 0000000..6e0e6a9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillFormatCreate.java @@ -0,0 +1,202 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * A detailed description of the way in which a bill is presented. Skipped properties: id,href + */ +@Schema(description = "A detailed description of the way in which a bill is presented. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillFormatCreate { + @JsonProperty("description") + private String description = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public BillFormatCreate description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory text for this bill format + * @return description + **/ + @Schema(description = "An explanatory text for this bill format") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BillFormatCreate name(String name) { + this.name = name; + return this; + } + + /** + * A short descriptive name + * @return name + **/ + @Schema(description = "A short descriptive name") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillFormatCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillFormatCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillFormatCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillFormatCreate billFormatCreate = (BillFormatCreate) o; + return Objects.equals(this.description, billFormatCreate.description) && + Objects.equals(this.name, billFormatCreate.name) && + Objects.equals(this.baseType, billFormatCreate.baseType) && + Objects.equals(this.schemaLocation, billFormatCreate.schemaLocation) && + Objects.equals(this.type, billFormatCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, name, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillFormatCreate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillFormatRef.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillFormatRef.java new file mode 100644 index 0000000..f1438a9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillFormatRef.java @@ -0,0 +1,252 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * BillFormat reference. A bill format is a description of the way in which a bill is presented. + */ +@Schema(description = "BillFormat reference. A bill format is a description of the way in which a bill is presented.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillFormatRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public BillFormatRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the bill format + * @return id + **/ + @Schema(description = "Unique identifier of the bill format") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public BillFormatRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the bill format + * @return href + **/ + @Schema(description = "Reference of the bill format") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public BillFormatRef name(String name) { + this.name = name; + return this; + } + + /** + * A short descriptive name + * @return name + **/ + @Schema(description = "A short descriptive name") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillFormatRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillFormatRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillFormatRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public BillFormatRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillFormatRef billFormatRef = (BillFormatRef) o; + return Objects.equals(this.id, billFormatRef.id) && + Objects.equals(this.href, billFormatRef.href) && + Objects.equals(this.name, billFormatRef.name) && + Objects.equals(this.baseType, billFormatRef.baseType) && + Objects.equals(this.schemaLocation, billFormatRef.schemaLocation) && + Objects.equals(this.type, billFormatRef.type) && + Objects.equals(this.referredType, billFormatRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillFormatRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillFormatRefOrValue.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillFormatRefOrValue.java new file mode 100644 index 0000000..af948ee --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillFormatRefOrValue.java @@ -0,0 +1,277 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * An attachment by value or by reference. + */ +@Schema(description = "An attachment by value or by reference.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillFormatRefOrValue { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public BillFormatRefOrValue id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the bill format + * @return id + **/ + @Schema(description = "Unique identifier of the bill format") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public BillFormatRefOrValue href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the bill format + * @return href + **/ + @Schema(description = "Reference of the bill format") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public BillFormatRefOrValue description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory text for this bill format + * @return description + **/ + @Schema(description = "An explanatory text for this bill format") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BillFormatRefOrValue name(String name) { + this.name = name; + return this; + } + + /** + * A short descriptive name + * @return name + **/ + @Schema(description = "A short descriptive name") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillFormatRefOrValue baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillFormatRefOrValue schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillFormatRefOrValue type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public BillFormatRefOrValue referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillFormatRefOrValue billFormatRefOrValue = (BillFormatRefOrValue) o; + return Objects.equals(this.id, billFormatRefOrValue.id) && + Objects.equals(this.href, billFormatRefOrValue.href) && + Objects.equals(this.description, billFormatRefOrValue.description) && + Objects.equals(this.name, billFormatRefOrValue.name) && + Objects.equals(this.baseType, billFormatRefOrValue.baseType) && + Objects.equals(this.schemaLocation, billFormatRefOrValue.schemaLocation) && + Objects.equals(this.type, billFormatRefOrValue.type) && + Objects.equals(this.referredType, billFormatRefOrValue.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, description, name, baseType, schemaLocation, type, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillFormatRefOrValue {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillFormatUpdate.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillFormatUpdate.java new file mode 100644 index 0000000..fce0c24 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillFormatUpdate.java @@ -0,0 +1,202 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * A detailed description of the way in which a bill is presented. Skipped properties: id,href + */ +@Schema(description = "A detailed description of the way in which a bill is presented. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillFormatUpdate { + @JsonProperty("description") + private String description = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public BillFormatUpdate description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory text for this bill format + * @return description + **/ + @Schema(description = "An explanatory text for this bill format") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BillFormatUpdate name(String name) { + this.name = name; + return this; + } + + /** + * A short descriptive name + * @return name + **/ + @Schema(description = "A short descriptive name") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillFormatUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillFormatUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillFormatUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillFormatUpdate billFormatUpdate = (BillFormatUpdate) o; + return Objects.equals(this.description, billFormatUpdate.description) && + Objects.equals(this.name, billFormatUpdate.name) && + Objects.equals(this.baseType, billFormatUpdate.baseType) && + Objects.equals(this.schemaLocation, billFormatUpdate.schemaLocation) && + Objects.equals(this.type, billFormatUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, name, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillFormatUpdate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMedia.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMedia.java new file mode 100644 index 0000000..58c2faa --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMedia.java @@ -0,0 +1,252 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * A mean of communicating a bill, supported by the associated bill format. For example, post mail, email, web page. + */ +@Schema(description = "A mean of communicating a bill, supported by the associated bill format. For example, post mail, email, web page.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillPresentationMedia { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public BillPresentationMedia id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the bill presentation media + * @return id + **/ + @Schema(description = "Unique identifier of the bill presentation media") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public BillPresentationMedia href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the bill presentation media + * @return href + **/ + @Schema(description = "Reference of the bill presentation media") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public BillPresentationMedia description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory text describing this bill presentation media + * @return description + **/ + @Schema(description = "An explanatory text describing this bill presentation media") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BillPresentationMedia name(String name) { + this.name = name; + return this; + } + + /** + * A short descriptive name + * @return name + **/ + @Schema(description = "A short descriptive name") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillPresentationMedia baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillPresentationMedia schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillPresentationMedia type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillPresentationMedia billPresentationMedia = (BillPresentationMedia) o; + return Objects.equals(this.id, billPresentationMedia.id) && + Objects.equals(this.href, billPresentationMedia.href) && + Objects.equals(this.description, billPresentationMedia.description) && + Objects.equals(this.name, billPresentationMedia.name) && + Objects.equals(this.baseType, billPresentationMedia.baseType) && + Objects.equals(this.schemaLocation, billPresentationMedia.schemaLocation) && + Objects.equals(this.type, billPresentationMedia.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, description, name, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillPresentationMedia {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMediaCreate.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMediaCreate.java new file mode 100644 index 0000000..3f29197 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMediaCreate.java @@ -0,0 +1,202 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * A mean of communicating a bill, supported by the associated bill format. For example, post mail, email, web page. Skipped properties: id,href + */ +@Schema(description = "A mean of communicating a bill, supported by the associated bill format. For example, post mail, email, web page. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillPresentationMediaCreate { + @JsonProperty("description") + private String description = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public BillPresentationMediaCreate description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory text describing this bill presentation media + * @return description + **/ + @Schema(description = "An explanatory text describing this bill presentation media") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BillPresentationMediaCreate name(String name) { + this.name = name; + return this; + } + + /** + * A short descriptive name + * @return name + **/ + @Schema(description = "A short descriptive name") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillPresentationMediaCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillPresentationMediaCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillPresentationMediaCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillPresentationMediaCreate billPresentationMediaCreate = (BillPresentationMediaCreate) o; + return Objects.equals(this.description, billPresentationMediaCreate.description) && + Objects.equals(this.name, billPresentationMediaCreate.name) && + Objects.equals(this.baseType, billPresentationMediaCreate.baseType) && + Objects.equals(this.schemaLocation, billPresentationMediaCreate.schemaLocation) && + Objects.equals(this.type, billPresentationMediaCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, name, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillPresentationMediaCreate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMediaRef.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMediaRef.java new file mode 100644 index 0000000..edfa286 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMediaRef.java @@ -0,0 +1,252 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * PresentationMedia reference. A mean of communicating a bill, supported by the associated bill format. For example, post mail, email, web page. + */ +@Schema(description = "PresentationMedia reference. A mean of communicating a bill, supported by the associated bill format. For example, post mail, email, web page.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillPresentationMediaRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public BillPresentationMediaRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the bill presentation media + * @return id + **/ + @Schema(description = "Unique identifier of the bill presentation media") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public BillPresentationMediaRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the bill presentation media + * @return href + **/ + @Schema(description = "Reference of the bill presentation media") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public BillPresentationMediaRef name(String name) { + this.name = name; + return this; + } + + /** + * A short descriptive name + * @return name + **/ + @Schema(description = "A short descriptive name") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillPresentationMediaRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillPresentationMediaRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillPresentationMediaRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public BillPresentationMediaRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillPresentationMediaRef billPresentationMediaRef = (BillPresentationMediaRef) o; + return Objects.equals(this.id, billPresentationMediaRef.id) && + Objects.equals(this.href, billPresentationMediaRef.href) && + Objects.equals(this.name, billPresentationMediaRef.name) && + Objects.equals(this.baseType, billPresentationMediaRef.baseType) && + Objects.equals(this.schemaLocation, billPresentationMediaRef.schemaLocation) && + Objects.equals(this.type, billPresentationMediaRef.type) && + Objects.equals(this.referredType, billPresentationMediaRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillPresentationMediaRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMediaRefOrValue.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMediaRefOrValue.java new file mode 100644 index 0000000..fbeb8de --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMediaRefOrValue.java @@ -0,0 +1,277 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * An attachment by value or by reference. + */ +@Schema(description = "An attachment by value or by reference.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillPresentationMediaRefOrValue { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public BillPresentationMediaRefOrValue id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the bill presentation media + * @return id + **/ + @Schema(description = "Unique identifier of the bill presentation media") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public BillPresentationMediaRefOrValue href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the bill presentation media + * @return href + **/ + @Schema(description = "Reference of the bill presentation media") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public BillPresentationMediaRefOrValue description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory text describing this bill presentation media + * @return description + **/ + @Schema(description = "An explanatory text describing this bill presentation media") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BillPresentationMediaRefOrValue name(String name) { + this.name = name; + return this; + } + + /** + * A short descriptive name + * @return name + **/ + @Schema(description = "A short descriptive name") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillPresentationMediaRefOrValue baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillPresentationMediaRefOrValue schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillPresentationMediaRefOrValue type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public BillPresentationMediaRefOrValue referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillPresentationMediaRefOrValue billPresentationMediaRefOrValue = (BillPresentationMediaRefOrValue) o; + return Objects.equals(this.id, billPresentationMediaRefOrValue.id) && + Objects.equals(this.href, billPresentationMediaRefOrValue.href) && + Objects.equals(this.description, billPresentationMediaRefOrValue.description) && + Objects.equals(this.name, billPresentationMediaRefOrValue.name) && + Objects.equals(this.baseType, billPresentationMediaRefOrValue.baseType) && + Objects.equals(this.schemaLocation, billPresentationMediaRefOrValue.schemaLocation) && + Objects.equals(this.type, billPresentationMediaRefOrValue.type) && + Objects.equals(this.referredType, billPresentationMediaRefOrValue.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, description, name, baseType, schemaLocation, type, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillPresentationMediaRefOrValue {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMediaUpdate.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMediaUpdate.java new file mode 100644 index 0000000..b14060a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillPresentationMediaUpdate.java @@ -0,0 +1,202 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * A mean of communicating a bill, supported by the associated bill format. For example, post mail, email, web page. Skipped properties: id,href + */ +@Schema(description = "A mean of communicating a bill, supported by the associated bill format. For example, post mail, email, web page. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillPresentationMediaUpdate { + @JsonProperty("description") + private String description = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public BillPresentationMediaUpdate description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory text describing this bill presentation media + * @return description + **/ + @Schema(description = "An explanatory text describing this bill presentation media") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BillPresentationMediaUpdate name(String name) { + this.name = name; + return this; + } + + /** + * A short descriptive name + * @return name + **/ + @Schema(description = "A short descriptive name") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillPresentationMediaUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillPresentationMediaUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillPresentationMediaUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillPresentationMediaUpdate billPresentationMediaUpdate = (BillPresentationMediaUpdate) o; + return Objects.equals(this.description, billPresentationMediaUpdate.description) && + Objects.equals(this.name, billPresentationMediaUpdate.name) && + Objects.equals(this.baseType, billPresentationMediaUpdate.baseType) && + Objects.equals(this.schemaLocation, billPresentationMediaUpdate.schemaLocation) && + Objects.equals(this.type, billPresentationMediaUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, name, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillPresentationMediaUpdate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillStructure.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillStructure.java new file mode 100644 index 0000000..3d3c9eb --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillStructure.java @@ -0,0 +1,240 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The structure of the bill for party accounts (billing or settlement). + */ +@Schema(description = "The structure of the bill for party accounts (billing or settlement).") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillStructure { + @JsonProperty("cycleSpecification") + private BillingCycleSpecificationRefOrValue cycleSpecification = null; + + @JsonProperty("format") + private BillFormatRefOrValue format = null; + + @JsonProperty("presentationMedia") + @Valid + private List presentationMedia = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public BillStructure cycleSpecification(BillingCycleSpecificationRefOrValue cycleSpecification) { + this.cycleSpecification = cycleSpecification; + return this; + } + + /** + * Get cycleSpecification + * @return cycleSpecification + **/ + @Schema(description = "") + + @Valid + + public BillingCycleSpecificationRefOrValue getCycleSpecification() { + return cycleSpecification; + } + + public void setCycleSpecification(BillingCycleSpecificationRefOrValue cycleSpecification) { + this.cycleSpecification = cycleSpecification; + } + + public BillStructure format(BillFormatRefOrValue format) { + this.format = format; + return this; + } + + /** + * Get format + * @return format + **/ + @Schema(description = "") + + @Valid + + public BillFormatRefOrValue getFormat() { + return format; + } + + public void setFormat(BillFormatRefOrValue format) { + this.format = format; + } + + public BillStructure presentationMedia(List presentationMedia) { + this.presentationMedia = presentationMedia; + return this; + } + + public BillStructure addPresentationMediaItem(BillPresentationMediaRefOrValue presentationMediaItem) { + if (this.presentationMedia == null) { + this.presentationMedia = new ArrayList<>(); + } + this.presentationMedia.add(presentationMediaItem); + return this; + } + + /** + * Get presentationMedia + * @return presentationMedia + **/ + @Schema(description = "") + + @Valid + + public List getPresentationMedia() { + return presentationMedia; + } + + public void setPresentationMedia(List presentationMedia) { + this.presentationMedia = presentationMedia; + } + + public BillStructure baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillStructure schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillStructure type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillStructure billStructure = (BillStructure) o; + return Objects.equals(this.cycleSpecification, billStructure.cycleSpecification) && + Objects.equals(this.format, billStructure.format) && + Objects.equals(this.presentationMedia, billStructure.presentationMedia) && + Objects.equals(this.baseType, billStructure.baseType) && + Objects.equals(this.schemaLocation, billStructure.schemaLocation) && + Objects.equals(this.type, billStructure.type); + } + + @Override + public int hashCode() { + return Objects.hash(cycleSpecification, format, presentationMedia, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillStructure {\n"); + + sb.append(" cycleSpecification: ").append(toIndentedString(cycleSpecification)).append("\n"); + sb.append(" format: ").append(toIndentedString(format)).append("\n"); + sb.append(" presentationMedia: ").append(toIndentedString(presentationMedia)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccount.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccount.java new file mode 100644 index 0000000..82e1afe --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccount.java @@ -0,0 +1,694 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * A party account used for billing purposes. It includes a description of the bill structure (frequency, presentation media, format and so on). It is a specialization of entity PartyAccount. + */ +@Schema(description = "A party account used for billing purposes. It includes a description of the bill structure (frequency, presentation media, format and so on). It is a specialization of entity PartyAccount.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillingAccount { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("accountType") + private String accountType = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("lastModified") + private OffsetDateTime lastModified = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("paymentStatus") + private String paymentStatus = null; + + @JsonProperty("ratingType") + private String ratingType = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("accountBalance") + @Valid + private List accountBalance = null; + + @JsonProperty("accountRelationship") + @Valid + private List accountRelationship = null; + + @JsonProperty("billStructure") + private BillStructure billStructure = null; + + @JsonProperty("contact") + @Valid + private List contact = null; + + @JsonProperty("creditLimit") + private Money creditLimit = null; + + @JsonProperty("defaultPaymentMethod") + private PaymentMethodRef defaultPaymentMethod = null; + + @JsonProperty("financialAccount") + private FinancialAccountRef financialAccount = null; + + @JsonProperty("paymentPlan") + @Valid + private List paymentPlan = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = new ArrayList<>(); + + @JsonProperty("taxExemption") + @Valid + private List taxExemption = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public BillingAccount id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the account + * @return id + **/ + @Schema(description = "Unique identifier of the account") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public BillingAccount href(String href) { + this.href = href; + return this; + } + + /** + * Unique reference of the account + * @return href + **/ + @Schema(description = "Unique reference of the account") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public BillingAccount accountType(String accountType) { + this.accountType = accountType; + return this; + } + + /** + * A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values. + * @return accountType + **/ + @Schema(description = "A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values.") + + + public String getAccountType() { + return accountType; + } + + public void setAccountType(String accountType) { + this.accountType = accountType; + } + + public BillingAccount description(String description) { + this.description = description; + return this; + } + + /** + * Detailed description of the party account + * @return description + **/ + @Schema(description = "Detailed description of the party account") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BillingAccount lastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + return this; + } + + /** + * Date of last modification of the account + * @return lastModified + **/ + @Schema(description = "Date of last modification of the account") + + @Valid + + public OffsetDateTime getLastModified() { + return lastModified; + } + + public void setLastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + } + + public BillingAccount name(String name) { + this.name = name; + return this; + } + + /** + * Name of the account + * @return name + **/ + @Schema(description = "Name of the account") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillingAccount paymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + return this; + } + + /** + * The condition of the account, such as due, paid, in arrears. + * @return paymentStatus + **/ + @Schema(description = "The condition of the account, such as due, paid, in arrears.") + + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public BillingAccount ratingType(String ratingType) { + this.ratingType = ratingType; + return this; + } + + /** + * Indicates whether the account follows a specific payment option such as prepaid or postpaid + * @return ratingType + **/ + @Schema(description = "Indicates whether the account follows a specific payment option such as prepaid or postpaid") + + + public String getRatingType() { + return ratingType; + } + + public void setRatingType(String ratingType) { + this.ratingType = ratingType; + } + + public BillingAccount state(String state) { + this.state = state; + return this; + } + + /** + * Contains the lifecycle state such as: Active, Closed, Suspended and so on. + * @return state + **/ + @Schema(description = "Contains the lifecycle state such as: Active, Closed, Suspended and so on.") + + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public BillingAccount accountBalance(List accountBalance) { + this.accountBalance = accountBalance; + return this; + } + + public BillingAccount addAccountBalanceItem(AccountBalance accountBalanceItem) { + if (this.accountBalance == null) { + this.accountBalance = new ArrayList<>(); + } + this.accountBalance.add(accountBalanceItem); + return this; + } + + /** + * Get accountBalance + * @return accountBalance + **/ + @Schema(description = "") + + @Valid + + public List getAccountBalance() { + return accountBalance; + } + + public void setAccountBalance(List accountBalance) { + this.accountBalance = accountBalance; + } + + public BillingAccount accountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + return this; + } + + public BillingAccount addAccountRelationshipItem(AccountRelationship accountRelationshipItem) { + if (this.accountRelationship == null) { + this.accountRelationship = new ArrayList<>(); + } + this.accountRelationship.add(accountRelationshipItem); + return this; + } + + /** + * Get accountRelationship + * @return accountRelationship + **/ + @Schema(description = "") + + @Valid + + public List getAccountRelationship() { + return accountRelationship; + } + + public void setAccountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + } + + public BillingAccount billStructure(BillStructure billStructure) { + this.billStructure = billStructure; + return this; + } + + /** + * Get billStructure + * @return billStructure + **/ + @Schema(description = "") + + @Valid + + public BillStructure getBillStructure() { + return billStructure; + } + + public void setBillStructure(BillStructure billStructure) { + this.billStructure = billStructure; + } + + public BillingAccount contact(List contact) { + this.contact = contact; + return this; + } + + public BillingAccount addContactItem(Contact contactItem) { + if (this.contact == null) { + this.contact = new ArrayList<>(); + } + this.contact.add(contactItem); + return this; + } + + /** + * Get contact + * @return contact + **/ + @Schema(description = "") + + @Valid + + public List getContact() { + return contact; + } + + public void setContact(List contact) { + this.contact = contact; + } + + public BillingAccount creditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + return this; + } + + /** + * The maximum amount of money that may be charged on an account + * @return creditLimit + **/ + @Schema(description = "The maximum amount of money that may be charged on an account") + + @Valid + + public Money getCreditLimit() { + return creditLimit; + } + + public void setCreditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + } + + public BillingAccount defaultPaymentMethod(PaymentMethodRef defaultPaymentMethod) { + this.defaultPaymentMethod = defaultPaymentMethod; + return this; + } + + /** + * Get defaultPaymentMethod + * @return defaultPaymentMethod + **/ + @Schema(description = "") + + @Valid + + public PaymentMethodRef getDefaultPaymentMethod() { + return defaultPaymentMethod; + } + + public void setDefaultPaymentMethod(PaymentMethodRef defaultPaymentMethod) { + this.defaultPaymentMethod = defaultPaymentMethod; + } + + public BillingAccount financialAccount(FinancialAccountRef financialAccount) { + this.financialAccount = financialAccount; + return this; + } + + /** + * Get financialAccount + * @return financialAccount + **/ + @Schema(description = "") + + @Valid + + public FinancialAccountRef getFinancialAccount() { + return financialAccount; + } + + public void setFinancialAccount(FinancialAccountRef financialAccount) { + this.financialAccount = financialAccount; + } + + public BillingAccount paymentPlan(List paymentPlan) { + this.paymentPlan = paymentPlan; + return this; + } + + public BillingAccount addPaymentPlanItem(PaymentPlan paymentPlanItem) { + if (this.paymentPlan == null) { + this.paymentPlan = new ArrayList<>(); + } + this.paymentPlan.add(paymentPlanItem); + return this; + } + + /** + * Get paymentPlan + * @return paymentPlan + **/ + @Schema(description = "") + + @Valid + + public List getPaymentPlan() { + return paymentPlan; + } + + public void setPaymentPlan(List paymentPlan) { + this.paymentPlan = paymentPlan; + } + + public BillingAccount relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public BillingAccount addRelatedPartyItem(RelatedParty relatedPartyItem) { + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + @NotNull + + @Valid +@Size(min=1) + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public BillingAccount taxExemption(List taxExemption) { + this.taxExemption = taxExemption; + return this; + } + + public BillingAccount addTaxExemptionItem(AccountTaxExemption taxExemptionItem) { + if (this.taxExemption == null) { + this.taxExemption = new ArrayList<>(); + } + this.taxExemption.add(taxExemptionItem); + return this; + } + + /** + * Get taxExemption + * @return taxExemption + **/ + @Schema(description = "") + + @Valid + + public List getTaxExemption() { + return taxExemption; + } + + public void setTaxExemption(List taxExemption) { + this.taxExemption = taxExemption; + } + + public BillingAccount baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillingAccount schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillingAccount type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillingAccount billingAccount = (BillingAccount) o; + return Objects.equals(this.id, billingAccount.id) && + Objects.equals(this.href, billingAccount.href) && + Objects.equals(this.accountType, billingAccount.accountType) && + Objects.equals(this.description, billingAccount.description) && + Objects.equals(this.lastModified, billingAccount.lastModified) && + Objects.equals(this.name, billingAccount.name) && + Objects.equals(this.paymentStatus, billingAccount.paymentStatus) && + Objects.equals(this.ratingType, billingAccount.ratingType) && + Objects.equals(this.state, billingAccount.state) && + Objects.equals(this.accountBalance, billingAccount.accountBalance) && + Objects.equals(this.accountRelationship, billingAccount.accountRelationship) && + Objects.equals(this.billStructure, billingAccount.billStructure) && + Objects.equals(this.contact, billingAccount.contact) && + Objects.equals(this.creditLimit, billingAccount.creditLimit) && + Objects.equals(this.defaultPaymentMethod, billingAccount.defaultPaymentMethod) && + Objects.equals(this.financialAccount, billingAccount.financialAccount) && + Objects.equals(this.paymentPlan, billingAccount.paymentPlan) && + Objects.equals(this.relatedParty, billingAccount.relatedParty) && + Objects.equals(this.taxExemption, billingAccount.taxExemption) && + Objects.equals(this.baseType, billingAccount.baseType) && + Objects.equals(this.schemaLocation, billingAccount.schemaLocation) && + Objects.equals(this.type, billingAccount.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, accountType, description, lastModified, name, paymentStatus, ratingType, state, accountBalance, accountRelationship, billStructure, contact, creditLimit, defaultPaymentMethod, financialAccount, paymentPlan, relatedParty, taxExemption, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillingAccount {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" accountType: ").append(toIndentedString(accountType)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastModified: ").append(toIndentedString(lastModified)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" paymentStatus: ").append(toIndentedString(paymentStatus)).append("\n"); + sb.append(" ratingType: ").append(toIndentedString(ratingType)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" accountBalance: ").append(toIndentedString(accountBalance)).append("\n"); + sb.append(" accountRelationship: ").append(toIndentedString(accountRelationship)).append("\n"); + sb.append(" billStructure: ").append(toIndentedString(billStructure)).append("\n"); + sb.append(" contact: ").append(toIndentedString(contact)).append("\n"); + sb.append(" creditLimit: ").append(toIndentedString(creditLimit)).append("\n"); + sb.append(" defaultPaymentMethod: ").append(toIndentedString(defaultPaymentMethod)).append("\n"); + sb.append(" financialAccount: ").append(toIndentedString(financialAccount)).append("\n"); + sb.append(" paymentPlan: ").append(toIndentedString(paymentPlan)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" taxExemption: ").append(toIndentedString(taxExemption)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountAttributeValueChangeEvent.java new file mode 100644 index 0000000..fe9956d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountAttributeValueChangeEvent.java @@ -0,0 +1,355 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillingAccountAttributeValueChangeEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("event") + private BillingAccountAttributeValueChangeEventPayload event = null; + + public BillingAccountAttributeValueChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public BillingAccountAttributeValueChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public BillingAccountAttributeValueChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public BillingAccountAttributeValueChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public BillingAccountAttributeValueChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public BillingAccountAttributeValueChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public BillingAccountAttributeValueChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory of the event. + * @return description + **/ + @Schema(description = "An explanatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BillingAccountAttributeValueChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public BillingAccountAttributeValueChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public BillingAccountAttributeValueChangeEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public BillingAccountAttributeValueChangeEvent event(BillingAccountAttributeValueChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public BillingAccountAttributeValueChangeEventPayload getEvent() { + return event; + } + + public void setEvent(BillingAccountAttributeValueChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillingAccountAttributeValueChangeEvent billingAccountAttributeValueChangeEvent = (BillingAccountAttributeValueChangeEvent) o; + return Objects.equals(this.eventId, billingAccountAttributeValueChangeEvent.eventId) && + Objects.equals(this.eventTime, billingAccountAttributeValueChangeEvent.eventTime) && + Objects.equals(this.eventType, billingAccountAttributeValueChangeEvent.eventType) && + Objects.equals(this.correlationId, billingAccountAttributeValueChangeEvent.correlationId) && + Objects.equals(this.domain, billingAccountAttributeValueChangeEvent.domain) && + Objects.equals(this.title, billingAccountAttributeValueChangeEvent.title) && + Objects.equals(this.description, billingAccountAttributeValueChangeEvent.description) && + Objects.equals(this.priority, billingAccountAttributeValueChangeEvent.priority) && + Objects.equals(this.timeOcurred, billingAccountAttributeValueChangeEvent.timeOcurred) && + Objects.equals(this.fieldPath, billingAccountAttributeValueChangeEvent.fieldPath) && + Objects.equals(this.event, billingAccountAttributeValueChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, fieldPath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillingAccountAttributeValueChangeEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountAttributeValueChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountAttributeValueChangeEventPayload.java new file mode 100644 index 0000000..8be470d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountAttributeValueChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillingAccountAttributeValueChangeEventPayload { + @JsonProperty("billingAccount") + private BillingAccount billingAccount = null; + + public BillingAccountAttributeValueChangeEventPayload billingAccount(BillingAccount billingAccount) { + this.billingAccount = billingAccount; + return this; + } + + /** + * The involved resource data for the event + * @return billingAccount + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public BillingAccount getBillingAccount() { + return billingAccount; + } + + public void setBillingAccount(BillingAccount billingAccount) { + this.billingAccount = billingAccount; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillingAccountAttributeValueChangeEventPayload billingAccountAttributeValueChangeEventPayload = (BillingAccountAttributeValueChangeEventPayload) o; + return Objects.equals(this.billingAccount, billingAccountAttributeValueChangeEventPayload.billingAccount); + } + + @Override + public int hashCode() { + return Objects.hash(billingAccount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillingAccountAttributeValueChangeEventPayload {\n"); + + sb.append(" billingAccount: ").append(toIndentedString(billingAccount)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountCreate.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountCreate.java new file mode 100644 index 0000000..0c707ba --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountCreate.java @@ -0,0 +1,644 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * A party account used for billing purposes. It includes a description of the bill structure (frequency, presentation media, format and so on). It is a specialization of entity PartyAccount. Skipped properties: id,href + */ +@Schema(description = "A party account used for billing purposes. It includes a description of the bill structure (frequency, presentation media, format and so on). It is a specialization of entity PartyAccount. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillingAccountCreate { + @JsonProperty("accountType") + private String accountType = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("lastModified") + private OffsetDateTime lastModified = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("paymentStatus") + private String paymentStatus = null; + + @JsonProperty("ratingType") + private String ratingType = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("accountBalance") + @Valid + private List accountBalance = null; + + @JsonProperty("accountRelationship") + @Valid + private List accountRelationship = null; + + @JsonProperty("billStructure") + private BillStructure billStructure = null; + + @JsonProperty("contact") + @Valid + private List contact = null; + + @JsonProperty("creditLimit") + private Money creditLimit = null; + + @JsonProperty("defaultPaymentMethod") + private PaymentMethodRef defaultPaymentMethod = null; + + @JsonProperty("financialAccount") + private FinancialAccountRef financialAccount = null; + + @JsonProperty("paymentPlan") + @Valid + private List paymentPlan = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = new ArrayList<>(); + + @JsonProperty("taxExemption") + @Valid + private List taxExemption = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public BillingAccountCreate accountType(String accountType) { + this.accountType = accountType; + return this; + } + + /** + * A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values. + * @return accountType + **/ + @Schema(description = "A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values.") + + + public String getAccountType() { + return accountType; + } + + public void setAccountType(String accountType) { + this.accountType = accountType; + } + + public BillingAccountCreate description(String description) { + this.description = description; + return this; + } + + /** + * Detailed description of the party account + * @return description + **/ + @Schema(description = "Detailed description of the party account") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BillingAccountCreate lastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + return this; + } + + /** + * Date of last modification of the account + * @return lastModified + **/ + @Schema(description = "Date of last modification of the account") + + @Valid + + public OffsetDateTime getLastModified() { + return lastModified; + } + + public void setLastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + } + + public BillingAccountCreate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the account + * @return name + **/ + @Schema(description = "Name of the account") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillingAccountCreate paymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + return this; + } + + /** + * The condition of the account, such as due, paid, in arrears. + * @return paymentStatus + **/ + @Schema(description = "The condition of the account, such as due, paid, in arrears.") + + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public BillingAccountCreate ratingType(String ratingType) { + this.ratingType = ratingType; + return this; + } + + /** + * Indicates whether the account follows a specific payment option such as prepaid or postpaid + * @return ratingType + **/ + @Schema(description = "Indicates whether the account follows a specific payment option such as prepaid or postpaid") + + + public String getRatingType() { + return ratingType; + } + + public void setRatingType(String ratingType) { + this.ratingType = ratingType; + } + + public BillingAccountCreate state(String state) { + this.state = state; + return this; + } + + /** + * Contains the lifecycle state such as: Active, Closed, Suspended and so on. + * @return state + **/ + @Schema(description = "Contains the lifecycle state such as: Active, Closed, Suspended and so on.") + + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public BillingAccountCreate accountBalance(List accountBalance) { + this.accountBalance = accountBalance; + return this; + } + + public BillingAccountCreate addAccountBalanceItem(AccountBalance accountBalanceItem) { + if (this.accountBalance == null) { + this.accountBalance = new ArrayList<>(); + } + this.accountBalance.add(accountBalanceItem); + return this; + } + + /** + * Get accountBalance + * @return accountBalance + **/ + @Schema(description = "") + + @Valid + + public List getAccountBalance() { + return accountBalance; + } + + public void setAccountBalance(List accountBalance) { + this.accountBalance = accountBalance; + } + + public BillingAccountCreate accountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + return this; + } + + public BillingAccountCreate addAccountRelationshipItem(AccountRelationship accountRelationshipItem) { + if (this.accountRelationship == null) { + this.accountRelationship = new ArrayList<>(); + } + this.accountRelationship.add(accountRelationshipItem); + return this; + } + + /** + * Get accountRelationship + * @return accountRelationship + **/ + @Schema(description = "") + + @Valid + + public List getAccountRelationship() { + return accountRelationship; + } + + public void setAccountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + } + + public BillingAccountCreate billStructure(BillStructure billStructure) { + this.billStructure = billStructure; + return this; + } + + /** + * Get billStructure + * @return billStructure + **/ + @Schema(description = "") + + @Valid + + public BillStructure getBillStructure() { + return billStructure; + } + + public void setBillStructure(BillStructure billStructure) { + this.billStructure = billStructure; + } + + public BillingAccountCreate contact(List contact) { + this.contact = contact; + return this; + } + + public BillingAccountCreate addContactItem(Contact contactItem) { + if (this.contact == null) { + this.contact = new ArrayList<>(); + } + this.contact.add(contactItem); + return this; + } + + /** + * Get contact + * @return contact + **/ + @Schema(description = "") + + @Valid + + public List getContact() { + return contact; + } + + public void setContact(List contact) { + this.contact = contact; + } + + public BillingAccountCreate creditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + return this; + } + + /** + * The maximum amount of money that may be charged on an account + * @return creditLimit + **/ + @Schema(description = "The maximum amount of money that may be charged on an account") + + @Valid + + public Money getCreditLimit() { + return creditLimit; + } + + public void setCreditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + } + + public BillingAccountCreate defaultPaymentMethod(PaymentMethodRef defaultPaymentMethod) { + this.defaultPaymentMethod = defaultPaymentMethod; + return this; + } + + /** + * Get defaultPaymentMethod + * @return defaultPaymentMethod + **/ + @Schema(description = "") + + @Valid + + public PaymentMethodRef getDefaultPaymentMethod() { + return defaultPaymentMethod; + } + + public void setDefaultPaymentMethod(PaymentMethodRef defaultPaymentMethod) { + this.defaultPaymentMethod = defaultPaymentMethod; + } + + public BillingAccountCreate financialAccount(FinancialAccountRef financialAccount) { + this.financialAccount = financialAccount; + return this; + } + + /** + * Get financialAccount + * @return financialAccount + **/ + @Schema(description = "") + + @Valid + + public FinancialAccountRef getFinancialAccount() { + return financialAccount; + } + + public void setFinancialAccount(FinancialAccountRef financialAccount) { + this.financialAccount = financialAccount; + } + + public BillingAccountCreate paymentPlan(List paymentPlan) { + this.paymentPlan = paymentPlan; + return this; + } + + public BillingAccountCreate addPaymentPlanItem(PaymentPlan paymentPlanItem) { + if (this.paymentPlan == null) { + this.paymentPlan = new ArrayList<>(); + } + this.paymentPlan.add(paymentPlanItem); + return this; + } + + /** + * Get paymentPlan + * @return paymentPlan + **/ + @Schema(description = "") + + @Valid + + public List getPaymentPlan() { + return paymentPlan; + } + + public void setPaymentPlan(List paymentPlan) { + this.paymentPlan = paymentPlan; + } + + public BillingAccountCreate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public BillingAccountCreate addRelatedPartyItem(RelatedParty relatedPartyItem) { + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + @NotNull + + @Valid +@Size(min=1) + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public BillingAccountCreate taxExemption(List taxExemption) { + this.taxExemption = taxExemption; + return this; + } + + public BillingAccountCreate addTaxExemptionItem(AccountTaxExemption taxExemptionItem) { + if (this.taxExemption == null) { + this.taxExemption = new ArrayList<>(); + } + this.taxExemption.add(taxExemptionItem); + return this; + } + + /** + * Get taxExemption + * @return taxExemption + **/ + @Schema(description = "") + + @Valid + + public List getTaxExemption() { + return taxExemption; + } + + public void setTaxExemption(List taxExemption) { + this.taxExemption = taxExemption; + } + + public BillingAccountCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillingAccountCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillingAccountCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillingAccountCreate billingAccountCreate = (BillingAccountCreate) o; + return Objects.equals(this.accountType, billingAccountCreate.accountType) && + Objects.equals(this.description, billingAccountCreate.description) && + Objects.equals(this.lastModified, billingAccountCreate.lastModified) && + Objects.equals(this.name, billingAccountCreate.name) && + Objects.equals(this.paymentStatus, billingAccountCreate.paymentStatus) && + Objects.equals(this.ratingType, billingAccountCreate.ratingType) && + Objects.equals(this.state, billingAccountCreate.state) && + Objects.equals(this.accountBalance, billingAccountCreate.accountBalance) && + Objects.equals(this.accountRelationship, billingAccountCreate.accountRelationship) && + Objects.equals(this.billStructure, billingAccountCreate.billStructure) && + Objects.equals(this.contact, billingAccountCreate.contact) && + Objects.equals(this.creditLimit, billingAccountCreate.creditLimit) && + Objects.equals(this.defaultPaymentMethod, billingAccountCreate.defaultPaymentMethod) && + Objects.equals(this.financialAccount, billingAccountCreate.financialAccount) && + Objects.equals(this.paymentPlan, billingAccountCreate.paymentPlan) && + Objects.equals(this.relatedParty, billingAccountCreate.relatedParty) && + Objects.equals(this.taxExemption, billingAccountCreate.taxExemption) && + Objects.equals(this.baseType, billingAccountCreate.baseType) && + Objects.equals(this.schemaLocation, billingAccountCreate.schemaLocation) && + Objects.equals(this.type, billingAccountCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(accountType, description, lastModified, name, paymentStatus, ratingType, state, accountBalance, accountRelationship, billStructure, contact, creditLimit, defaultPaymentMethod, financialAccount, paymentPlan, relatedParty, taxExemption, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillingAccountCreate {\n"); + + sb.append(" accountType: ").append(toIndentedString(accountType)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastModified: ").append(toIndentedString(lastModified)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" paymentStatus: ").append(toIndentedString(paymentStatus)).append("\n"); + sb.append(" ratingType: ").append(toIndentedString(ratingType)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" accountBalance: ").append(toIndentedString(accountBalance)).append("\n"); + sb.append(" accountRelationship: ").append(toIndentedString(accountRelationship)).append("\n"); + sb.append(" billStructure: ").append(toIndentedString(billStructure)).append("\n"); + sb.append(" contact: ").append(toIndentedString(contact)).append("\n"); + sb.append(" creditLimit: ").append(toIndentedString(creditLimit)).append("\n"); + sb.append(" defaultPaymentMethod: ").append(toIndentedString(defaultPaymentMethod)).append("\n"); + sb.append(" financialAccount: ").append(toIndentedString(financialAccount)).append("\n"); + sb.append(" paymentPlan: ").append(toIndentedString(paymentPlan)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" taxExemption: ").append(toIndentedString(taxExemption)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountStateChangeEvent.java new file mode 100644 index 0000000..2349856 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountStateChangeEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillingAccountStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private BillingAccountStateChangeEventPayload event = null; + + public BillingAccountStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the resource involved in the event + * @return id + **/ + @Schema(description = "Identifier of the resource involved in the event") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public BillingAccountStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the resource involved in the event + * @return href + **/ + @Schema(description = "Reference of the resource involved in the event") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public BillingAccountStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public BillingAccountStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public BillingAccountStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public BillingAccountStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public BillingAccountStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public BillingAccountStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public BillingAccountStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory of the event. + * @return description + **/ + @Schema(description = "An explanatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BillingAccountStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public BillingAccountStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public BillingAccountStateChangeEvent event(BillingAccountStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public BillingAccountStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(BillingAccountStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillingAccountStateChangeEvent billingAccountStateChangeEvent = (BillingAccountStateChangeEvent) o; + return Objects.equals(this.id, billingAccountStateChangeEvent.id) && + Objects.equals(this.href, billingAccountStateChangeEvent.href) && + Objects.equals(this.eventId, billingAccountStateChangeEvent.eventId) && + Objects.equals(this.eventTime, billingAccountStateChangeEvent.eventTime) && + Objects.equals(this.eventType, billingAccountStateChangeEvent.eventType) && + Objects.equals(this.correlationId, billingAccountStateChangeEvent.correlationId) && + Objects.equals(this.domain, billingAccountStateChangeEvent.domain) && + Objects.equals(this.title, billingAccountStateChangeEvent.title) && + Objects.equals(this.description, billingAccountStateChangeEvent.description) && + Objects.equals(this.priority, billingAccountStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, billingAccountStateChangeEvent.timeOcurred) && + Objects.equals(this.event, billingAccountStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillingAccountStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountStateChangeEventPayload.java new file mode 100644 index 0000000..006cb75 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountStateChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillingAccountStateChangeEventPayload { + @JsonProperty("billingAccount") + private BillingAccount billingAccount = null; + + public BillingAccountStateChangeEventPayload billingAccount(BillingAccount billingAccount) { + this.billingAccount = billingAccount; + return this; + } + + /** + * The involved resource data for the event + * @return billingAccount + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public BillingAccount getBillingAccount() { + return billingAccount; + } + + public void setBillingAccount(BillingAccount billingAccount) { + this.billingAccount = billingAccount; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillingAccountStateChangeEventPayload billingAccountStateChangeEventPayload = (BillingAccountStateChangeEventPayload) o; + return Objects.equals(this.billingAccount, billingAccountStateChangeEventPayload.billingAccount); + } + + @Override + public int hashCode() { + return Objects.hash(billingAccount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillingAccountStateChangeEventPayload {\n"); + + sb.append(" billingAccount: ").append(toIndentedString(billingAccount)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountUpdate.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountUpdate.java new file mode 100644 index 0000000..0549e9b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillingAccountUpdate.java @@ -0,0 +1,609 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * A party account used for billing purposes. It includes a description of the bill structure (frequency, presentation media, format and so on). It is a specialization of entity PartyAccount. Skipped properties: id,href,accountBalance + */ +@Schema(description = "A party account used for billing purposes. It includes a description of the bill structure (frequency, presentation media, format and so on). It is a specialization of entity PartyAccount. Skipped properties: id,href,accountBalance") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillingAccountUpdate { + @JsonProperty("accountType") + private String accountType = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("lastModified") + private OffsetDateTime lastModified = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("paymentStatus") + private String paymentStatus = null; + + @JsonProperty("ratingType") + private String ratingType = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("accountRelationship") + @Valid + private List accountRelationship = null; + + @JsonProperty("billStructure") + private BillStructure billStructure = null; + + @JsonProperty("contact") + @Valid + private List contact = null; + + @JsonProperty("creditLimit") + private Money creditLimit = null; + + @JsonProperty("defaultPaymentMethod") + private PaymentMethodRef defaultPaymentMethod = null; + + @JsonProperty("financialAccount") + private FinancialAccountRef financialAccount = null; + + @JsonProperty("paymentPlan") + @Valid + private List paymentPlan = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = new ArrayList<>(); + + @JsonProperty("taxExemption") + @Valid + private List taxExemption = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public BillingAccountUpdate accountType(String accountType) { + this.accountType = accountType; + return this; + } + + /** + * A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values. + * @return accountType + **/ + @Schema(description = "A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values.") + + + public String getAccountType() { + return accountType; + } + + public void setAccountType(String accountType) { + this.accountType = accountType; + } + + public BillingAccountUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Detailed description of the party account + * @return description + **/ + @Schema(description = "Detailed description of the party account") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BillingAccountUpdate lastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + return this; + } + + /** + * Date of last modification of the account + * @return lastModified + **/ + @Schema(description = "Date of last modification of the account") + + @Valid + + public OffsetDateTime getLastModified() { + return lastModified; + } + + public void setLastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + } + + public BillingAccountUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the account + * @return name + **/ + @Schema(description = "Name of the account") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillingAccountUpdate paymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + return this; + } + + /** + * The condition of the account, such as due, paid, in arrears. + * @return paymentStatus + **/ + @Schema(description = "The condition of the account, such as due, paid, in arrears.") + + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public BillingAccountUpdate ratingType(String ratingType) { + this.ratingType = ratingType; + return this; + } + + /** + * Indicates whether the account follows a specific payment option such as prepaid or postpaid + * @return ratingType + **/ + @Schema(description = "Indicates whether the account follows a specific payment option such as prepaid or postpaid") + + + public String getRatingType() { + return ratingType; + } + + public void setRatingType(String ratingType) { + this.ratingType = ratingType; + } + + public BillingAccountUpdate state(String state) { + this.state = state; + return this; + } + + /** + * Contains the lifecycle state such as: Active, Closed, Suspended and so on. + * @return state + **/ + @Schema(description = "Contains the lifecycle state such as: Active, Closed, Suspended and so on.") + + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public BillingAccountUpdate accountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + return this; + } + + public BillingAccountUpdate addAccountRelationshipItem(AccountRelationship accountRelationshipItem) { + if (this.accountRelationship == null) { + this.accountRelationship = new ArrayList<>(); + } + this.accountRelationship.add(accountRelationshipItem); + return this; + } + + /** + * Get accountRelationship + * @return accountRelationship + **/ + @Schema(description = "") + + @Valid + + public List getAccountRelationship() { + return accountRelationship; + } + + public void setAccountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + } + + public BillingAccountUpdate billStructure(BillStructure billStructure) { + this.billStructure = billStructure; + return this; + } + + /** + * Get billStructure + * @return billStructure + **/ + @Schema(description = "") + + @Valid + + public BillStructure getBillStructure() { + return billStructure; + } + + public void setBillStructure(BillStructure billStructure) { + this.billStructure = billStructure; + } + + public BillingAccountUpdate contact(List contact) { + this.contact = contact; + return this; + } + + public BillingAccountUpdate addContactItem(Contact contactItem) { + if (this.contact == null) { + this.contact = new ArrayList<>(); + } + this.contact.add(contactItem); + return this; + } + + /** + * Get contact + * @return contact + **/ + @Schema(description = "") + + @Valid + + public List getContact() { + return contact; + } + + public void setContact(List contact) { + this.contact = contact; + } + + public BillingAccountUpdate creditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + return this; + } + + /** + * The maximum amount of money that may be charged on an account + * @return creditLimit + **/ + @Schema(description = "The maximum amount of money that may be charged on an account") + + @Valid + + public Money getCreditLimit() { + return creditLimit; + } + + public void setCreditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + } + + public BillingAccountUpdate defaultPaymentMethod(PaymentMethodRef defaultPaymentMethod) { + this.defaultPaymentMethod = defaultPaymentMethod; + return this; + } + + /** + * Get defaultPaymentMethod + * @return defaultPaymentMethod + **/ + @Schema(description = "") + + @Valid + + public PaymentMethodRef getDefaultPaymentMethod() { + return defaultPaymentMethod; + } + + public void setDefaultPaymentMethod(PaymentMethodRef defaultPaymentMethod) { + this.defaultPaymentMethod = defaultPaymentMethod; + } + + public BillingAccountUpdate financialAccount(FinancialAccountRef financialAccount) { + this.financialAccount = financialAccount; + return this; + } + + /** + * Get financialAccount + * @return financialAccount + **/ + @Schema(description = "") + + @Valid + + public FinancialAccountRef getFinancialAccount() { + return financialAccount; + } + + public void setFinancialAccount(FinancialAccountRef financialAccount) { + this.financialAccount = financialAccount; + } + + public BillingAccountUpdate paymentPlan(List paymentPlan) { + this.paymentPlan = paymentPlan; + return this; + } + + public BillingAccountUpdate addPaymentPlanItem(PaymentPlan paymentPlanItem) { + if (this.paymentPlan == null) { + this.paymentPlan = new ArrayList<>(); + } + this.paymentPlan.add(paymentPlanItem); + return this; + } + + /** + * Get paymentPlan + * @return paymentPlan + **/ + @Schema(description = "") + + @Valid + + public List getPaymentPlan() { + return paymentPlan; + } + + public void setPaymentPlan(List paymentPlan) { + this.paymentPlan = paymentPlan; + } + + public BillingAccountUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public BillingAccountUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + @NotNull + + @Valid +@Size(min=1) + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public BillingAccountUpdate taxExemption(List taxExemption) { + this.taxExemption = taxExemption; + return this; + } + + public BillingAccountUpdate addTaxExemptionItem(AccountTaxExemption taxExemptionItem) { + if (this.taxExemption == null) { + this.taxExemption = new ArrayList<>(); + } + this.taxExemption.add(taxExemptionItem); + return this; + } + + /** + * Get taxExemption + * @return taxExemption + **/ + @Schema(description = "") + + @Valid + + public List getTaxExemption() { + return taxExemption; + } + + public void setTaxExemption(List taxExemption) { + this.taxExemption = taxExemption; + } + + public BillingAccountUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillingAccountUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillingAccountUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillingAccountUpdate billingAccountUpdate = (BillingAccountUpdate) o; + return Objects.equals(this.accountType, billingAccountUpdate.accountType) && + Objects.equals(this.description, billingAccountUpdate.description) && + Objects.equals(this.lastModified, billingAccountUpdate.lastModified) && + Objects.equals(this.name, billingAccountUpdate.name) && + Objects.equals(this.paymentStatus, billingAccountUpdate.paymentStatus) && + Objects.equals(this.ratingType, billingAccountUpdate.ratingType) && + Objects.equals(this.state, billingAccountUpdate.state) && + Objects.equals(this.accountRelationship, billingAccountUpdate.accountRelationship) && + Objects.equals(this.billStructure, billingAccountUpdate.billStructure) && + Objects.equals(this.contact, billingAccountUpdate.contact) && + Objects.equals(this.creditLimit, billingAccountUpdate.creditLimit) && + Objects.equals(this.defaultPaymentMethod, billingAccountUpdate.defaultPaymentMethod) && + Objects.equals(this.financialAccount, billingAccountUpdate.financialAccount) && + Objects.equals(this.paymentPlan, billingAccountUpdate.paymentPlan) && + Objects.equals(this.relatedParty, billingAccountUpdate.relatedParty) && + Objects.equals(this.taxExemption, billingAccountUpdate.taxExemption) && + Objects.equals(this.baseType, billingAccountUpdate.baseType) && + Objects.equals(this.schemaLocation, billingAccountUpdate.schemaLocation) && + Objects.equals(this.type, billingAccountUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(accountType, description, lastModified, name, paymentStatus, ratingType, state, accountRelationship, billStructure, contact, creditLimit, defaultPaymentMethod, financialAccount, paymentPlan, relatedParty, taxExemption, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillingAccountUpdate {\n"); + + sb.append(" accountType: ").append(toIndentedString(accountType)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastModified: ").append(toIndentedString(lastModified)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" paymentStatus: ").append(toIndentedString(paymentStatus)).append("\n"); + sb.append(" ratingType: ").append(toIndentedString(ratingType)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" accountRelationship: ").append(toIndentedString(accountRelationship)).append("\n"); + sb.append(" billStructure: ").append(toIndentedString(billStructure)).append("\n"); + sb.append(" contact: ").append(toIndentedString(contact)).append("\n"); + sb.append(" creditLimit: ").append(toIndentedString(creditLimit)).append("\n"); + sb.append(" defaultPaymentMethod: ").append(toIndentedString(defaultPaymentMethod)).append("\n"); + sb.append(" financialAccount: ").append(toIndentedString(financialAccount)).append("\n"); + sb.append(" paymentPlan: ").append(toIndentedString(paymentPlan)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" taxExemption: ").append(toIndentedString(taxExemption)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecification.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecification.java new file mode 100644 index 0000000..26adcc1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecification.java @@ -0,0 +1,453 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * A detailed description of when to initiate a billing cycle and the various sub steps of a billing cycle. + */ +@Schema(description = "A detailed description of when to initiate a billing cycle and the various sub steps of a billing cycle.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillingCycleSpecification { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("billingDateShift") + private Integer billingDateShift = null; + + @JsonProperty("billingPeriod") + private String billingPeriod = null; + + @JsonProperty("chargeDateOffset") + private Integer chargeDateOffset = null; + + @JsonProperty("creditDateOffset") + private Integer creditDateOffset = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("frequency") + private String frequency = null; + + @JsonProperty("mailingDateOffset") + private Integer mailingDateOffset = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("paymentDueDateOffset") + private Integer paymentDueDateOffset = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public BillingCycleSpecification id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the billing cycle specification + * @return id + **/ + @Schema(description = "Unique identifier of the billing cycle specification") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public BillingCycleSpecification href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the billing cycle specification + * @return href + **/ + @Schema(description = "Reference of the billing cycle specification") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public BillingCycleSpecification billingDateShift(Integer billingDateShift) { + this.billingDateShift = billingDateShift; + return this; + } + + /** + * An offset of a billing/settlement date. The offset is expressed as number of days with regard to the start of the billing/settlement period. + * @return billingDateShift + **/ + @Schema(description = "An offset of a billing/settlement date. The offset is expressed as number of days with regard to the start of the billing/settlement period.") + + + public Integer getBillingDateShift() { + return billingDateShift; + } + + public void setBillingDateShift(Integer billingDateShift) { + this.billingDateShift = billingDateShift; + } + + public BillingCycleSpecification billingPeriod(String billingPeriod) { + this.billingPeriod = billingPeriod; + return this; + } + + /** + * A billing time period. It can be recurring, for example: week, month, quarter of year, year . + * @return billingPeriod + **/ + @Schema(description = "A billing time period. It can be recurring, for example: week, month, quarter of year, year .") + + + public String getBillingPeriod() { + return billingPeriod; + } + + public void setBillingPeriod(String billingPeriod) { + this.billingPeriod = billingPeriod; + } + + public BillingCycleSpecification chargeDateOffset(Integer chargeDateOffset) { + this.chargeDateOffset = chargeDateOffset; + return this; + } + + /** + * An offset of a date through which charges previously received by the billing system will appear on the bill. The offset is expressed as number of days with regard to the start of the BillingPeriod. + * @return chargeDateOffset + **/ + @Schema(description = "An offset of a date through which charges previously received by the billing system will appear on the bill. The offset is expressed as number of days with regard to the start of the BillingPeriod.") + + + public Integer getChargeDateOffset() { + return chargeDateOffset; + } + + public void setChargeDateOffset(Integer chargeDateOffset) { + this.chargeDateOffset = chargeDateOffset; + } + + public BillingCycleSpecification creditDateOffset(Integer creditDateOffset) { + this.creditDateOffset = creditDateOffset; + return this; + } + + /** + * An offset of a date through which credits previously received by the billing system will appear on the bill. The offset is expressed as number of days with regard to the start of the BillingPeriod. + * @return creditDateOffset + **/ + @Schema(description = "An offset of a date through which credits previously received by the billing system will appear on the bill. The offset is expressed as number of days with regard to the start of the BillingPeriod.") + + + public Integer getCreditDateOffset() { + return creditDateOffset; + } + + public void setCreditDateOffset(Integer creditDateOffset) { + this.creditDateOffset = creditDateOffset; + } + + public BillingCycleSpecification description(String description) { + this.description = description; + return this; + } + + /** + * An explanation regarding this billing cycle specification + * @return description + **/ + @Schema(description = "An explanation regarding this billing cycle specification") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BillingCycleSpecification frequency(String frequency) { + this.frequency = frequency; + return this; + } + + /** + * Frequency of the billing cycle (monthly for instance) + * @return frequency + **/ + @Schema(description = "Frequency of the billing cycle (monthly for instance)") + + + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + public BillingCycleSpecification mailingDateOffset(Integer mailingDateOffset) { + this.mailingDateOffset = mailingDateOffset; + return this; + } + + /** + * An offset of a customer bill mailing date. The offset is expressed as number of days with regard to the start of the BillingPeriod. + * @return mailingDateOffset + **/ + @Schema(description = "An offset of a customer bill mailing date. The offset is expressed as number of days with regard to the start of the BillingPeriod.") + + + public Integer getMailingDateOffset() { + return mailingDateOffset; + } + + public void setMailingDateOffset(Integer mailingDateOffset) { + this.mailingDateOffset = mailingDateOffset; + } + + public BillingCycleSpecification name(String name) { + this.name = name; + return this; + } + + /** + * A short descriptive name + * @return name + **/ + @Schema(description = "A short descriptive name") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillingCycleSpecification paymentDueDateOffset(Integer paymentDueDateOffset) { + this.paymentDueDateOffset = paymentDueDateOffset; + return this; + } + + /** + * An offset of a payment due date. The offset is expressed as number of days with regard to the start of the BillingPeriod. + * @return paymentDueDateOffset + **/ + @Schema(description = "An offset of a payment due date. The offset is expressed as number of days with regard to the start of the BillingPeriod.") + + + public Integer getPaymentDueDateOffset() { + return paymentDueDateOffset; + } + + public void setPaymentDueDateOffset(Integer paymentDueDateOffset) { + this.paymentDueDateOffset = paymentDueDateOffset; + } + + public BillingCycleSpecification validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the billing specification cycle is valid + * @return validFor + **/ + @Schema(description = "The period for which the billing specification cycle is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public BillingCycleSpecification baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillingCycleSpecification schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillingCycleSpecification type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillingCycleSpecification billingCycleSpecification = (BillingCycleSpecification) o; + return Objects.equals(this.id, billingCycleSpecification.id) && + Objects.equals(this.href, billingCycleSpecification.href) && + Objects.equals(this.billingDateShift, billingCycleSpecification.billingDateShift) && + Objects.equals(this.billingPeriod, billingCycleSpecification.billingPeriod) && + Objects.equals(this.chargeDateOffset, billingCycleSpecification.chargeDateOffset) && + Objects.equals(this.creditDateOffset, billingCycleSpecification.creditDateOffset) && + Objects.equals(this.description, billingCycleSpecification.description) && + Objects.equals(this.frequency, billingCycleSpecification.frequency) && + Objects.equals(this.mailingDateOffset, billingCycleSpecification.mailingDateOffset) && + Objects.equals(this.name, billingCycleSpecification.name) && + Objects.equals(this.paymentDueDateOffset, billingCycleSpecification.paymentDueDateOffset) && + Objects.equals(this.validFor, billingCycleSpecification.validFor) && + Objects.equals(this.baseType, billingCycleSpecification.baseType) && + Objects.equals(this.schemaLocation, billingCycleSpecification.schemaLocation) && + Objects.equals(this.type, billingCycleSpecification.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, billingDateShift, billingPeriod, chargeDateOffset, creditDateOffset, description, frequency, mailingDateOffset, name, paymentDueDateOffset, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillingCycleSpecification {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" billingDateShift: ").append(toIndentedString(billingDateShift)).append("\n"); + sb.append(" billingPeriod: ").append(toIndentedString(billingPeriod)).append("\n"); + sb.append(" chargeDateOffset: ").append(toIndentedString(chargeDateOffset)).append("\n"); + sb.append(" creditDateOffset: ").append(toIndentedString(creditDateOffset)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" frequency: ").append(toIndentedString(frequency)).append("\n"); + sb.append(" mailingDateOffset: ").append(toIndentedString(mailingDateOffset)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" paymentDueDateOffset: ").append(toIndentedString(paymentDueDateOffset)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecificationCreate.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecificationCreate.java new file mode 100644 index 0000000..dc29383 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecificationCreate.java @@ -0,0 +1,403 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * A detailed description of when to initiate a billing cycle and the various sub steps of a billing cycle. Skipped properties: id,href + */ +@Schema(description = "A detailed description of when to initiate a billing cycle and the various sub steps of a billing cycle. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillingCycleSpecificationCreate { + @JsonProperty("billingDateShift") + private Integer billingDateShift = null; + + @JsonProperty("billingPeriod") + private String billingPeriod = null; + + @JsonProperty("chargeDateOffset") + private Integer chargeDateOffset = null; + + @JsonProperty("creditDateOffset") + private Integer creditDateOffset = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("frequency") + private String frequency = null; + + @JsonProperty("mailingDateOffset") + private Integer mailingDateOffset = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("paymentDueDateOffset") + private Integer paymentDueDateOffset = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public BillingCycleSpecificationCreate billingDateShift(Integer billingDateShift) { + this.billingDateShift = billingDateShift; + return this; + } + + /** + * An offset of a billing/settlement date. The offset is expressed as number of days with regard to the start of the billing/settlement period. + * @return billingDateShift + **/ + @Schema(description = "An offset of a billing/settlement date. The offset is expressed as number of days with regard to the start of the billing/settlement period.") + + + public Integer getBillingDateShift() { + return billingDateShift; + } + + public void setBillingDateShift(Integer billingDateShift) { + this.billingDateShift = billingDateShift; + } + + public BillingCycleSpecificationCreate billingPeriod(String billingPeriod) { + this.billingPeriod = billingPeriod; + return this; + } + + /** + * A billing time period. It can be recurring, for example: week, month, quarter of year, year . + * @return billingPeriod + **/ + @Schema(description = "A billing time period. It can be recurring, for example: week, month, quarter of year, year .") + + + public String getBillingPeriod() { + return billingPeriod; + } + + public void setBillingPeriod(String billingPeriod) { + this.billingPeriod = billingPeriod; + } + + public BillingCycleSpecificationCreate chargeDateOffset(Integer chargeDateOffset) { + this.chargeDateOffset = chargeDateOffset; + return this; + } + + /** + * An offset of a date through which charges previously received by the billing system will appear on the bill. The offset is expressed as number of days with regard to the start of the BillingPeriod. + * @return chargeDateOffset + **/ + @Schema(description = "An offset of a date through which charges previously received by the billing system will appear on the bill. The offset is expressed as number of days with regard to the start of the BillingPeriod.") + + + public Integer getChargeDateOffset() { + return chargeDateOffset; + } + + public void setChargeDateOffset(Integer chargeDateOffset) { + this.chargeDateOffset = chargeDateOffset; + } + + public BillingCycleSpecificationCreate creditDateOffset(Integer creditDateOffset) { + this.creditDateOffset = creditDateOffset; + return this; + } + + /** + * An offset of a date through which credits previously received by the billing system will appear on the bill. The offset is expressed as number of days with regard to the start of the BillingPeriod. + * @return creditDateOffset + **/ + @Schema(description = "An offset of a date through which credits previously received by the billing system will appear on the bill. The offset is expressed as number of days with regard to the start of the BillingPeriod.") + + + public Integer getCreditDateOffset() { + return creditDateOffset; + } + + public void setCreditDateOffset(Integer creditDateOffset) { + this.creditDateOffset = creditDateOffset; + } + + public BillingCycleSpecificationCreate description(String description) { + this.description = description; + return this; + } + + /** + * An explanation regarding this billing cycle specification + * @return description + **/ + @Schema(description = "An explanation regarding this billing cycle specification") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BillingCycleSpecificationCreate frequency(String frequency) { + this.frequency = frequency; + return this; + } + + /** + * Frequency of the billing cycle (monthly for instance) + * @return frequency + **/ + @Schema(description = "Frequency of the billing cycle (monthly for instance)") + + + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + public BillingCycleSpecificationCreate mailingDateOffset(Integer mailingDateOffset) { + this.mailingDateOffset = mailingDateOffset; + return this; + } + + /** + * An offset of a customer bill mailing date. The offset is expressed as number of days with regard to the start of the BillingPeriod. + * @return mailingDateOffset + **/ + @Schema(description = "An offset of a customer bill mailing date. The offset is expressed as number of days with regard to the start of the BillingPeriod.") + + + public Integer getMailingDateOffset() { + return mailingDateOffset; + } + + public void setMailingDateOffset(Integer mailingDateOffset) { + this.mailingDateOffset = mailingDateOffset; + } + + public BillingCycleSpecificationCreate name(String name) { + this.name = name; + return this; + } + + /** + * A short descriptive name + * @return name + **/ + @Schema(description = "A short descriptive name") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillingCycleSpecificationCreate paymentDueDateOffset(Integer paymentDueDateOffset) { + this.paymentDueDateOffset = paymentDueDateOffset; + return this; + } + + /** + * An offset of a payment due date. The offset is expressed as number of days with regard to the start of the BillingPeriod. + * @return paymentDueDateOffset + **/ + @Schema(description = "An offset of a payment due date. The offset is expressed as number of days with regard to the start of the BillingPeriod.") + + + public Integer getPaymentDueDateOffset() { + return paymentDueDateOffset; + } + + public void setPaymentDueDateOffset(Integer paymentDueDateOffset) { + this.paymentDueDateOffset = paymentDueDateOffset; + } + + public BillingCycleSpecificationCreate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the billing specification cycle is valid + * @return validFor + **/ + @Schema(description = "The period for which the billing specification cycle is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public BillingCycleSpecificationCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillingCycleSpecificationCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillingCycleSpecificationCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillingCycleSpecificationCreate billingCycleSpecificationCreate = (BillingCycleSpecificationCreate) o; + return Objects.equals(this.billingDateShift, billingCycleSpecificationCreate.billingDateShift) && + Objects.equals(this.billingPeriod, billingCycleSpecificationCreate.billingPeriod) && + Objects.equals(this.chargeDateOffset, billingCycleSpecificationCreate.chargeDateOffset) && + Objects.equals(this.creditDateOffset, billingCycleSpecificationCreate.creditDateOffset) && + Objects.equals(this.description, billingCycleSpecificationCreate.description) && + Objects.equals(this.frequency, billingCycleSpecificationCreate.frequency) && + Objects.equals(this.mailingDateOffset, billingCycleSpecificationCreate.mailingDateOffset) && + Objects.equals(this.name, billingCycleSpecificationCreate.name) && + Objects.equals(this.paymentDueDateOffset, billingCycleSpecificationCreate.paymentDueDateOffset) && + Objects.equals(this.validFor, billingCycleSpecificationCreate.validFor) && + Objects.equals(this.baseType, billingCycleSpecificationCreate.baseType) && + Objects.equals(this.schemaLocation, billingCycleSpecificationCreate.schemaLocation) && + Objects.equals(this.type, billingCycleSpecificationCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(billingDateShift, billingPeriod, chargeDateOffset, creditDateOffset, description, frequency, mailingDateOffset, name, paymentDueDateOffset, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillingCycleSpecificationCreate {\n"); + + sb.append(" billingDateShift: ").append(toIndentedString(billingDateShift)).append("\n"); + sb.append(" billingPeriod: ").append(toIndentedString(billingPeriod)).append("\n"); + sb.append(" chargeDateOffset: ").append(toIndentedString(chargeDateOffset)).append("\n"); + sb.append(" creditDateOffset: ").append(toIndentedString(creditDateOffset)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" frequency: ").append(toIndentedString(frequency)).append("\n"); + sb.append(" mailingDateOffset: ").append(toIndentedString(mailingDateOffset)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" paymentDueDateOffset: ").append(toIndentedString(paymentDueDateOffset)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecificationRef.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecificationRef.java new file mode 100644 index 0000000..d2a8d30 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecificationRef.java @@ -0,0 +1,302 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * BillingCycleSpecification reference. A description of when to initiate a billing cycle and the various sub steps of a billing cycle. + */ +@Schema(description = "BillingCycleSpecification reference. A description of when to initiate a billing cycle and the various sub steps of a billing cycle.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillingCycleSpecificationRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("dateShift") + private Integer dateShift = null; + + @JsonProperty("frequency") + private String frequency = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public BillingCycleSpecificationRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the billing cycle specification + * @return id + **/ + @Schema(description = "Unique identifier of the billing cycle specification") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public BillingCycleSpecificationRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the billing cycle specification + * @return href + **/ + @Schema(description = "Reference of the billing cycle specification") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public BillingCycleSpecificationRef dateShift(Integer dateShift) { + this.dateShift = dateShift; + return this; + } + + /** + * An offset of a billing/settlement date. The offset is expressed as number of days with regard to the start of the billing/settlement period. + * @return dateShift + **/ + @Schema(description = "An offset of a billing/settlement date. The offset is expressed as number of days with regard to the start of the billing/settlement period.") + + + public Integer getDateShift() { + return dateShift; + } + + public void setDateShift(Integer dateShift) { + this.dateShift = dateShift; + } + + public BillingCycleSpecificationRef frequency(String frequency) { + this.frequency = frequency; + return this; + } + + /** + * Frequency of the billing cycle (monthly for instance) + * @return frequency + **/ + @Schema(description = "Frequency of the billing cycle (monthly for instance)") + + + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + public BillingCycleSpecificationRef name(String name) { + this.name = name; + return this; + } + + /** + * A short descriptive name + * @return name + **/ + @Schema(description = "A short descriptive name") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillingCycleSpecificationRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillingCycleSpecificationRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillingCycleSpecificationRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public BillingCycleSpecificationRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillingCycleSpecificationRef billingCycleSpecificationRef = (BillingCycleSpecificationRef) o; + return Objects.equals(this.id, billingCycleSpecificationRef.id) && + Objects.equals(this.href, billingCycleSpecificationRef.href) && + Objects.equals(this.dateShift, billingCycleSpecificationRef.dateShift) && + Objects.equals(this.frequency, billingCycleSpecificationRef.frequency) && + Objects.equals(this.name, billingCycleSpecificationRef.name) && + Objects.equals(this.baseType, billingCycleSpecificationRef.baseType) && + Objects.equals(this.schemaLocation, billingCycleSpecificationRef.schemaLocation) && + Objects.equals(this.type, billingCycleSpecificationRef.type) && + Objects.equals(this.referredType, billingCycleSpecificationRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, dateShift, frequency, name, baseType, schemaLocation, type, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillingCycleSpecificationRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" dateShift: ").append(toIndentedString(dateShift)).append("\n"); + sb.append(" frequency: ").append(toIndentedString(frequency)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecificationRefOrValue.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecificationRefOrValue.java new file mode 100644 index 0000000..e9ee6c6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecificationRefOrValue.java @@ -0,0 +1,503 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * An attachment by value or by reference. + */ +@Schema(description = "An attachment by value or by reference.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillingCycleSpecificationRefOrValue { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("billingDateShift") + private Integer billingDateShift = null; + + @JsonProperty("billingPeriod") + private String billingPeriod = null; + + @JsonProperty("chargeDateOffset") + private Integer chargeDateOffset = null; + + @JsonProperty("creditDateOffset") + private Integer creditDateOffset = null; + + @JsonProperty("dateShift") + private Integer dateShift = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("frequency") + private String frequency = null; + + @JsonProperty("mailingDateOffset") + private Integer mailingDateOffset = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("paymentDueDateOffset") + private Integer paymentDueDateOffset = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public BillingCycleSpecificationRefOrValue id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the billing cycle specification + * @return id + **/ + @Schema(description = "Unique identifier of the billing cycle specification") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public BillingCycleSpecificationRefOrValue href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the billing cycle specification + * @return href + **/ + @Schema(description = "Reference of the billing cycle specification") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public BillingCycleSpecificationRefOrValue billingDateShift(Integer billingDateShift) { + this.billingDateShift = billingDateShift; + return this; + } + + /** + * An offset of a billing/settlement date. The offset is expressed as number of days with regard to the start of the billing/settlement period. + * @return billingDateShift + **/ + @Schema(description = "An offset of a billing/settlement date. The offset is expressed as number of days with regard to the start of the billing/settlement period.") + + + public Integer getBillingDateShift() { + return billingDateShift; + } + + public void setBillingDateShift(Integer billingDateShift) { + this.billingDateShift = billingDateShift; + } + + public BillingCycleSpecificationRefOrValue billingPeriod(String billingPeriod) { + this.billingPeriod = billingPeriod; + return this; + } + + /** + * A billing time period. It can be recurring, for example: week, month, quarter of year, year . + * @return billingPeriod + **/ + @Schema(description = "A billing time period. It can be recurring, for example: week, month, quarter of year, year .") + + + public String getBillingPeriod() { + return billingPeriod; + } + + public void setBillingPeriod(String billingPeriod) { + this.billingPeriod = billingPeriod; + } + + public BillingCycleSpecificationRefOrValue chargeDateOffset(Integer chargeDateOffset) { + this.chargeDateOffset = chargeDateOffset; + return this; + } + + /** + * An offset of a date through which charges previously received by the billing system will appear on the bill. The offset is expressed as number of days with regard to the start of the BillingPeriod. + * @return chargeDateOffset + **/ + @Schema(description = "An offset of a date through which charges previously received by the billing system will appear on the bill. The offset is expressed as number of days with regard to the start of the BillingPeriod.") + + + public Integer getChargeDateOffset() { + return chargeDateOffset; + } + + public void setChargeDateOffset(Integer chargeDateOffset) { + this.chargeDateOffset = chargeDateOffset; + } + + public BillingCycleSpecificationRefOrValue creditDateOffset(Integer creditDateOffset) { + this.creditDateOffset = creditDateOffset; + return this; + } + + /** + * An offset of a date through which credits previously received by the billing system will appear on the bill. The offset is expressed as number of days with regard to the start of the BillingPeriod. + * @return creditDateOffset + **/ + @Schema(description = "An offset of a date through which credits previously received by the billing system will appear on the bill. The offset is expressed as number of days with regard to the start of the BillingPeriod.") + + + public Integer getCreditDateOffset() { + return creditDateOffset; + } + + public void setCreditDateOffset(Integer creditDateOffset) { + this.creditDateOffset = creditDateOffset; + } + + public BillingCycleSpecificationRefOrValue dateShift(Integer dateShift) { + this.dateShift = dateShift; + return this; + } + + /** + * An offset of a billing/settlement date. The offset is expressed as number of days with regard to the start of the billing/settlement period. + * @return dateShift + **/ + @Schema(description = "An offset of a billing/settlement date. The offset is expressed as number of days with regard to the start of the billing/settlement period.") + + + public Integer getDateShift() { + return dateShift; + } + + public void setDateShift(Integer dateShift) { + this.dateShift = dateShift; + } + + public BillingCycleSpecificationRefOrValue description(String description) { + this.description = description; + return this; + } + + /** + * An explanation regarding this billing cycle specification + * @return description + **/ + @Schema(description = "An explanation regarding this billing cycle specification") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BillingCycleSpecificationRefOrValue frequency(String frequency) { + this.frequency = frequency; + return this; + } + + /** + * Frequency of the billing cycle (monthly for instance) + * @return frequency + **/ + @Schema(description = "Frequency of the billing cycle (monthly for instance)") + + + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + public BillingCycleSpecificationRefOrValue mailingDateOffset(Integer mailingDateOffset) { + this.mailingDateOffset = mailingDateOffset; + return this; + } + + /** + * An offset of a customer bill mailing date. The offset is expressed as number of days with regard to the start of the BillingPeriod. + * @return mailingDateOffset + **/ + @Schema(description = "An offset of a customer bill mailing date. The offset is expressed as number of days with regard to the start of the BillingPeriod.") + + + public Integer getMailingDateOffset() { + return mailingDateOffset; + } + + public void setMailingDateOffset(Integer mailingDateOffset) { + this.mailingDateOffset = mailingDateOffset; + } + + public BillingCycleSpecificationRefOrValue name(String name) { + this.name = name; + return this; + } + + /** + * A short descriptive name + * @return name + **/ + @Schema(description = "A short descriptive name") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillingCycleSpecificationRefOrValue paymentDueDateOffset(Integer paymentDueDateOffset) { + this.paymentDueDateOffset = paymentDueDateOffset; + return this; + } + + /** + * An offset of a payment due date. The offset is expressed as number of days with regard to the start of the BillingPeriod. + * @return paymentDueDateOffset + **/ + @Schema(description = "An offset of a payment due date. The offset is expressed as number of days with regard to the start of the BillingPeriod.") + + + public Integer getPaymentDueDateOffset() { + return paymentDueDateOffset; + } + + public void setPaymentDueDateOffset(Integer paymentDueDateOffset) { + this.paymentDueDateOffset = paymentDueDateOffset; + } + + public BillingCycleSpecificationRefOrValue validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the billing specification cycle is valid + * @return validFor + **/ + @Schema(description = "The period for which the billing specification cycle is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public BillingCycleSpecificationRefOrValue baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillingCycleSpecificationRefOrValue schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillingCycleSpecificationRefOrValue type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public BillingCycleSpecificationRefOrValue referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillingCycleSpecificationRefOrValue billingCycleSpecificationRefOrValue = (BillingCycleSpecificationRefOrValue) o; + return Objects.equals(this.id, billingCycleSpecificationRefOrValue.id) && + Objects.equals(this.href, billingCycleSpecificationRefOrValue.href) && + Objects.equals(this.billingDateShift, billingCycleSpecificationRefOrValue.billingDateShift) && + Objects.equals(this.billingPeriod, billingCycleSpecificationRefOrValue.billingPeriod) && + Objects.equals(this.chargeDateOffset, billingCycleSpecificationRefOrValue.chargeDateOffset) && + Objects.equals(this.creditDateOffset, billingCycleSpecificationRefOrValue.creditDateOffset) && + Objects.equals(this.dateShift, billingCycleSpecificationRefOrValue.dateShift) && + Objects.equals(this.description, billingCycleSpecificationRefOrValue.description) && + Objects.equals(this.frequency, billingCycleSpecificationRefOrValue.frequency) && + Objects.equals(this.mailingDateOffset, billingCycleSpecificationRefOrValue.mailingDateOffset) && + Objects.equals(this.name, billingCycleSpecificationRefOrValue.name) && + Objects.equals(this.paymentDueDateOffset, billingCycleSpecificationRefOrValue.paymentDueDateOffset) && + Objects.equals(this.validFor, billingCycleSpecificationRefOrValue.validFor) && + Objects.equals(this.baseType, billingCycleSpecificationRefOrValue.baseType) && + Objects.equals(this.schemaLocation, billingCycleSpecificationRefOrValue.schemaLocation) && + Objects.equals(this.type, billingCycleSpecificationRefOrValue.type) && + Objects.equals(this.referredType, billingCycleSpecificationRefOrValue.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, billingDateShift, billingPeriod, chargeDateOffset, creditDateOffset, dateShift, description, frequency, mailingDateOffset, name, paymentDueDateOffset, validFor, baseType, schemaLocation, type, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillingCycleSpecificationRefOrValue {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" billingDateShift: ").append(toIndentedString(billingDateShift)).append("\n"); + sb.append(" billingPeriod: ").append(toIndentedString(billingPeriod)).append("\n"); + sb.append(" chargeDateOffset: ").append(toIndentedString(chargeDateOffset)).append("\n"); + sb.append(" creditDateOffset: ").append(toIndentedString(creditDateOffset)).append("\n"); + sb.append(" dateShift: ").append(toIndentedString(dateShift)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" frequency: ").append(toIndentedString(frequency)).append("\n"); + sb.append(" mailingDateOffset: ").append(toIndentedString(mailingDateOffset)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" paymentDueDateOffset: ").append(toIndentedString(paymentDueDateOffset)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecificationUpdate.java b/src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecificationUpdate.java new file mode 100644 index 0000000..a3b0885 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/BillingCycleSpecificationUpdate.java @@ -0,0 +1,403 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * A detailed description of when to initiate a billing cycle and the various sub steps of a billing cycle. Skipped properties: id,href + */ +@Schema(description = "A detailed description of when to initiate a billing cycle and the various sub steps of a billing cycle. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class BillingCycleSpecificationUpdate { + @JsonProperty("billingDateShift") + private Integer billingDateShift = null; + + @JsonProperty("billingPeriod") + private String billingPeriod = null; + + @JsonProperty("chargeDateOffset") + private Integer chargeDateOffset = null; + + @JsonProperty("creditDateOffset") + private Integer creditDateOffset = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("frequency") + private String frequency = null; + + @JsonProperty("mailingDateOffset") + private Integer mailingDateOffset = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("paymentDueDateOffset") + private Integer paymentDueDateOffset = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public BillingCycleSpecificationUpdate billingDateShift(Integer billingDateShift) { + this.billingDateShift = billingDateShift; + return this; + } + + /** + * An offset of a billing/settlement date. The offset is expressed as number of days with regard to the start of the billing/settlement period. + * @return billingDateShift + **/ + @Schema(description = "An offset of a billing/settlement date. The offset is expressed as number of days with regard to the start of the billing/settlement period.") + + + public Integer getBillingDateShift() { + return billingDateShift; + } + + public void setBillingDateShift(Integer billingDateShift) { + this.billingDateShift = billingDateShift; + } + + public BillingCycleSpecificationUpdate billingPeriod(String billingPeriod) { + this.billingPeriod = billingPeriod; + return this; + } + + /** + * A billing time period. It can be recurring, for example: week, month, quarter of year, year . + * @return billingPeriod + **/ + @Schema(description = "A billing time period. It can be recurring, for example: week, month, quarter of year, year .") + + + public String getBillingPeriod() { + return billingPeriod; + } + + public void setBillingPeriod(String billingPeriod) { + this.billingPeriod = billingPeriod; + } + + public BillingCycleSpecificationUpdate chargeDateOffset(Integer chargeDateOffset) { + this.chargeDateOffset = chargeDateOffset; + return this; + } + + /** + * An offset of a date through which charges previously received by the billing system will appear on the bill. The offset is expressed as number of days with regard to the start of the BillingPeriod. + * @return chargeDateOffset + **/ + @Schema(description = "An offset of a date through which charges previously received by the billing system will appear on the bill. The offset is expressed as number of days with regard to the start of the BillingPeriod.") + + + public Integer getChargeDateOffset() { + return chargeDateOffset; + } + + public void setChargeDateOffset(Integer chargeDateOffset) { + this.chargeDateOffset = chargeDateOffset; + } + + public BillingCycleSpecificationUpdate creditDateOffset(Integer creditDateOffset) { + this.creditDateOffset = creditDateOffset; + return this; + } + + /** + * An offset of a date through which credits previously received by the billing system will appear on the bill. The offset is expressed as number of days with regard to the start of the BillingPeriod. + * @return creditDateOffset + **/ + @Schema(description = "An offset of a date through which credits previously received by the billing system will appear on the bill. The offset is expressed as number of days with regard to the start of the BillingPeriod.") + + + public Integer getCreditDateOffset() { + return creditDateOffset; + } + + public void setCreditDateOffset(Integer creditDateOffset) { + this.creditDateOffset = creditDateOffset; + } + + public BillingCycleSpecificationUpdate description(String description) { + this.description = description; + return this; + } + + /** + * An explanation regarding this billing cycle specification + * @return description + **/ + @Schema(description = "An explanation regarding this billing cycle specification") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BillingCycleSpecificationUpdate frequency(String frequency) { + this.frequency = frequency; + return this; + } + + /** + * Frequency of the billing cycle (monthly for instance) + * @return frequency + **/ + @Schema(description = "Frequency of the billing cycle (monthly for instance)") + + + public String getFrequency() { + return frequency; + } + + public void setFrequency(String frequency) { + this.frequency = frequency; + } + + public BillingCycleSpecificationUpdate mailingDateOffset(Integer mailingDateOffset) { + this.mailingDateOffset = mailingDateOffset; + return this; + } + + /** + * An offset of a customer bill mailing date. The offset is expressed as number of days with regard to the start of the BillingPeriod. + * @return mailingDateOffset + **/ + @Schema(description = "An offset of a customer bill mailing date. The offset is expressed as number of days with regard to the start of the BillingPeriod.") + + + public Integer getMailingDateOffset() { + return mailingDateOffset; + } + + public void setMailingDateOffset(Integer mailingDateOffset) { + this.mailingDateOffset = mailingDateOffset; + } + + public BillingCycleSpecificationUpdate name(String name) { + this.name = name; + return this; + } + + /** + * A short descriptive name + * @return name + **/ + @Schema(description = "A short descriptive name") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillingCycleSpecificationUpdate paymentDueDateOffset(Integer paymentDueDateOffset) { + this.paymentDueDateOffset = paymentDueDateOffset; + return this; + } + + /** + * An offset of a payment due date. The offset is expressed as number of days with regard to the start of the BillingPeriod. + * @return paymentDueDateOffset + **/ + @Schema(description = "An offset of a payment due date. The offset is expressed as number of days with regard to the start of the BillingPeriod.") + + + public Integer getPaymentDueDateOffset() { + return paymentDueDateOffset; + } + + public void setPaymentDueDateOffset(Integer paymentDueDateOffset) { + this.paymentDueDateOffset = paymentDueDateOffset; + } + + public BillingCycleSpecificationUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the billing specification cycle is valid + * @return validFor + **/ + @Schema(description = "The period for which the billing specification cycle is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public BillingCycleSpecificationUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BillingCycleSpecificationUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillingCycleSpecificationUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillingCycleSpecificationUpdate billingCycleSpecificationUpdate = (BillingCycleSpecificationUpdate) o; + return Objects.equals(this.billingDateShift, billingCycleSpecificationUpdate.billingDateShift) && + Objects.equals(this.billingPeriod, billingCycleSpecificationUpdate.billingPeriod) && + Objects.equals(this.chargeDateOffset, billingCycleSpecificationUpdate.chargeDateOffset) && + Objects.equals(this.creditDateOffset, billingCycleSpecificationUpdate.creditDateOffset) && + Objects.equals(this.description, billingCycleSpecificationUpdate.description) && + Objects.equals(this.frequency, billingCycleSpecificationUpdate.frequency) && + Objects.equals(this.mailingDateOffset, billingCycleSpecificationUpdate.mailingDateOffset) && + Objects.equals(this.name, billingCycleSpecificationUpdate.name) && + Objects.equals(this.paymentDueDateOffset, billingCycleSpecificationUpdate.paymentDueDateOffset) && + Objects.equals(this.validFor, billingCycleSpecificationUpdate.validFor) && + Objects.equals(this.baseType, billingCycleSpecificationUpdate.baseType) && + Objects.equals(this.schemaLocation, billingCycleSpecificationUpdate.schemaLocation) && + Objects.equals(this.type, billingCycleSpecificationUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(billingDateShift, billingPeriod, chargeDateOffset, creditDateOffset, description, frequency, mailingDateOffset, name, paymentDueDateOffset, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillingCycleSpecificationUpdate {\n"); + + sb.append(" billingDateShift: ").append(toIndentedString(billingDateShift)).append("\n"); + sb.append(" billingPeriod: ").append(toIndentedString(billingPeriod)).append("\n"); + sb.append(" chargeDateOffset: ").append(toIndentedString(chargeDateOffset)).append("\n"); + sb.append(" creditDateOffset: ").append(toIndentedString(creditDateOffset)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" frequency: ").append(toIndentedString(frequency)).append("\n"); + sb.append(" mailingDateOffset: ").append(toIndentedString(mailingDateOffset)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" paymentDueDateOffset: ").append(toIndentedString(paymentDueDateOffset)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/Contact.java b/src/main/java/org/etsi/osl/tmf/am666/model/Contact.java new file mode 100644 index 0000000..4f237b6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/Contact.java @@ -0,0 +1,318 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * An individual or an organization used as a contact point for a given account and accessed via some contact medium. + */ +@Schema(description = "An individual or an organization used as a contact point for a given account and accessed via some contact medium.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class Contact { + @JsonProperty("contactName") + private String contactName = null; + + @JsonProperty("contactType") + private String contactType = null; + + @JsonProperty("partyRoleType") + private String partyRoleType = null; + + @JsonProperty("contactMedium") + @Valid + private List contactMedium = null; + + @JsonProperty("relatedParty") + private RelatedParty relatedParty = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Contact contactName(String contactName) { + this.contactName = contactName; + return this; + } + + /** + * A displayable name for that contact + * @return contactName + **/ + @Schema(description = "A displayable name for that contact") + + + public String getContactName() { + return contactName; + } + + public void setContactName(String contactName) { + this.contactName = contactName; + } + + public Contact contactType(String contactType) { + this.contactType = contactType; + return this; + } + + /** + * Type of contact (primary, secondary...) + * @return contactType + **/ + @Schema(description = "Type of contact (primary, secondary...)") + @NotNull + + + public String getContactType() { + return contactType; + } + + public void setContactType(String contactType) { + this.contactType = contactType; + } + + public Contact partyRoleType(String partyRoleType) { + this.partyRoleType = partyRoleType; + return this; + } + + /** + * Identifies what kind of party role type is linked to the contact (a account manager...) + * @return partyRoleType + **/ + @Schema(description = "Identifies what kind of party role type is linked to the contact (a account manager...)") + + + public String getPartyRoleType() { + return partyRoleType; + } + + public void setPartyRoleType(String partyRoleType) { + this.partyRoleType = partyRoleType; + } + + public Contact contactMedium(List contactMedium) { + this.contactMedium = contactMedium; + return this; + } + + public Contact addContactMediumItem(ContactMedium contactMediumItem) { + if (this.contactMedium == null) { + this.contactMedium = new ArrayList<>(); + } + this.contactMedium.add(contactMediumItem); + return this; + } + + /** + * Get contactMedium + * @return contactMedium + **/ + @Schema(description = "") + + @Valid + + public List getContactMedium() { + return contactMedium; + } + + public void setContactMedium(List contactMedium) { + this.contactMedium = contactMedium; + } + + public Contact relatedParty(RelatedParty relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public RelatedParty getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(RelatedParty relatedParty) { + this.relatedParty = relatedParty; + } + + public Contact validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Validity period of that contact + * @return validFor + **/ + @Schema(description = "Validity period of that contact") + @NotNull + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public Contact baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public Contact schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Contact type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Contact contact = (Contact) o; + return Objects.equals(this.contactName, contact.contactName) && + Objects.equals(this.contactType, contact.contactType) && + Objects.equals(this.partyRoleType, contact.partyRoleType) && + Objects.equals(this.contactMedium, contact.contactMedium) && + Objects.equals(this.relatedParty, contact.relatedParty) && + Objects.equals(this.validFor, contact.validFor) && + Objects.equals(this.baseType, contact.baseType) && + Objects.equals(this.schemaLocation, contact.schemaLocation) && + Objects.equals(this.type, contact.type); + } + + @Override + public int hashCode() { + return Objects.hash(contactName, contactType, partyRoleType, contactMedium, relatedParty, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Contact {\n"); + + sb.append(" contactName: ").append(toIndentedString(contactName)).append("\n"); + sb.append(" contactType: ").append(toIndentedString(contactType)).append("\n"); + sb.append(" partyRoleType: ").append(toIndentedString(partyRoleType)).append("\n"); + sb.append(" contactMedium: ").append(toIndentedString(contactMedium)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/ContactMedium.java b/src/main/java/org/etsi/osl/tmf/am666/model/ContactMedium.java new file mode 100644 index 0000000..b3d6295 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/ContactMedium.java @@ -0,0 +1,252 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Indicates the contact medium that could be used to contact the party. + */ +@Schema(description = "Indicates the contact medium that could be used to contact the party.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class ContactMedium { + @JsonProperty("mediumType") + private String mediumType = null; + + @JsonProperty("preferred") + private Boolean preferred = null; + + @JsonProperty("characteristic") + private MediumCharacteristic characteristic = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ContactMedium mediumType(String mediumType) { + this.mediumType = mediumType; + return this; + } + + /** + * Type of the contact medium, such as: email address, telephone number, postal address + * @return mediumType + **/ + @Schema(description = "Type of the contact medium, such as: email address, telephone number, postal address") + + + public String getMediumType() { + return mediumType; + } + + public void setMediumType(String mediumType) { + this.mediumType = mediumType; + } + + public ContactMedium preferred(Boolean preferred) { + this.preferred = preferred; + return this; + } + + /** + * If true, indicates that is the preferred contact medium + * @return preferred + **/ + @Schema(description = "If true, indicates that is the preferred contact medium") + + + public Boolean isPreferred() { + return preferred; + } + + public void setPreferred(Boolean preferred) { + this.preferred = preferred; + } + + public ContactMedium characteristic(MediumCharacteristic characteristic) { + this.characteristic = characteristic; + return this; + } + + /** + * Any additional characteristic(s) of this contact medium + * @return characteristic + **/ + @Schema(description = "Any additional characteristic(s) of this contact medium") + + @Valid + + public MediumCharacteristic getCharacteristic() { + return characteristic; + } + + public void setCharacteristic(MediumCharacteristic characteristic) { + this.characteristic = characteristic; + } + + public ContactMedium validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The time period that the contact medium is valid for + * @return validFor + **/ + @Schema(description = "The time period that the contact medium is valid for") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ContactMedium baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ContactMedium schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ContactMedium type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ContactMedium contactMedium = (ContactMedium) o; + return Objects.equals(this.mediumType, contactMedium.mediumType) && + Objects.equals(this.preferred, contactMedium.preferred) && + Objects.equals(this.characteristic, contactMedium.characteristic) && + Objects.equals(this.validFor, contactMedium.validFor) && + Objects.equals(this.baseType, contactMedium.baseType) && + Objects.equals(this.schemaLocation, contactMedium.schemaLocation) && + Objects.equals(this.type, contactMedium.type); + } + + @Override + public int hashCode() { + return Objects.hash(mediumType, preferred, characteristic, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ContactMedium {\n"); + + sb.append(" mediumType: ").append(toIndentedString(mediumType)).append("\n"); + sb.append(" preferred: ").append(toIndentedString(preferred)).append("\n"); + sb.append(" characteristic: ").append(toIndentedString(characteristic)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/EntityRef.java b/src/main/java/org/etsi/osl/tmf/am666/model/EntityRef.java new file mode 100644 index 0000000..b1528af --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/EntityRef.java @@ -0,0 +1,252 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Entity reference schema to be use for all entityRef class. + */ +@Schema(description = "Entity reference schema to be use for all entityRef class.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class EntityRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public EntityRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EntityRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public EntityRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public EntityRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public EntityRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public EntityRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public EntityRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntityRef entityRef = (EntityRef) o; + return Objects.equals(this.id, entityRef.id) && + Objects.equals(this.href, entityRef.href) && + Objects.equals(this.name, entityRef.name) && + Objects.equals(this.baseType, entityRef.baseType) && + Objects.equals(this.schemaLocation, entityRef.schemaLocation) && + Objects.equals(this.type, entityRef.type) && + Objects.equals(this.referredType, entityRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntityRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/Error.java b/src/main/java/org/etsi/osl/tmf/am666/model/Error.java new file mode 100644 index 0000000..f17f1e4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/Error.java @@ -0,0 +1,278 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx) + */ +@Schema(description = "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class Error { + @JsonProperty("code") + private String code = null; + + @JsonProperty("reason") + private String reason = null; + + @JsonProperty("message") + private String message = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("referenceError") + private String referenceError = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Error code(String code) { + this.code = code; + return this; + } + + /** + * Application relevant detail, defined in the API or a common list. + * @return code + **/ + @Schema(description = "Application relevant detail, defined in the API or a common list.") + @NotNull + + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public Error reason(String reason) { + this.reason = reason; + return this; + } + + /** + * Explanation of the reason for the error which can be shown to a client user. + * @return reason + **/ + @Schema(description = "Explanation of the reason for the error which can be shown to a client user.") + @NotNull + + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public Error message(String message) { + this.message = message; + return this; + } + + /** + * More details and corrective actions related to the error which can be shown to a client user. + * @return message + **/ + @Schema(description = "More details and corrective actions related to the error which can be shown to a client user.") + + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Error status(String status) { + this.status = status; + return this; + } + + /** + * HTTP Error code extension + * @return status + **/ + @Schema(description = "HTTP Error code extension") + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Error referenceError(String referenceError) { + this.referenceError = referenceError; + return this; + } + + /** + * URI of documentation describing the error. + * @return referenceError + **/ + @Schema(description = "URI of documentation describing the error.") + + + public String getReferenceError() { + return referenceError; + } + + public void setReferenceError(String referenceError) { + this.referenceError = referenceError; + } + + public Error baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class. + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class.") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public Error schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Error type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name. + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name.") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Error error = (Error) o; + return Objects.equals(this.code, error.code) && + Objects.equals(this.reason, error.reason) && + Objects.equals(this.message, error.message) && + Objects.equals(this.status, error.status) && + Objects.equals(this.referenceError, error.referenceError) && + Objects.equals(this.baseType, error.baseType) && + Objects.equals(this.schemaLocation, error.schemaLocation) && + Objects.equals(this.type, error.type); + } + + @Override + public int hashCode() { + return Objects.hash(code, reason, message, status, referenceError, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Error {\n"); + + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" referenceError: ").append(toIndentedString(referenceError)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/am666/model/EventSubscription.java new file mode 100644 index 0000000..83eb7ab --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/EventSubscription.java @@ -0,0 +1,153 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class EventSubscription { + @JsonProperty("id") + private String id = null; + + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscription id(String id) { + this.id = id; + return this; + } + + /** + * Id of the listener + * @return id + **/ + @Schema(description = "Id of the listener") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EventSubscription callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscription query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscription eventSubscription = (EventSubscription) o; + return Objects.equals(this.id, eventSubscription.id) && + Objects.equals(this.callback, eventSubscription.callback) && + Objects.equals(this.query, eventSubscription.query); + } + + @Override + public int hashCode() { + return Objects.hash(id, callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscription {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/EventSubscriptionInput.java b/src/main/java/org/etsi/osl/tmf/am666/model/EventSubscriptionInput.java new file mode 100644 index 0000000..f27f0d4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/EventSubscriptionInput.java @@ -0,0 +1,127 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class EventSubscriptionInput { + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscriptionInput callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscriptionInput query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscriptionInput eventSubscriptionInput = (EventSubscriptionInput) o; + return Objects.equals(this.callback, eventSubscriptionInput.callback) && + Objects.equals(this.query, eventSubscriptionInput.query); + } + + @Override + public int hashCode() { + return Objects.hash(callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscriptionInput {\n"); + + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccount.java b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccount.java new file mode 100644 index 0000000..6d877f8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccount.java @@ -0,0 +1,532 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * An account of money owed by a party to another entity in exchange for goods or services that have been delivered or used. A financial (account receivable account/account payable) aggregates the amounts of one or more party accounts (billing or settlement) owned by a given party. It is a specialization of entity Account. + */ +@Schema(description = "An account of money owed by a party to another entity in exchange for goods or services that have been delivered or used. A financial (account receivable account/account payable) aggregates the amounts of one or more party accounts (billing or settlement) owned by a given party. It is a specialization of entity Account.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class FinancialAccount { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("accountType") + private String accountType = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("lastModified") + private OffsetDateTime lastModified = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("accountBalance") + @Valid + private List accountBalance = null; + + @JsonProperty("accountRelationship") + @Valid + private List accountRelationship = null; + + @JsonProperty("contact") + @Valid + private List contact = null; + + @JsonProperty("creditLimit") + private Money creditLimit = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @JsonProperty("taxExemption") + @Valid + private List taxExemption = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public FinancialAccount id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the account + * @return id + **/ + @Schema(description = "Unique identifier of the account") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public FinancialAccount href(String href) { + this.href = href; + return this; + } + + /** + * Unique reference of the account + * @return href + **/ + @Schema(description = "Unique reference of the account") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public FinancialAccount accountType(String accountType) { + this.accountType = accountType; + return this; + } + + /** + * A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values. + * @return accountType + **/ + @Schema(description = "A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values.") + + + public String getAccountType() { + return accountType; + } + + public void setAccountType(String accountType) { + this.accountType = accountType; + } + + public FinancialAccount description(String description) { + this.description = description; + return this; + } + + /** + * Detailed description of the party account + * @return description + **/ + @Schema(description = "Detailed description of the party account") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public FinancialAccount lastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + return this; + } + + /** + * Date of last modification of the account + * @return lastModified + **/ + @Schema(description = "Date of last modification of the account") + + @Valid + + public OffsetDateTime getLastModified() { + return lastModified; + } + + public void setLastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + } + + public FinancialAccount name(String name) { + this.name = name; + return this; + } + + /** + * Name of the account + * @return name + **/ + @Schema(description = "Name of the account") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public FinancialAccount state(String state) { + this.state = state; + return this; + } + + /** + * Contains the lifecycle state such as: Active, Closed, Suspended and so on. + * @return state + **/ + @Schema(description = "Contains the lifecycle state such as: Active, Closed, Suspended and so on.") + + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public FinancialAccount accountBalance(List accountBalance) { + this.accountBalance = accountBalance; + return this; + } + + public FinancialAccount addAccountBalanceItem(AccountBalance accountBalanceItem) { + if (this.accountBalance == null) { + this.accountBalance = new ArrayList<>(); + } + this.accountBalance.add(accountBalanceItem); + return this; + } + + /** + * Get accountBalance + * @return accountBalance + **/ + @Schema(description = "") + + @Valid + + public List getAccountBalance() { + return accountBalance; + } + + public void setAccountBalance(List accountBalance) { + this.accountBalance = accountBalance; + } + + public FinancialAccount accountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + return this; + } + + public FinancialAccount addAccountRelationshipItem(AccountRelationship accountRelationshipItem) { + if (this.accountRelationship == null) { + this.accountRelationship = new ArrayList<>(); + } + this.accountRelationship.add(accountRelationshipItem); + return this; + } + + /** + * Get accountRelationship + * @return accountRelationship + **/ + @Schema(description = "") + + @Valid + + public List getAccountRelationship() { + return accountRelationship; + } + + public void setAccountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + } + + public FinancialAccount contact(List contact) { + this.contact = contact; + return this; + } + + public FinancialAccount addContactItem(Contact contactItem) { + if (this.contact == null) { + this.contact = new ArrayList<>(); + } + this.contact.add(contactItem); + return this; + } + + /** + * Get contact + * @return contact + **/ + @Schema(description = "") + + @Valid + + public List getContact() { + return contact; + } + + public void setContact(List contact) { + this.contact = contact; + } + + public FinancialAccount creditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + return this; + } + + /** + * The maximum amount of money that may be charged on an account + * @return creditLimit + **/ + @Schema(description = "The maximum amount of money that may be charged on an account") + + @Valid + + public Money getCreditLimit() { + return creditLimit; + } + + public void setCreditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + } + + public FinancialAccount relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public FinancialAccount addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public FinancialAccount taxExemption(List taxExemption) { + this.taxExemption = taxExemption; + return this; + } + + public FinancialAccount addTaxExemptionItem(AccountTaxExemption taxExemptionItem) { + if (this.taxExemption == null) { + this.taxExemption = new ArrayList<>(); + } + this.taxExemption.add(taxExemptionItem); + return this; + } + + /** + * Get taxExemption + * @return taxExemption + **/ + @Schema(description = "") + + @Valid + + public List getTaxExemption() { + return taxExemption; + } + + public void setTaxExemption(List taxExemption) { + this.taxExemption = taxExemption; + } + + public FinancialAccount baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public FinancialAccount schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public FinancialAccount type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FinancialAccount financialAccount = (FinancialAccount) o; + return Objects.equals(this.id, financialAccount.id) && + Objects.equals(this.href, financialAccount.href) && + Objects.equals(this.accountType, financialAccount.accountType) && + Objects.equals(this.description, financialAccount.description) && + Objects.equals(this.lastModified, financialAccount.lastModified) && + Objects.equals(this.name, financialAccount.name) && + Objects.equals(this.state, financialAccount.state) && + Objects.equals(this.accountBalance, financialAccount.accountBalance) && + Objects.equals(this.accountRelationship, financialAccount.accountRelationship) && + Objects.equals(this.contact, financialAccount.contact) && + Objects.equals(this.creditLimit, financialAccount.creditLimit) && + Objects.equals(this.relatedParty, financialAccount.relatedParty) && + Objects.equals(this.taxExemption, financialAccount.taxExemption) && + Objects.equals(this.baseType, financialAccount.baseType) && + Objects.equals(this.schemaLocation, financialAccount.schemaLocation) && + Objects.equals(this.type, financialAccount.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, accountType, description, lastModified, name, state, accountBalance, accountRelationship, contact, creditLimit, relatedParty, taxExemption, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FinancialAccount {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" accountType: ").append(toIndentedString(accountType)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastModified: ").append(toIndentedString(lastModified)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" accountBalance: ").append(toIndentedString(accountBalance)).append("\n"); + sb.append(" accountRelationship: ").append(toIndentedString(accountRelationship)).append("\n"); + sb.append(" contact: ").append(toIndentedString(contact)).append("\n"); + sb.append(" creditLimit: ").append(toIndentedString(creditLimit)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" taxExemption: ").append(toIndentedString(taxExemption)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountAttributeValueChangeEvent.java new file mode 100644 index 0000000..f3155e4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountAttributeValueChangeEvent.java @@ -0,0 +1,355 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class FinancialAccountAttributeValueChangeEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("event") + private FinancialAccountAttributeValueChangeEventPayload event = null; + + public FinancialAccountAttributeValueChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public FinancialAccountAttributeValueChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public FinancialAccountAttributeValueChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public FinancialAccountAttributeValueChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public FinancialAccountAttributeValueChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public FinancialAccountAttributeValueChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public FinancialAccountAttributeValueChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory of the event. + * @return description + **/ + @Schema(description = "An explanatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public FinancialAccountAttributeValueChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public FinancialAccountAttributeValueChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public FinancialAccountAttributeValueChangeEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public FinancialAccountAttributeValueChangeEvent event(FinancialAccountAttributeValueChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public FinancialAccountAttributeValueChangeEventPayload getEvent() { + return event; + } + + public void setEvent(FinancialAccountAttributeValueChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FinancialAccountAttributeValueChangeEvent financialAccountAttributeValueChangeEvent = (FinancialAccountAttributeValueChangeEvent) o; + return Objects.equals(this.eventId, financialAccountAttributeValueChangeEvent.eventId) && + Objects.equals(this.eventTime, financialAccountAttributeValueChangeEvent.eventTime) && + Objects.equals(this.eventType, financialAccountAttributeValueChangeEvent.eventType) && + Objects.equals(this.correlationId, financialAccountAttributeValueChangeEvent.correlationId) && + Objects.equals(this.domain, financialAccountAttributeValueChangeEvent.domain) && + Objects.equals(this.title, financialAccountAttributeValueChangeEvent.title) && + Objects.equals(this.description, financialAccountAttributeValueChangeEvent.description) && + Objects.equals(this.priority, financialAccountAttributeValueChangeEvent.priority) && + Objects.equals(this.timeOcurred, financialAccountAttributeValueChangeEvent.timeOcurred) && + Objects.equals(this.fieldPath, financialAccountAttributeValueChangeEvent.fieldPath) && + Objects.equals(this.event, financialAccountAttributeValueChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, fieldPath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FinancialAccountAttributeValueChangeEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountAttributeValueChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountAttributeValueChangeEventPayload.java new file mode 100644 index 0000000..ee7389f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountAttributeValueChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class FinancialAccountAttributeValueChangeEventPayload { + @JsonProperty("financialAccount") + private FinancialAccount financialAccount = null; + + public FinancialAccountAttributeValueChangeEventPayload financialAccount(FinancialAccount financialAccount) { + this.financialAccount = financialAccount; + return this; + } + + /** + * The involved resource data for the event + * @return financialAccount + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public FinancialAccount getFinancialAccount() { + return financialAccount; + } + + public void setFinancialAccount(FinancialAccount financialAccount) { + this.financialAccount = financialAccount; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FinancialAccountAttributeValueChangeEventPayload financialAccountAttributeValueChangeEventPayload = (FinancialAccountAttributeValueChangeEventPayload) o; + return Objects.equals(this.financialAccount, financialAccountAttributeValueChangeEventPayload.financialAccount); + } + + @Override + public int hashCode() { + return Objects.hash(financialAccount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FinancialAccountAttributeValueChangeEventPayload {\n"); + + sb.append(" financialAccount: ").append(toIndentedString(financialAccount)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountCreate.java b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountCreate.java new file mode 100644 index 0000000..6236a5f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountCreate.java @@ -0,0 +1,482 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * An account of money owed by a party to another entity in exchange for goods or services that have been delivered or used. A financial (account receivable account/account payable) aggregates the amounts of one or more party accounts (billing or settlement) owned by a given party. It is a specialization of entity Account. Skipped properties: id,href + */ +@Schema(description = "An account of money owed by a party to another entity in exchange for goods or services that have been delivered or used. A financial (account receivable account/account payable) aggregates the amounts of one or more party accounts (billing or settlement) owned by a given party. It is a specialization of entity Account. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class FinancialAccountCreate { + @JsonProperty("accountType") + private String accountType = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("lastModified") + private OffsetDateTime lastModified = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("accountBalance") + @Valid + private List accountBalance = null; + + @JsonProperty("accountRelationship") + @Valid + private List accountRelationship = null; + + @JsonProperty("contact") + @Valid + private List contact = null; + + @JsonProperty("creditLimit") + private Money creditLimit = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @JsonProperty("taxExemption") + @Valid + private List taxExemption = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public FinancialAccountCreate accountType(String accountType) { + this.accountType = accountType; + return this; + } + + /** + * A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values. + * @return accountType + **/ + @Schema(description = "A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values.") + + + public String getAccountType() { + return accountType; + } + + public void setAccountType(String accountType) { + this.accountType = accountType; + } + + public FinancialAccountCreate description(String description) { + this.description = description; + return this; + } + + /** + * Detailed description of the party account + * @return description + **/ + @Schema(description = "Detailed description of the party account") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public FinancialAccountCreate lastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + return this; + } + + /** + * Date of last modification of the account + * @return lastModified + **/ + @Schema(description = "Date of last modification of the account") + + @Valid + + public OffsetDateTime getLastModified() { + return lastModified; + } + + public void setLastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + } + + public FinancialAccountCreate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the account + * @return name + **/ + @Schema(description = "Name of the account") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public FinancialAccountCreate state(String state) { + this.state = state; + return this; + } + + /** + * Contains the lifecycle state such as: Active, Closed, Suspended and so on. + * @return state + **/ + @Schema(description = "Contains the lifecycle state such as: Active, Closed, Suspended and so on.") + + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public FinancialAccountCreate accountBalance(List accountBalance) { + this.accountBalance = accountBalance; + return this; + } + + public FinancialAccountCreate addAccountBalanceItem(AccountBalance accountBalanceItem) { + if (this.accountBalance == null) { + this.accountBalance = new ArrayList<>(); + } + this.accountBalance.add(accountBalanceItem); + return this; + } + + /** + * Get accountBalance + * @return accountBalance + **/ + @Schema(description = "") + + @Valid + + public List getAccountBalance() { + return accountBalance; + } + + public void setAccountBalance(List accountBalance) { + this.accountBalance = accountBalance; + } + + public FinancialAccountCreate accountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + return this; + } + + public FinancialAccountCreate addAccountRelationshipItem(AccountRelationship accountRelationshipItem) { + if (this.accountRelationship == null) { + this.accountRelationship = new ArrayList<>(); + } + this.accountRelationship.add(accountRelationshipItem); + return this; + } + + /** + * Get accountRelationship + * @return accountRelationship + **/ + @Schema(description = "") + + @Valid + + public List getAccountRelationship() { + return accountRelationship; + } + + public void setAccountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + } + + public FinancialAccountCreate contact(List contact) { + this.contact = contact; + return this; + } + + public FinancialAccountCreate addContactItem(Contact contactItem) { + if (this.contact == null) { + this.contact = new ArrayList<>(); + } + this.contact.add(contactItem); + return this; + } + + /** + * Get contact + * @return contact + **/ + @Schema(description = "") + + @Valid + + public List getContact() { + return contact; + } + + public void setContact(List contact) { + this.contact = contact; + } + + public FinancialAccountCreate creditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + return this; + } + + /** + * The maximum amount of money that may be charged on an account + * @return creditLimit + **/ + @Schema(description = "The maximum amount of money that may be charged on an account") + + @Valid + + public Money getCreditLimit() { + return creditLimit; + } + + public void setCreditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + } + + public FinancialAccountCreate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public FinancialAccountCreate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public FinancialAccountCreate taxExemption(List taxExemption) { + this.taxExemption = taxExemption; + return this; + } + + public FinancialAccountCreate addTaxExemptionItem(AccountTaxExemption taxExemptionItem) { + if (this.taxExemption == null) { + this.taxExemption = new ArrayList<>(); + } + this.taxExemption.add(taxExemptionItem); + return this; + } + + /** + * Get taxExemption + * @return taxExemption + **/ + @Schema(description = "") + + @Valid + + public List getTaxExemption() { + return taxExemption; + } + + public void setTaxExemption(List taxExemption) { + this.taxExemption = taxExemption; + } + + public FinancialAccountCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public FinancialAccountCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public FinancialAccountCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FinancialAccountCreate financialAccountCreate = (FinancialAccountCreate) o; + return Objects.equals(this.accountType, financialAccountCreate.accountType) && + Objects.equals(this.description, financialAccountCreate.description) && + Objects.equals(this.lastModified, financialAccountCreate.lastModified) && + Objects.equals(this.name, financialAccountCreate.name) && + Objects.equals(this.state, financialAccountCreate.state) && + Objects.equals(this.accountBalance, financialAccountCreate.accountBalance) && + Objects.equals(this.accountRelationship, financialAccountCreate.accountRelationship) && + Objects.equals(this.contact, financialAccountCreate.contact) && + Objects.equals(this.creditLimit, financialAccountCreate.creditLimit) && + Objects.equals(this.relatedParty, financialAccountCreate.relatedParty) && + Objects.equals(this.taxExemption, financialAccountCreate.taxExemption) && + Objects.equals(this.baseType, financialAccountCreate.baseType) && + Objects.equals(this.schemaLocation, financialAccountCreate.schemaLocation) && + Objects.equals(this.type, financialAccountCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(accountType, description, lastModified, name, state, accountBalance, accountRelationship, contact, creditLimit, relatedParty, taxExemption, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FinancialAccountCreate {\n"); + + sb.append(" accountType: ").append(toIndentedString(accountType)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastModified: ").append(toIndentedString(lastModified)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" accountBalance: ").append(toIndentedString(accountBalance)).append("\n"); + sb.append(" accountRelationship: ").append(toIndentedString(accountRelationship)).append("\n"); + sb.append(" contact: ").append(toIndentedString(contact)).append("\n"); + sb.append(" creditLimit: ").append(toIndentedString(creditLimit)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" taxExemption: ").append(toIndentedString(taxExemption)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountCreateEvent.java b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountCreateEvent.java new file mode 100644 index 0000000..6390738 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountCreateEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class FinancialAccountCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private FinancialAccountCreateEventPayload event = null; + + public FinancialAccountCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the resource involved in the event + * @return id + **/ + @Schema(description = "Identifier of the resource involved in the event") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public FinancialAccountCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the resource involved in the event + * @return href + **/ + @Schema(description = "Reference of the resource involved in the event") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public FinancialAccountCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public FinancialAccountCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public FinancialAccountCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public FinancialAccountCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public FinancialAccountCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public FinancialAccountCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public FinancialAccountCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory of the event. + * @return description + **/ + @Schema(description = "An explanatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public FinancialAccountCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public FinancialAccountCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public FinancialAccountCreateEvent event(FinancialAccountCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public FinancialAccountCreateEventPayload getEvent() { + return event; + } + + public void setEvent(FinancialAccountCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FinancialAccountCreateEvent financialAccountCreateEvent = (FinancialAccountCreateEvent) o; + return Objects.equals(this.id, financialAccountCreateEvent.id) && + Objects.equals(this.href, financialAccountCreateEvent.href) && + Objects.equals(this.eventId, financialAccountCreateEvent.eventId) && + Objects.equals(this.eventTime, financialAccountCreateEvent.eventTime) && + Objects.equals(this.eventType, financialAccountCreateEvent.eventType) && + Objects.equals(this.correlationId, financialAccountCreateEvent.correlationId) && + Objects.equals(this.domain, financialAccountCreateEvent.domain) && + Objects.equals(this.title, financialAccountCreateEvent.title) && + Objects.equals(this.description, financialAccountCreateEvent.description) && + Objects.equals(this.priority, financialAccountCreateEvent.priority) && + Objects.equals(this.timeOcurred, financialAccountCreateEvent.timeOcurred) && + Objects.equals(this.event, financialAccountCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FinancialAccountCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountCreateEventPayload.java new file mode 100644 index 0000000..e757c54 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountCreateEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class FinancialAccountCreateEventPayload { + @JsonProperty("financialAccount") + private FinancialAccount financialAccount = null; + + public FinancialAccountCreateEventPayload financialAccount(FinancialAccount financialAccount) { + this.financialAccount = financialAccount; + return this; + } + + /** + * The involved resource data for the event + * @return financialAccount + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public FinancialAccount getFinancialAccount() { + return financialAccount; + } + + public void setFinancialAccount(FinancialAccount financialAccount) { + this.financialAccount = financialAccount; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FinancialAccountCreateEventPayload financialAccountCreateEventPayload = (FinancialAccountCreateEventPayload) o; + return Objects.equals(this.financialAccount, financialAccountCreateEventPayload.financialAccount); + } + + @Override + public int hashCode() { + return Objects.hash(financialAccount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FinancialAccountCreateEventPayload {\n"); + + sb.append(" financialAccount: ").append(toIndentedString(financialAccount)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountDeleteEvent.java new file mode 100644 index 0000000..97c4c96 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountDeleteEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class FinancialAccountDeleteEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private FinancialAccountDeleteEventPayload event = null; + + public FinancialAccountDeleteEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the resource involved in the event + * @return id + **/ + @Schema(description = "Identifier of the resource involved in the event") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public FinancialAccountDeleteEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the resource involved in the event + * @return href + **/ + @Schema(description = "Reference of the resource involved in the event") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public FinancialAccountDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public FinancialAccountDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public FinancialAccountDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public FinancialAccountDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public FinancialAccountDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public FinancialAccountDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public FinancialAccountDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory of the event. + * @return description + **/ + @Schema(description = "An explanatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public FinancialAccountDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public FinancialAccountDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public FinancialAccountDeleteEvent event(FinancialAccountDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public FinancialAccountDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(FinancialAccountDeleteEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FinancialAccountDeleteEvent financialAccountDeleteEvent = (FinancialAccountDeleteEvent) o; + return Objects.equals(this.id, financialAccountDeleteEvent.id) && + Objects.equals(this.href, financialAccountDeleteEvent.href) && + Objects.equals(this.eventId, financialAccountDeleteEvent.eventId) && + Objects.equals(this.eventTime, financialAccountDeleteEvent.eventTime) && + Objects.equals(this.eventType, financialAccountDeleteEvent.eventType) && + Objects.equals(this.correlationId, financialAccountDeleteEvent.correlationId) && + Objects.equals(this.domain, financialAccountDeleteEvent.domain) && + Objects.equals(this.title, financialAccountDeleteEvent.title) && + Objects.equals(this.description, financialAccountDeleteEvent.description) && + Objects.equals(this.priority, financialAccountDeleteEvent.priority) && + Objects.equals(this.timeOcurred, financialAccountDeleteEvent.timeOcurred) && + Objects.equals(this.event, financialAccountDeleteEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FinancialAccountDeleteEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountDeleteEventPayload.java new file mode 100644 index 0000000..0f8344b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountDeleteEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class FinancialAccountDeleteEventPayload { + @JsonProperty("financialAccount") + private FinancialAccount financialAccount = null; + + public FinancialAccountDeleteEventPayload financialAccount(FinancialAccount financialAccount) { + this.financialAccount = financialAccount; + return this; + } + + /** + * The involved resource data for the event + * @return financialAccount + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public FinancialAccount getFinancialAccount() { + return financialAccount; + } + + public void setFinancialAccount(FinancialAccount financialAccount) { + this.financialAccount = financialAccount; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FinancialAccountDeleteEventPayload financialAccountDeleteEventPayload = (FinancialAccountDeleteEventPayload) o; + return Objects.equals(this.financialAccount, financialAccountDeleteEventPayload.financialAccount); + } + + @Override + public int hashCode() { + return Objects.hash(financialAccount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FinancialAccountDeleteEventPayload {\n"); + + sb.append(" financialAccount: ").append(toIndentedString(financialAccount)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountRef.java b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountRef.java new file mode 100644 index 0000000..12502fd --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountRef.java @@ -0,0 +1,279 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * AccountReceivable reference. An account of money owed by a party to another entity in exchange for goods or services that have been delivered or used. An account receivable aggregates the amounts of one or more party accounts (billing or settlement) owned by a given party. + */ +@Schema(description = "AccountReceivable reference. An account of money owed by a party to another entity in exchange for goods or services that have been delivered or used. An account receivable aggregates the amounts of one or more party accounts (billing or settlement) owned by a given party.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class FinancialAccountRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("accountBalance") + private AccountBalance accountBalance = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public FinancialAccountRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the account + * @return id + **/ + @Schema(description = "Unique identifier of the account") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public FinancialAccountRef href(String href) { + this.href = href; + return this; + } + + /** + * Unique reference of the account + * @return href + **/ + @Schema(description = "Unique reference of the account") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public FinancialAccountRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the account + * @return name + **/ + @Schema(description = "Name of the account") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public FinancialAccountRef accountBalance(AccountBalance accountBalance) { + this.accountBalance = accountBalance; + return this; + } + + /** + * Get accountBalance + * @return accountBalance + **/ + @Schema(description = "") + + @Valid + + public AccountBalance getAccountBalance() { + return accountBalance; + } + + public void setAccountBalance(AccountBalance accountBalance) { + this.accountBalance = accountBalance; + } + + public FinancialAccountRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public FinancialAccountRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public FinancialAccountRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public FinancialAccountRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FinancialAccountRef financialAccountRef = (FinancialAccountRef) o; + return Objects.equals(this.id, financialAccountRef.id) && + Objects.equals(this.href, financialAccountRef.href) && + Objects.equals(this.name, financialAccountRef.name) && + Objects.equals(this.accountBalance, financialAccountRef.accountBalance) && + Objects.equals(this.baseType, financialAccountRef.baseType) && + Objects.equals(this.schemaLocation, financialAccountRef.schemaLocation) && + Objects.equals(this.type, financialAccountRef.type) && + Objects.equals(this.referredType, financialAccountRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, accountBalance, baseType, schemaLocation, type, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FinancialAccountRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" accountBalance: ").append(toIndentedString(accountBalance)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountStateChangeEvent.java new file mode 100644 index 0000000..57c9cd9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountStateChangeEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class FinancialAccountStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private FinancialAccountStateChangeEventPayload event = null; + + public FinancialAccountStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the resource involved in the event + * @return id + **/ + @Schema(description = "Identifier of the resource involved in the event") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public FinancialAccountStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the resource involved in the event + * @return href + **/ + @Schema(description = "Reference of the resource involved in the event") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public FinancialAccountStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public FinancialAccountStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public FinancialAccountStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public FinancialAccountStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public FinancialAccountStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public FinancialAccountStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public FinancialAccountStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory of the event. + * @return description + **/ + @Schema(description = "An explanatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public FinancialAccountStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public FinancialAccountStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public FinancialAccountStateChangeEvent event(FinancialAccountStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public FinancialAccountStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(FinancialAccountStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FinancialAccountStateChangeEvent financialAccountStateChangeEvent = (FinancialAccountStateChangeEvent) o; + return Objects.equals(this.id, financialAccountStateChangeEvent.id) && + Objects.equals(this.href, financialAccountStateChangeEvent.href) && + Objects.equals(this.eventId, financialAccountStateChangeEvent.eventId) && + Objects.equals(this.eventTime, financialAccountStateChangeEvent.eventTime) && + Objects.equals(this.eventType, financialAccountStateChangeEvent.eventType) && + Objects.equals(this.correlationId, financialAccountStateChangeEvent.correlationId) && + Objects.equals(this.domain, financialAccountStateChangeEvent.domain) && + Objects.equals(this.title, financialAccountStateChangeEvent.title) && + Objects.equals(this.description, financialAccountStateChangeEvent.description) && + Objects.equals(this.priority, financialAccountStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, financialAccountStateChangeEvent.timeOcurred) && + Objects.equals(this.event, financialAccountStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FinancialAccountStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountStateChangeEventPayload.java new file mode 100644 index 0000000..830e069 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountStateChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class FinancialAccountStateChangeEventPayload { + @JsonProperty("financialAccount") + private FinancialAccount financialAccount = null; + + public FinancialAccountStateChangeEventPayload financialAccount(FinancialAccount financialAccount) { + this.financialAccount = financialAccount; + return this; + } + + /** + * The involved resource data for the event + * @return financialAccount + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public FinancialAccount getFinancialAccount() { + return financialAccount; + } + + public void setFinancialAccount(FinancialAccount financialAccount) { + this.financialAccount = financialAccount; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FinancialAccountStateChangeEventPayload financialAccountStateChangeEventPayload = (FinancialAccountStateChangeEventPayload) o; + return Objects.equals(this.financialAccount, financialAccountStateChangeEventPayload.financialAccount); + } + + @Override + public int hashCode() { + return Objects.hash(financialAccount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FinancialAccountStateChangeEventPayload {\n"); + + sb.append(" financialAccount: ").append(toIndentedString(financialAccount)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountUpdate.java b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountUpdate.java new file mode 100644 index 0000000..4a2b29d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/FinancialAccountUpdate.java @@ -0,0 +1,455 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * An account of money owed by a party to another entity in exchange for goods or services that have been delivered or used. A financial (account receivable account/account payable) aggregates the amounts of one or more party accounts (billing or settlement) owned by a given party. It is a specialization of entity Account. Skipped properties: id,href,lastModified + */ +@Schema(description = "An account of money owed by a party to another entity in exchange for goods or services that have been delivered or used. A financial (account receivable account/account payable) aggregates the amounts of one or more party accounts (billing or settlement) owned by a given party. It is a specialization of entity Account. Skipped properties: id,href,lastModified") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class FinancialAccountUpdate { + @JsonProperty("accountType") + private String accountType = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("accountBalance") + @Valid + private List accountBalance = null; + + @JsonProperty("accountRelationship") + @Valid + private List accountRelationship = null; + + @JsonProperty("contact") + @Valid + private List contact = null; + + @JsonProperty("creditLimit") + private Money creditLimit = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @JsonProperty("taxExemption") + @Valid + private List taxExemption = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public FinancialAccountUpdate accountType(String accountType) { + this.accountType = accountType; + return this; + } + + /** + * A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values. + * @return accountType + **/ + @Schema(description = "A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values.") + + + public String getAccountType() { + return accountType; + } + + public void setAccountType(String accountType) { + this.accountType = accountType; + } + + public FinancialAccountUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Detailed description of the party account + * @return description + **/ + @Schema(description = "Detailed description of the party account") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public FinancialAccountUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the account + * @return name + **/ + @Schema(description = "Name of the account") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public FinancialAccountUpdate state(String state) { + this.state = state; + return this; + } + + /** + * Contains the lifecycle state such as: Active, Closed, Suspended and so on. + * @return state + **/ + @Schema(description = "Contains the lifecycle state such as: Active, Closed, Suspended and so on.") + + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public FinancialAccountUpdate accountBalance(List accountBalance) { + this.accountBalance = accountBalance; + return this; + } + + public FinancialAccountUpdate addAccountBalanceItem(AccountBalance accountBalanceItem) { + if (this.accountBalance == null) { + this.accountBalance = new ArrayList<>(); + } + this.accountBalance.add(accountBalanceItem); + return this; + } + + /** + * Get accountBalance + * @return accountBalance + **/ + @Schema(description = "") + + @Valid + + public List getAccountBalance() { + return accountBalance; + } + + public void setAccountBalance(List accountBalance) { + this.accountBalance = accountBalance; + } + + public FinancialAccountUpdate accountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + return this; + } + + public FinancialAccountUpdate addAccountRelationshipItem(AccountRelationship accountRelationshipItem) { + if (this.accountRelationship == null) { + this.accountRelationship = new ArrayList<>(); + } + this.accountRelationship.add(accountRelationshipItem); + return this; + } + + /** + * Get accountRelationship + * @return accountRelationship + **/ + @Schema(description = "") + + @Valid + + public List getAccountRelationship() { + return accountRelationship; + } + + public void setAccountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + } + + public FinancialAccountUpdate contact(List contact) { + this.contact = contact; + return this; + } + + public FinancialAccountUpdate addContactItem(Contact contactItem) { + if (this.contact == null) { + this.contact = new ArrayList<>(); + } + this.contact.add(contactItem); + return this; + } + + /** + * Get contact + * @return contact + **/ + @Schema(description = "") + + @Valid + + public List getContact() { + return contact; + } + + public void setContact(List contact) { + this.contact = contact; + } + + public FinancialAccountUpdate creditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + return this; + } + + /** + * The maximum amount of money that may be charged on an account + * @return creditLimit + **/ + @Schema(description = "The maximum amount of money that may be charged on an account") + + @Valid + + public Money getCreditLimit() { + return creditLimit; + } + + public void setCreditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + } + + public FinancialAccountUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public FinancialAccountUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public FinancialAccountUpdate taxExemption(List taxExemption) { + this.taxExemption = taxExemption; + return this; + } + + public FinancialAccountUpdate addTaxExemptionItem(AccountTaxExemption taxExemptionItem) { + if (this.taxExemption == null) { + this.taxExemption = new ArrayList<>(); + } + this.taxExemption.add(taxExemptionItem); + return this; + } + + /** + * Get taxExemption + * @return taxExemption + **/ + @Schema(description = "") + + @Valid + + public List getTaxExemption() { + return taxExemption; + } + + public void setTaxExemption(List taxExemption) { + this.taxExemption = taxExemption; + } + + public FinancialAccountUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public FinancialAccountUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public FinancialAccountUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FinancialAccountUpdate financialAccountUpdate = (FinancialAccountUpdate) o; + return Objects.equals(this.accountType, financialAccountUpdate.accountType) && + Objects.equals(this.description, financialAccountUpdate.description) && + Objects.equals(this.name, financialAccountUpdate.name) && + Objects.equals(this.state, financialAccountUpdate.state) && + Objects.equals(this.accountBalance, financialAccountUpdate.accountBalance) && + Objects.equals(this.accountRelationship, financialAccountUpdate.accountRelationship) && + Objects.equals(this.contact, financialAccountUpdate.contact) && + Objects.equals(this.creditLimit, financialAccountUpdate.creditLimit) && + Objects.equals(this.relatedParty, financialAccountUpdate.relatedParty) && + Objects.equals(this.taxExemption, financialAccountUpdate.taxExemption) && + Objects.equals(this.baseType, financialAccountUpdate.baseType) && + Objects.equals(this.schemaLocation, financialAccountUpdate.schemaLocation) && + Objects.equals(this.type, financialAccountUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(accountType, description, name, state, accountBalance, accountRelationship, contact, creditLimit, relatedParty, taxExemption, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FinancialAccountUpdate {\n"); + + sb.append(" accountType: ").append(toIndentedString(accountType)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" accountBalance: ").append(toIndentedString(accountBalance)).append("\n"); + sb.append(" accountRelationship: ").append(toIndentedString(accountRelationship)).append("\n"); + sb.append(" contact: ").append(toIndentedString(contact)).append("\n"); + sb.append(" creditLimit: ").append(toIndentedString(creditLimit)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" taxExemption: ").append(toIndentedString(taxExemption)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/MediumCharacteristic.java b/src/main/java/org/etsi/osl/tmf/am666/model/MediumCharacteristic.java new file mode 100644 index 0000000..e2cc66d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/MediumCharacteristic.java @@ -0,0 +1,425 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Describes the contact medium characteristics that could be used to contact a party (an individual or an organization) + */ +@Schema(description = "Describes the contact medium characteristics that could be used to contact a party (an individual or an organization)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class MediumCharacteristic { + @JsonProperty("city") + private String city = null; + + @JsonProperty("contactType") + private String contactType = null; + + @JsonProperty("country") + private String country = null; + + @JsonProperty("emailAddress") + private String emailAddress = null; + + @JsonProperty("faxNumber") + private String faxNumber = null; + + @JsonProperty("phoneNumber") + private String phoneNumber = null; + + @JsonProperty("postCode") + private String postCode = null; + + @JsonProperty("socialNetworkId") + private String socialNetworkId = null; + + @JsonProperty("stateOrProvince") + private String stateOrProvince = null; + + @JsonProperty("street1") + private String street1 = null; + + @JsonProperty("street2") + private String street2 = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public MediumCharacteristic city(String city) { + this.city = city; + return this; + } + + /** + * The city + * @return city + **/ + @Schema(description = "The city") + + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public MediumCharacteristic contactType(String contactType) { + this.contactType = contactType; + return this; + } + + /** + * The type of contact, for example: phone number such as mobile, fixed home, fixed office. postal address such as shipping instalation… + * @return contactType + **/ + @Schema(description = "The type of contact, for example: phone number such as mobile, fixed home, fixed office. postal address such as shipping instalation…") + + + public String getContactType() { + return contactType; + } + + public void setContactType(String contactType) { + this.contactType = contactType; + } + + public MediumCharacteristic country(String country) { + this.country = country; + return this; + } + + /** + * The country + * @return country + **/ + @Schema(description = "The country") + + + public String getCountry() { + return country; + } + + public void setCountry(String country) { + this.country = country; + } + + public MediumCharacteristic emailAddress(String emailAddress) { + this.emailAddress = emailAddress; + return this; + } + + /** + * Full email address in standard format + * @return emailAddress + **/ + @Schema(description = "Full email address in standard format") + + + public String getEmailAddress() { + return emailAddress; + } + + public void setEmailAddress(String emailAddress) { + this.emailAddress = emailAddress; + } + + public MediumCharacteristic faxNumber(String faxNumber) { + this.faxNumber = faxNumber; + return this; + } + + /** + * The fax number of the contact + * @return faxNumber + **/ + @Schema(description = "The fax number of the contact") + + + public String getFaxNumber() { + return faxNumber; + } + + public void setFaxNumber(String faxNumber) { + this.faxNumber = faxNumber; + } + + public MediumCharacteristic phoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + return this; + } + + /** + * The primary phone number of the contact + * @return phoneNumber + **/ + @Schema(description = "The primary phone number of the contact") + + + public String getPhoneNumber() { + return phoneNumber; + } + + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + + public MediumCharacteristic postCode(String postCode) { + this.postCode = postCode; + return this; + } + + /** + * Postcode + * @return postCode + **/ + @Schema(description = "Postcode") + + + public String getPostCode() { + return postCode; + } + + public void setPostCode(String postCode) { + this.postCode = postCode; + } + + public MediumCharacteristic socialNetworkId(String socialNetworkId) { + this.socialNetworkId = socialNetworkId; + return this; + } + + /** + * Identifier as a member of a social network + * @return socialNetworkId + **/ + @Schema(description = "Identifier as a member of a social network") + + + public String getSocialNetworkId() { + return socialNetworkId; + } + + public void setSocialNetworkId(String socialNetworkId) { + this.socialNetworkId = socialNetworkId; + } + + public MediumCharacteristic stateOrProvince(String stateOrProvince) { + this.stateOrProvince = stateOrProvince; + return this; + } + + /** + * State or province + * @return stateOrProvince + **/ + @Schema(description = "State or province") + + + public String getStateOrProvince() { + return stateOrProvince; + } + + public void setStateOrProvince(String stateOrProvince) { + this.stateOrProvince = stateOrProvince; + } + + public MediumCharacteristic street1(String street1) { + this.street1 = street1; + return this; + } + + /** + * Describes the street + * @return street1 + **/ + @Schema(description = "Describes the street") + + + public String getStreet1() { + return street1; + } + + public void setStreet1(String street1) { + this.street1 = street1; + } + + public MediumCharacteristic street2(String street2) { + this.street2 = street2; + return this; + } + + /** + * Complementary street description + * @return street2 + **/ + @Schema(description = "Complementary street description") + + + public String getStreet2() { + return street2; + } + + public void setStreet2(String street2) { + this.street2 = street2; + } + + public MediumCharacteristic baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public MediumCharacteristic schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public MediumCharacteristic type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediumCharacteristic mediumCharacteristic = (MediumCharacteristic) o; + return Objects.equals(this.city, mediumCharacteristic.city) && + Objects.equals(this.contactType, mediumCharacteristic.contactType) && + Objects.equals(this.country, mediumCharacteristic.country) && + Objects.equals(this.emailAddress, mediumCharacteristic.emailAddress) && + Objects.equals(this.faxNumber, mediumCharacteristic.faxNumber) && + Objects.equals(this.phoneNumber, mediumCharacteristic.phoneNumber) && + Objects.equals(this.postCode, mediumCharacteristic.postCode) && + Objects.equals(this.socialNetworkId, mediumCharacteristic.socialNetworkId) && + Objects.equals(this.stateOrProvince, mediumCharacteristic.stateOrProvince) && + Objects.equals(this.street1, mediumCharacteristic.street1) && + Objects.equals(this.street2, mediumCharacteristic.street2) && + Objects.equals(this.baseType, mediumCharacteristic.baseType) && + Objects.equals(this.schemaLocation, mediumCharacteristic.schemaLocation) && + Objects.equals(this.type, mediumCharacteristic.type); + } + + @Override + public int hashCode() { + return Objects.hash(city, contactType, country, emailAddress, faxNumber, phoneNumber, postCode, socialNetworkId, stateOrProvince, street1, street2, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediumCharacteristic {\n"); + + sb.append(" city: ").append(toIndentedString(city)).append("\n"); + sb.append(" contactType: ").append(toIndentedString(contactType)).append("\n"); + sb.append(" country: ").append(toIndentedString(country)).append("\n"); + sb.append(" emailAddress: ").append(toIndentedString(emailAddress)).append("\n"); + sb.append(" faxNumber: ").append(toIndentedString(faxNumber)).append("\n"); + sb.append(" phoneNumber: ").append(toIndentedString(phoneNumber)).append("\n"); + sb.append(" postCode: ").append(toIndentedString(postCode)).append("\n"); + sb.append(" socialNetworkId: ").append(toIndentedString(socialNetworkId)).append("\n"); + sb.append(" stateOrProvince: ").append(toIndentedString(stateOrProvince)).append("\n"); + sb.append(" street1: ").append(toIndentedString(street1)).append("\n"); + sb.append(" street2: ").append(toIndentedString(street2)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/Money.java b/src/main/java/org/etsi/osl/tmf/am666/model/Money.java new file mode 100644 index 0000000..c12d62e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/Money.java @@ -0,0 +1,125 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * A base / value business entity used to represent money + */ +@Schema(description = "A base / value business entity used to represent money") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class Money { + @JsonProperty("unit") + private String unit = null; + + @JsonProperty("value") + private Float value = null; + + public Money unit(String unit) { + this.unit = unit; + return this; + } + + /** + * Currency (ISO4217 norm uses 3 letters to define the currency) + * @return unit + **/ + @Schema(description = "Currency (ISO4217 norm uses 3 letters to define the currency)") + + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public Money value(Float value) { + this.value = value; + return this; + } + + /** + * A positive floating point number + * @return value + **/ + @Schema(description = "A positive floating point number") + + + public Float getValue() { + return value; + } + + public void setValue(Float value) { + this.value = value; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Money money = (Money) o; + return Objects.equals(this.unit, money.unit) && + Objects.equals(this.value, money.value); + } + + @Override + public int hashCode() { + return Objects.hash(unit, value); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Money {\n"); + + sb.append(" unit: ").append(toIndentedString(unit)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccount.java b/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccount.java new file mode 100644 index 0000000..dae3eb7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccount.java @@ -0,0 +1,669 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * Account used for billing or for settlement purposes concerning a given party (an organization or an individual). It is a specialization of entity Account. + */ +@Schema(description = "Account used for billing or for settlement purposes concerning a given party (an organization or an individual). It is a specialization of entity Account.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class PartyAccount { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("accountType") + private String accountType = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("lastModified") + private OffsetDateTime lastModified = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("paymentStatus") + private String paymentStatus = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("accountBalance") + @Valid + private List accountBalance = null; + + @JsonProperty("accountRelationship") + @Valid + private List accountRelationship = null; + + @JsonProperty("billStructure") + private BillStructure billStructure = null; + + @JsonProperty("contact") + @Valid + private List contact = null; + + @JsonProperty("creditLimit") + private Money creditLimit = null; + + @JsonProperty("defaultPaymentMethod") + private PaymentMethodRef defaultPaymentMethod = null; + + @JsonProperty("financialAccount") + private FinancialAccountRef financialAccount = null; + + @JsonProperty("paymentPlan") + @Valid + private List paymentPlan = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = new ArrayList<>(); + + @JsonProperty("taxExemption") + @Valid + private List taxExemption = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public PartyAccount id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the account + * @return id + **/ + @Schema(description = "Unique identifier of the account") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public PartyAccount href(String href) { + this.href = href; + return this; + } + + /** + * Unique reference of the account + * @return href + **/ + @Schema(description = "Unique reference of the account") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public PartyAccount accountType(String accountType) { + this.accountType = accountType; + return this; + } + + /** + * A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values. + * @return accountType + **/ + @Schema(description = "A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values.") + + + public String getAccountType() { + return accountType; + } + + public void setAccountType(String accountType) { + this.accountType = accountType; + } + + public PartyAccount description(String description) { + this.description = description; + return this; + } + + /** + * Detailed description of the party account + * @return description + **/ + @Schema(description = "Detailed description of the party account") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public PartyAccount lastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + return this; + } + + /** + * Date of last modification of the account + * @return lastModified + **/ + @Schema(description = "Date of last modification of the account") + + @Valid + + public OffsetDateTime getLastModified() { + return lastModified; + } + + public void setLastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + } + + public PartyAccount name(String name) { + this.name = name; + return this; + } + + /** + * Name of the account + * @return name + **/ + @Schema(description = "Name of the account") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public PartyAccount paymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + return this; + } + + /** + * The condition of the account, such as due, paid, in arrears. + * @return paymentStatus + **/ + @Schema(description = "The condition of the account, such as due, paid, in arrears.") + + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public PartyAccount state(String state) { + this.state = state; + return this; + } + + /** + * Contains the lifecycle state such as: Active, Closed, Suspended and so on. + * @return state + **/ + @Schema(description = "Contains the lifecycle state such as: Active, Closed, Suspended and so on.") + + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public PartyAccount accountBalance(List accountBalance) { + this.accountBalance = accountBalance; + return this; + } + + public PartyAccount addAccountBalanceItem(AccountBalance accountBalanceItem) { + if (this.accountBalance == null) { + this.accountBalance = new ArrayList<>(); + } + this.accountBalance.add(accountBalanceItem); + return this; + } + + /** + * Get accountBalance + * @return accountBalance + **/ + @Schema(description = "") + + @Valid + + public List getAccountBalance() { + return accountBalance; + } + + public void setAccountBalance(List accountBalance) { + this.accountBalance = accountBalance; + } + + public PartyAccount accountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + return this; + } + + public PartyAccount addAccountRelationshipItem(AccountRelationship accountRelationshipItem) { + if (this.accountRelationship == null) { + this.accountRelationship = new ArrayList<>(); + } + this.accountRelationship.add(accountRelationshipItem); + return this; + } + + /** + * Get accountRelationship + * @return accountRelationship + **/ + @Schema(description = "") + + @Valid + + public List getAccountRelationship() { + return accountRelationship; + } + + public void setAccountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + } + + public PartyAccount billStructure(BillStructure billStructure) { + this.billStructure = billStructure; + return this; + } + + /** + * Get billStructure + * @return billStructure + **/ + @Schema(description = "") + + @Valid + + public BillStructure getBillStructure() { + return billStructure; + } + + public void setBillStructure(BillStructure billStructure) { + this.billStructure = billStructure; + } + + public PartyAccount contact(List contact) { + this.contact = contact; + return this; + } + + public PartyAccount addContactItem(Contact contactItem) { + if (this.contact == null) { + this.contact = new ArrayList<>(); + } + this.contact.add(contactItem); + return this; + } + + /** + * Get contact + * @return contact + **/ + @Schema(description = "") + + @Valid + + public List getContact() { + return contact; + } + + public void setContact(List contact) { + this.contact = contact; + } + + public PartyAccount creditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + return this; + } + + /** + * The maximum amount of money that may be charged on an account + * @return creditLimit + **/ + @Schema(description = "The maximum amount of money that may be charged on an account") + + @Valid + + public Money getCreditLimit() { + return creditLimit; + } + + public void setCreditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + } + + public PartyAccount defaultPaymentMethod(PaymentMethodRef defaultPaymentMethod) { + this.defaultPaymentMethod = defaultPaymentMethod; + return this; + } + + /** + * Get defaultPaymentMethod + * @return defaultPaymentMethod + **/ + @Schema(description = "") + + @Valid + + public PaymentMethodRef getDefaultPaymentMethod() { + return defaultPaymentMethod; + } + + public void setDefaultPaymentMethod(PaymentMethodRef defaultPaymentMethod) { + this.defaultPaymentMethod = defaultPaymentMethod; + } + + public PartyAccount financialAccount(FinancialAccountRef financialAccount) { + this.financialAccount = financialAccount; + return this; + } + + /** + * Get financialAccount + * @return financialAccount + **/ + @Schema(description = "") + + @Valid + + public FinancialAccountRef getFinancialAccount() { + return financialAccount; + } + + public void setFinancialAccount(FinancialAccountRef financialAccount) { + this.financialAccount = financialAccount; + } + + public PartyAccount paymentPlan(List paymentPlan) { + this.paymentPlan = paymentPlan; + return this; + } + + public PartyAccount addPaymentPlanItem(PaymentPlan paymentPlanItem) { + if (this.paymentPlan == null) { + this.paymentPlan = new ArrayList<>(); + } + this.paymentPlan.add(paymentPlanItem); + return this; + } + + /** + * Get paymentPlan + * @return paymentPlan + **/ + @Schema(description = "") + + @Valid + + public List getPaymentPlan() { + return paymentPlan; + } + + public void setPaymentPlan(List paymentPlan) { + this.paymentPlan = paymentPlan; + } + + public PartyAccount relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public PartyAccount addRelatedPartyItem(RelatedParty relatedPartyItem) { + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + @NotNull + + @Valid +@Size(min=1) + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public PartyAccount taxExemption(List taxExemption) { + this.taxExemption = taxExemption; + return this; + } + + public PartyAccount addTaxExemptionItem(AccountTaxExemption taxExemptionItem) { + if (this.taxExemption == null) { + this.taxExemption = new ArrayList<>(); + } + this.taxExemption.add(taxExemptionItem); + return this; + } + + /** + * Get taxExemption + * @return taxExemption + **/ + @Schema(description = "") + + @Valid + + public List getTaxExemption() { + return taxExemption; + } + + public void setTaxExemption(List taxExemption) { + this.taxExemption = taxExemption; + } + + public PartyAccount baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public PartyAccount schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public PartyAccount type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyAccount partyAccount = (PartyAccount) o; + return Objects.equals(this.id, partyAccount.id) && + Objects.equals(this.href, partyAccount.href) && + Objects.equals(this.accountType, partyAccount.accountType) && + Objects.equals(this.description, partyAccount.description) && + Objects.equals(this.lastModified, partyAccount.lastModified) && + Objects.equals(this.name, partyAccount.name) && + Objects.equals(this.paymentStatus, partyAccount.paymentStatus) && + Objects.equals(this.state, partyAccount.state) && + Objects.equals(this.accountBalance, partyAccount.accountBalance) && + Objects.equals(this.accountRelationship, partyAccount.accountRelationship) && + Objects.equals(this.billStructure, partyAccount.billStructure) && + Objects.equals(this.contact, partyAccount.contact) && + Objects.equals(this.creditLimit, partyAccount.creditLimit) && + Objects.equals(this.defaultPaymentMethod, partyAccount.defaultPaymentMethod) && + Objects.equals(this.financialAccount, partyAccount.financialAccount) && + Objects.equals(this.paymentPlan, partyAccount.paymentPlan) && + Objects.equals(this.relatedParty, partyAccount.relatedParty) && + Objects.equals(this.taxExemption, partyAccount.taxExemption) && + Objects.equals(this.baseType, partyAccount.baseType) && + Objects.equals(this.schemaLocation, partyAccount.schemaLocation) && + Objects.equals(this.type, partyAccount.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, accountType, description, lastModified, name, paymentStatus, state, accountBalance, accountRelationship, billStructure, contact, creditLimit, defaultPaymentMethod, financialAccount, paymentPlan, relatedParty, taxExemption, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyAccount {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" accountType: ").append(toIndentedString(accountType)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastModified: ").append(toIndentedString(lastModified)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" paymentStatus: ").append(toIndentedString(paymentStatus)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" accountBalance: ").append(toIndentedString(accountBalance)).append("\n"); + sb.append(" accountRelationship: ").append(toIndentedString(accountRelationship)).append("\n"); + sb.append(" billStructure: ").append(toIndentedString(billStructure)).append("\n"); + sb.append(" contact: ").append(toIndentedString(contact)).append("\n"); + sb.append(" creditLimit: ").append(toIndentedString(creditLimit)).append("\n"); + sb.append(" defaultPaymentMethod: ").append(toIndentedString(defaultPaymentMethod)).append("\n"); + sb.append(" financialAccount: ").append(toIndentedString(financialAccount)).append("\n"); + sb.append(" paymentPlan: ").append(toIndentedString(paymentPlan)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" taxExemption: ").append(toIndentedString(taxExemption)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountAttributeValueChangeEvent.java new file mode 100644 index 0000000..b75d398 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountAttributeValueChangeEvent.java @@ -0,0 +1,355 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class PartyAccountAttributeValueChangeEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("event") + private PartyAccountAttributeValueChangeEventPayload event = null; + + public PartyAccountAttributeValueChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public PartyAccountAttributeValueChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public PartyAccountAttributeValueChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public PartyAccountAttributeValueChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public PartyAccountAttributeValueChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public PartyAccountAttributeValueChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public PartyAccountAttributeValueChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory of the event. + * @return description + **/ + @Schema(description = "An explanatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public PartyAccountAttributeValueChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public PartyAccountAttributeValueChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public PartyAccountAttributeValueChangeEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public PartyAccountAttributeValueChangeEvent event(PartyAccountAttributeValueChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public PartyAccountAttributeValueChangeEventPayload getEvent() { + return event; + } + + public void setEvent(PartyAccountAttributeValueChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyAccountAttributeValueChangeEvent partyAccountAttributeValueChangeEvent = (PartyAccountAttributeValueChangeEvent) o; + return Objects.equals(this.eventId, partyAccountAttributeValueChangeEvent.eventId) && + Objects.equals(this.eventTime, partyAccountAttributeValueChangeEvent.eventTime) && + Objects.equals(this.eventType, partyAccountAttributeValueChangeEvent.eventType) && + Objects.equals(this.correlationId, partyAccountAttributeValueChangeEvent.correlationId) && + Objects.equals(this.domain, partyAccountAttributeValueChangeEvent.domain) && + Objects.equals(this.title, partyAccountAttributeValueChangeEvent.title) && + Objects.equals(this.description, partyAccountAttributeValueChangeEvent.description) && + Objects.equals(this.priority, partyAccountAttributeValueChangeEvent.priority) && + Objects.equals(this.timeOcurred, partyAccountAttributeValueChangeEvent.timeOcurred) && + Objects.equals(this.fieldPath, partyAccountAttributeValueChangeEvent.fieldPath) && + Objects.equals(this.event, partyAccountAttributeValueChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, fieldPath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyAccountAttributeValueChangeEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountAttributeValueChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountAttributeValueChangeEventPayload.java new file mode 100644 index 0000000..52fcf32 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountAttributeValueChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class PartyAccountAttributeValueChangeEventPayload { + @JsonProperty("partyAccount") + private PartyAccount partyAccount = null; + + public PartyAccountAttributeValueChangeEventPayload partyAccount(PartyAccount partyAccount) { + this.partyAccount = partyAccount; + return this; + } + + /** + * The involved resource data for the event + * @return partyAccount + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public PartyAccount getPartyAccount() { + return partyAccount; + } + + public void setPartyAccount(PartyAccount partyAccount) { + this.partyAccount = partyAccount; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyAccountAttributeValueChangeEventPayload partyAccountAttributeValueChangeEventPayload = (PartyAccountAttributeValueChangeEventPayload) o; + return Objects.equals(this.partyAccount, partyAccountAttributeValueChangeEventPayload.partyAccount); + } + + @Override + public int hashCode() { + return Objects.hash(partyAccount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyAccountAttributeValueChangeEventPayload {\n"); + + sb.append(" partyAccount: ").append(toIndentedString(partyAccount)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountCreate.java b/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountCreate.java new file mode 100644 index 0000000..0b992ce --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountCreate.java @@ -0,0 +1,619 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * Account used for billing or for settlement purposes concerning a given party (an organization or an individual). It is a specialization of entity Account. Skipped properties: id,href + */ +@Schema(description = "Account used for billing or for settlement purposes concerning a given party (an organization or an individual). It is a specialization of entity Account. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class PartyAccountCreate { + @JsonProperty("accountType") + private String accountType = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("lastModified") + private OffsetDateTime lastModified = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("paymentStatus") + private String paymentStatus = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("accountBalance") + @Valid + private List accountBalance = null; + + @JsonProperty("accountRelationship") + @Valid + private List accountRelationship = null; + + @JsonProperty("billStructure") + private BillStructure billStructure = null; + + @JsonProperty("contact") + @Valid + private List contact = null; + + @JsonProperty("creditLimit") + private Money creditLimit = null; + + @JsonProperty("defaultPaymentMethod") + private PaymentMethodRef defaultPaymentMethod = null; + + @JsonProperty("financialAccount") + private FinancialAccountRef financialAccount = null; + + @JsonProperty("paymentPlan") + @Valid + private List paymentPlan = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = new ArrayList<>(); + + @JsonProperty("taxExemption") + @Valid + private List taxExemption = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public PartyAccountCreate accountType(String accountType) { + this.accountType = accountType; + return this; + } + + /** + * A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values. + * @return accountType + **/ + @Schema(description = "A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values.") + + + public String getAccountType() { + return accountType; + } + + public void setAccountType(String accountType) { + this.accountType = accountType; + } + + public PartyAccountCreate description(String description) { + this.description = description; + return this; + } + + /** + * Detailed description of the party account + * @return description + **/ + @Schema(description = "Detailed description of the party account") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public PartyAccountCreate lastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + return this; + } + + /** + * Date of last modification of the account + * @return lastModified + **/ + @Schema(description = "Date of last modification of the account") + + @Valid + + public OffsetDateTime getLastModified() { + return lastModified; + } + + public void setLastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + } + + public PartyAccountCreate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the account + * @return name + **/ + @Schema(description = "Name of the account") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public PartyAccountCreate paymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + return this; + } + + /** + * The condition of the account, such as due, paid, in arrears. + * @return paymentStatus + **/ + @Schema(description = "The condition of the account, such as due, paid, in arrears.") + + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public PartyAccountCreate state(String state) { + this.state = state; + return this; + } + + /** + * Contains the lifecycle state such as: Active, Closed, Suspended and so on. + * @return state + **/ + @Schema(description = "Contains the lifecycle state such as: Active, Closed, Suspended and so on.") + + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public PartyAccountCreate accountBalance(List accountBalance) { + this.accountBalance = accountBalance; + return this; + } + + public PartyAccountCreate addAccountBalanceItem(AccountBalance accountBalanceItem) { + if (this.accountBalance == null) { + this.accountBalance = new ArrayList<>(); + } + this.accountBalance.add(accountBalanceItem); + return this; + } + + /** + * Get accountBalance + * @return accountBalance + **/ + @Schema(description = "") + + @Valid + + public List getAccountBalance() { + return accountBalance; + } + + public void setAccountBalance(List accountBalance) { + this.accountBalance = accountBalance; + } + + public PartyAccountCreate accountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + return this; + } + + public PartyAccountCreate addAccountRelationshipItem(AccountRelationship accountRelationshipItem) { + if (this.accountRelationship == null) { + this.accountRelationship = new ArrayList<>(); + } + this.accountRelationship.add(accountRelationshipItem); + return this; + } + + /** + * Get accountRelationship + * @return accountRelationship + **/ + @Schema(description = "") + + @Valid + + public List getAccountRelationship() { + return accountRelationship; + } + + public void setAccountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + } + + public PartyAccountCreate billStructure(BillStructure billStructure) { + this.billStructure = billStructure; + return this; + } + + /** + * Get billStructure + * @return billStructure + **/ + @Schema(description = "") + + @Valid + + public BillStructure getBillStructure() { + return billStructure; + } + + public void setBillStructure(BillStructure billStructure) { + this.billStructure = billStructure; + } + + public PartyAccountCreate contact(List contact) { + this.contact = contact; + return this; + } + + public PartyAccountCreate addContactItem(Contact contactItem) { + if (this.contact == null) { + this.contact = new ArrayList<>(); + } + this.contact.add(contactItem); + return this; + } + + /** + * Get contact + * @return contact + **/ + @Schema(description = "") + + @Valid + + public List getContact() { + return contact; + } + + public void setContact(List contact) { + this.contact = contact; + } + + public PartyAccountCreate creditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + return this; + } + + /** + * The maximum amount of money that may be charged on an account + * @return creditLimit + **/ + @Schema(description = "The maximum amount of money that may be charged on an account") + + @Valid + + public Money getCreditLimit() { + return creditLimit; + } + + public void setCreditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + } + + public PartyAccountCreate defaultPaymentMethod(PaymentMethodRef defaultPaymentMethod) { + this.defaultPaymentMethod = defaultPaymentMethod; + return this; + } + + /** + * Get defaultPaymentMethod + * @return defaultPaymentMethod + **/ + @Schema(description = "") + + @Valid + + public PaymentMethodRef getDefaultPaymentMethod() { + return defaultPaymentMethod; + } + + public void setDefaultPaymentMethod(PaymentMethodRef defaultPaymentMethod) { + this.defaultPaymentMethod = defaultPaymentMethod; + } + + public PartyAccountCreate financialAccount(FinancialAccountRef financialAccount) { + this.financialAccount = financialAccount; + return this; + } + + /** + * Get financialAccount + * @return financialAccount + **/ + @Schema(description = "") + + @Valid + + public FinancialAccountRef getFinancialAccount() { + return financialAccount; + } + + public void setFinancialAccount(FinancialAccountRef financialAccount) { + this.financialAccount = financialAccount; + } + + public PartyAccountCreate paymentPlan(List paymentPlan) { + this.paymentPlan = paymentPlan; + return this; + } + + public PartyAccountCreate addPaymentPlanItem(PaymentPlan paymentPlanItem) { + if (this.paymentPlan == null) { + this.paymentPlan = new ArrayList<>(); + } + this.paymentPlan.add(paymentPlanItem); + return this; + } + + /** + * Get paymentPlan + * @return paymentPlan + **/ + @Schema(description = "") + + @Valid + + public List getPaymentPlan() { + return paymentPlan; + } + + public void setPaymentPlan(List paymentPlan) { + this.paymentPlan = paymentPlan; + } + + public PartyAccountCreate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public PartyAccountCreate addRelatedPartyItem(RelatedParty relatedPartyItem) { + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + @NotNull + + @Valid +@Size(min=1) + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public PartyAccountCreate taxExemption(List taxExemption) { + this.taxExemption = taxExemption; + return this; + } + + public PartyAccountCreate addTaxExemptionItem(AccountTaxExemption taxExemptionItem) { + if (this.taxExemption == null) { + this.taxExemption = new ArrayList<>(); + } + this.taxExemption.add(taxExemptionItem); + return this; + } + + /** + * Get taxExemption + * @return taxExemption + **/ + @Schema(description = "") + + @Valid + + public List getTaxExemption() { + return taxExemption; + } + + public void setTaxExemption(List taxExemption) { + this.taxExemption = taxExemption; + } + + public PartyAccountCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public PartyAccountCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public PartyAccountCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyAccountCreate partyAccountCreate = (PartyAccountCreate) o; + return Objects.equals(this.accountType, partyAccountCreate.accountType) && + Objects.equals(this.description, partyAccountCreate.description) && + Objects.equals(this.lastModified, partyAccountCreate.lastModified) && + Objects.equals(this.name, partyAccountCreate.name) && + Objects.equals(this.paymentStatus, partyAccountCreate.paymentStatus) && + Objects.equals(this.state, partyAccountCreate.state) && + Objects.equals(this.accountBalance, partyAccountCreate.accountBalance) && + Objects.equals(this.accountRelationship, partyAccountCreate.accountRelationship) && + Objects.equals(this.billStructure, partyAccountCreate.billStructure) && + Objects.equals(this.contact, partyAccountCreate.contact) && + Objects.equals(this.creditLimit, partyAccountCreate.creditLimit) && + Objects.equals(this.defaultPaymentMethod, partyAccountCreate.defaultPaymentMethod) && + Objects.equals(this.financialAccount, partyAccountCreate.financialAccount) && + Objects.equals(this.paymentPlan, partyAccountCreate.paymentPlan) && + Objects.equals(this.relatedParty, partyAccountCreate.relatedParty) && + Objects.equals(this.taxExemption, partyAccountCreate.taxExemption) && + Objects.equals(this.baseType, partyAccountCreate.baseType) && + Objects.equals(this.schemaLocation, partyAccountCreate.schemaLocation) && + Objects.equals(this.type, partyAccountCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(accountType, description, lastModified, name, paymentStatus, state, accountBalance, accountRelationship, billStructure, contact, creditLimit, defaultPaymentMethod, financialAccount, paymentPlan, relatedParty, taxExemption, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyAccountCreate {\n"); + + sb.append(" accountType: ").append(toIndentedString(accountType)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastModified: ").append(toIndentedString(lastModified)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" paymentStatus: ").append(toIndentedString(paymentStatus)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" accountBalance: ").append(toIndentedString(accountBalance)).append("\n"); + sb.append(" accountRelationship: ").append(toIndentedString(accountRelationship)).append("\n"); + sb.append(" billStructure: ").append(toIndentedString(billStructure)).append("\n"); + sb.append(" contact: ").append(toIndentedString(contact)).append("\n"); + sb.append(" creditLimit: ").append(toIndentedString(creditLimit)).append("\n"); + sb.append(" defaultPaymentMethod: ").append(toIndentedString(defaultPaymentMethod)).append("\n"); + sb.append(" financialAccount: ").append(toIndentedString(financialAccount)).append("\n"); + sb.append(" paymentPlan: ").append(toIndentedString(paymentPlan)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" taxExemption: ").append(toIndentedString(taxExemption)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountStateChangeEvent.java new file mode 100644 index 0000000..c0025e7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountStateChangeEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class PartyAccountStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private PartyAccountStateChangeEventPayload event = null; + + public PartyAccountStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the resource involved in the event + * @return id + **/ + @Schema(description = "Identifier of the resource involved in the event") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public PartyAccountStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the resource involved in the event + * @return href + **/ + @Schema(description = "Reference of the resource involved in the event") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public PartyAccountStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public PartyAccountStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public PartyAccountStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public PartyAccountStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public PartyAccountStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public PartyAccountStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public PartyAccountStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory of the event. + * @return description + **/ + @Schema(description = "An explanatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public PartyAccountStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public PartyAccountStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public PartyAccountStateChangeEvent event(PartyAccountStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public PartyAccountStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(PartyAccountStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyAccountStateChangeEvent partyAccountStateChangeEvent = (PartyAccountStateChangeEvent) o; + return Objects.equals(this.id, partyAccountStateChangeEvent.id) && + Objects.equals(this.href, partyAccountStateChangeEvent.href) && + Objects.equals(this.eventId, partyAccountStateChangeEvent.eventId) && + Objects.equals(this.eventTime, partyAccountStateChangeEvent.eventTime) && + Objects.equals(this.eventType, partyAccountStateChangeEvent.eventType) && + Objects.equals(this.correlationId, partyAccountStateChangeEvent.correlationId) && + Objects.equals(this.domain, partyAccountStateChangeEvent.domain) && + Objects.equals(this.title, partyAccountStateChangeEvent.title) && + Objects.equals(this.description, partyAccountStateChangeEvent.description) && + Objects.equals(this.priority, partyAccountStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, partyAccountStateChangeEvent.timeOcurred) && + Objects.equals(this.event, partyAccountStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyAccountStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountStateChangeEventPayload.java new file mode 100644 index 0000000..1d34d50 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountStateChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class PartyAccountStateChangeEventPayload { + @JsonProperty("partyAccount") + private PartyAccount partyAccount = null; + + public PartyAccountStateChangeEventPayload partyAccount(PartyAccount partyAccount) { + this.partyAccount = partyAccount; + return this; + } + + /** + * The involved resource data for the event + * @return partyAccount + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public PartyAccount getPartyAccount() { + return partyAccount; + } + + public void setPartyAccount(PartyAccount partyAccount) { + this.partyAccount = partyAccount; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyAccountStateChangeEventPayload partyAccountStateChangeEventPayload = (PartyAccountStateChangeEventPayload) o; + return Objects.equals(this.partyAccount, partyAccountStateChangeEventPayload.partyAccount); + } + + @Override + public int hashCode() { + return Objects.hash(partyAccount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyAccountStateChangeEventPayload {\n"); + + sb.append(" partyAccount: ").append(toIndentedString(partyAccount)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountUpdate.java b/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountUpdate.java new file mode 100644 index 0000000..46eac03 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/PartyAccountUpdate.java @@ -0,0 +1,584 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * Account used for billing or for settlement purposes concerning a given party (an organization or an individual). It is a specialization of entity Account. Skipped properties: id,href,accountBalance + */ +@Schema(description = "Account used for billing or for settlement purposes concerning a given party (an organization or an individual). It is a specialization of entity Account. Skipped properties: id,href,accountBalance") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class PartyAccountUpdate { + @JsonProperty("accountType") + private String accountType = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("lastModified") + private OffsetDateTime lastModified = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("paymentStatus") + private String paymentStatus = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("accountRelationship") + @Valid + private List accountRelationship = null; + + @JsonProperty("billStructure") + private BillStructure billStructure = null; + + @JsonProperty("contact") + @Valid + private List contact = null; + + @JsonProperty("creditLimit") + private Money creditLimit = null; + + @JsonProperty("defaultPaymentMethod") + private PaymentMethodRef defaultPaymentMethod = null; + + @JsonProperty("financialAccount") + private FinancialAccountRef financialAccount = null; + + @JsonProperty("paymentPlan") + @Valid + private List paymentPlan = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = new ArrayList<>(); + + @JsonProperty("taxExemption") + @Valid + private List taxExemption = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public PartyAccountUpdate accountType(String accountType) { + this.accountType = accountType; + return this; + } + + /** + * A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values. + * @return accountType + **/ + @Schema(description = "A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values.") + + + public String getAccountType() { + return accountType; + } + + public void setAccountType(String accountType) { + this.accountType = accountType; + } + + public PartyAccountUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Detailed description of the party account + * @return description + **/ + @Schema(description = "Detailed description of the party account") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public PartyAccountUpdate lastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + return this; + } + + /** + * Date of last modification of the account + * @return lastModified + **/ + @Schema(description = "Date of last modification of the account") + + @Valid + + public OffsetDateTime getLastModified() { + return lastModified; + } + + public void setLastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + } + + public PartyAccountUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the account + * @return name + **/ + @Schema(description = "Name of the account") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public PartyAccountUpdate paymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + return this; + } + + /** + * The condition of the account, such as due, paid, in arrears. + * @return paymentStatus + **/ + @Schema(description = "The condition of the account, such as due, paid, in arrears.") + + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public PartyAccountUpdate state(String state) { + this.state = state; + return this; + } + + /** + * Contains the lifecycle state such as: Active, Closed, Suspended and so on. + * @return state + **/ + @Schema(description = "Contains the lifecycle state such as: Active, Closed, Suspended and so on.") + + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public PartyAccountUpdate accountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + return this; + } + + public PartyAccountUpdate addAccountRelationshipItem(AccountRelationship accountRelationshipItem) { + if (this.accountRelationship == null) { + this.accountRelationship = new ArrayList<>(); + } + this.accountRelationship.add(accountRelationshipItem); + return this; + } + + /** + * Get accountRelationship + * @return accountRelationship + **/ + @Schema(description = "") + + @Valid + + public List getAccountRelationship() { + return accountRelationship; + } + + public void setAccountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + } + + public PartyAccountUpdate billStructure(BillStructure billStructure) { + this.billStructure = billStructure; + return this; + } + + /** + * Get billStructure + * @return billStructure + **/ + @Schema(description = "") + + @Valid + + public BillStructure getBillStructure() { + return billStructure; + } + + public void setBillStructure(BillStructure billStructure) { + this.billStructure = billStructure; + } + + public PartyAccountUpdate contact(List contact) { + this.contact = contact; + return this; + } + + public PartyAccountUpdate addContactItem(Contact contactItem) { + if (this.contact == null) { + this.contact = new ArrayList<>(); + } + this.contact.add(contactItem); + return this; + } + + /** + * Get contact + * @return contact + **/ + @Schema(description = "") + + @Valid + + public List getContact() { + return contact; + } + + public void setContact(List contact) { + this.contact = contact; + } + + public PartyAccountUpdate creditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + return this; + } + + /** + * The maximum amount of money that may be charged on an account + * @return creditLimit + **/ + @Schema(description = "The maximum amount of money that may be charged on an account") + + @Valid + + public Money getCreditLimit() { + return creditLimit; + } + + public void setCreditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + } + + public PartyAccountUpdate defaultPaymentMethod(PaymentMethodRef defaultPaymentMethod) { + this.defaultPaymentMethod = defaultPaymentMethod; + return this; + } + + /** + * Get defaultPaymentMethod + * @return defaultPaymentMethod + **/ + @Schema(description = "") + + @Valid + + public PaymentMethodRef getDefaultPaymentMethod() { + return defaultPaymentMethod; + } + + public void setDefaultPaymentMethod(PaymentMethodRef defaultPaymentMethod) { + this.defaultPaymentMethod = defaultPaymentMethod; + } + + public PartyAccountUpdate financialAccount(FinancialAccountRef financialAccount) { + this.financialAccount = financialAccount; + return this; + } + + /** + * Get financialAccount + * @return financialAccount + **/ + @Schema(description = "") + + @Valid + + public FinancialAccountRef getFinancialAccount() { + return financialAccount; + } + + public void setFinancialAccount(FinancialAccountRef financialAccount) { + this.financialAccount = financialAccount; + } + + public PartyAccountUpdate paymentPlan(List paymentPlan) { + this.paymentPlan = paymentPlan; + return this; + } + + public PartyAccountUpdate addPaymentPlanItem(PaymentPlan paymentPlanItem) { + if (this.paymentPlan == null) { + this.paymentPlan = new ArrayList<>(); + } + this.paymentPlan.add(paymentPlanItem); + return this; + } + + /** + * Get paymentPlan + * @return paymentPlan + **/ + @Schema(description = "") + + @Valid + + public List getPaymentPlan() { + return paymentPlan; + } + + public void setPaymentPlan(List paymentPlan) { + this.paymentPlan = paymentPlan; + } + + public PartyAccountUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public PartyAccountUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + @NotNull + + @Valid +@Size(min=1) + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public PartyAccountUpdate taxExemption(List taxExemption) { + this.taxExemption = taxExemption; + return this; + } + + public PartyAccountUpdate addTaxExemptionItem(AccountTaxExemption taxExemptionItem) { + if (this.taxExemption == null) { + this.taxExemption = new ArrayList<>(); + } + this.taxExemption.add(taxExemptionItem); + return this; + } + + /** + * Get taxExemption + * @return taxExemption + **/ + @Schema(description = "") + + @Valid + + public List getTaxExemption() { + return taxExemption; + } + + public void setTaxExemption(List taxExemption) { + this.taxExemption = taxExemption; + } + + public PartyAccountUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public PartyAccountUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public PartyAccountUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyAccountUpdate partyAccountUpdate = (PartyAccountUpdate) o; + return Objects.equals(this.accountType, partyAccountUpdate.accountType) && + Objects.equals(this.description, partyAccountUpdate.description) && + Objects.equals(this.lastModified, partyAccountUpdate.lastModified) && + Objects.equals(this.name, partyAccountUpdate.name) && + Objects.equals(this.paymentStatus, partyAccountUpdate.paymentStatus) && + Objects.equals(this.state, partyAccountUpdate.state) && + Objects.equals(this.accountRelationship, partyAccountUpdate.accountRelationship) && + Objects.equals(this.billStructure, partyAccountUpdate.billStructure) && + Objects.equals(this.contact, partyAccountUpdate.contact) && + Objects.equals(this.creditLimit, partyAccountUpdate.creditLimit) && + Objects.equals(this.defaultPaymentMethod, partyAccountUpdate.defaultPaymentMethod) && + Objects.equals(this.financialAccount, partyAccountUpdate.financialAccount) && + Objects.equals(this.paymentPlan, partyAccountUpdate.paymentPlan) && + Objects.equals(this.relatedParty, partyAccountUpdate.relatedParty) && + Objects.equals(this.taxExemption, partyAccountUpdate.taxExemption) && + Objects.equals(this.baseType, partyAccountUpdate.baseType) && + Objects.equals(this.schemaLocation, partyAccountUpdate.schemaLocation) && + Objects.equals(this.type, partyAccountUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(accountType, description, lastModified, name, paymentStatus, state, accountRelationship, billStructure, contact, creditLimit, defaultPaymentMethod, financialAccount, paymentPlan, relatedParty, taxExemption, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyAccountUpdate {\n"); + + sb.append(" accountType: ").append(toIndentedString(accountType)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastModified: ").append(toIndentedString(lastModified)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" paymentStatus: ").append(toIndentedString(paymentStatus)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" accountRelationship: ").append(toIndentedString(accountRelationship)).append("\n"); + sb.append(" billStructure: ").append(toIndentedString(billStructure)).append("\n"); + sb.append(" contact: ").append(toIndentedString(contact)).append("\n"); + sb.append(" creditLimit: ").append(toIndentedString(creditLimit)).append("\n"); + sb.append(" defaultPaymentMethod: ").append(toIndentedString(defaultPaymentMethod)).append("\n"); + sb.append(" financialAccount: ").append(toIndentedString(financialAccount)).append("\n"); + sb.append(" paymentPlan: ").append(toIndentedString(paymentPlan)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" taxExemption: ").append(toIndentedString(taxExemption)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/PaymentMethodRef.java b/src/main/java/org/etsi/osl/tmf/am666/model/PaymentMethodRef.java new file mode 100644 index 0000000..34b8e2a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/PaymentMethodRef.java @@ -0,0 +1,137 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * PaymentMethod reference. A payment method defines a specific mean of payment (e.g direct debit). + */ +@Schema(description = "PaymentMethod reference. A payment method defines a specific mean of payment (e.g direct debit).") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +@Entity(name = "PaymentMethodRef") +public class PaymentMethodRef extends BaseRootNamedEntity{ + @JsonProperty("id") + private String id = null; + + + @JsonProperty("@referredType") + private String referredType = null; + + public PaymentMethodRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the payment mean + * @return id + **/ + @Schema(description = "Unique identifier of the payment mean") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + + + public PaymentMethodRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PaymentMethodRef paymentMethodRef = (PaymentMethodRef) o; + return Objects.equals(this.id, paymentMethodRef.id) && + Objects.equals(this.href, paymentMethodRef.href) && + Objects.equals(this.name, paymentMethodRef.name) && + Objects.equals(this.baseType, paymentMethodRef.baseType) && + Objects.equals(this.schemaLocation, paymentMethodRef.schemaLocation) && + Objects.equals(this.type, paymentMethodRef.type) && + Objects.equals(this.referredType, paymentMethodRef.referredType); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PaymentMethodRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/PaymentPlan.java b/src/main/java/org/etsi/osl/tmf/am666/model/PaymentPlan.java new file mode 100644 index 0000000..08c5582 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/PaymentPlan.java @@ -0,0 +1,353 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Defines a plan for payment (when a party wants to spread his payments) + */ +@Schema(description = "Defines a plan for payment (when a party wants to spread his payments)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class PaymentPlan { + @JsonProperty("numberOfPayments") + private Integer numberOfPayments = null; + + @JsonProperty("paymentFrequency") + private String paymentFrequency = null; + + @JsonProperty("planType") + private String planType = null; + + @JsonProperty("priority") + private Integer priority = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("paymentMethod") + private PaymentMethodRef paymentMethod = null; + + @JsonProperty("totalAmount") + private Money totalAmount = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public PaymentPlan numberOfPayments(Integer numberOfPayments) { + this.numberOfPayments = numberOfPayments; + return this; + } + + /** + * Number of payments used to spread the global payment + * @return numberOfPayments + **/ + @Schema(description = "Number of payments used to spread the global payment") + + + public Integer getNumberOfPayments() { + return numberOfPayments; + } + + public void setNumberOfPayments(Integer numberOfPayments) { + this.numberOfPayments = numberOfPayments; + } + + public PaymentPlan paymentFrequency(String paymentFrequency) { + this.paymentFrequency = paymentFrequency; + return this; + } + + /** + * Frequency of the payments, such as monthly and bimonthly + * @return paymentFrequency + **/ + @Schema(description = "Frequency of the payments, such as monthly and bimonthly") + + + public String getPaymentFrequency() { + return paymentFrequency; + } + + public void setPaymentFrequency(String paymentFrequency) { + this.paymentFrequency = paymentFrequency; + } + + public PaymentPlan planType(String planType) { + this.planType = planType; + return this; + } + + /** + * Type of payment plan + * @return planType + **/ + @Schema(description = "Type of payment plan") + + + public String getPlanType() { + return planType; + } + + public void setPlanType(String planType) { + this.planType = planType; + } + + public PaymentPlan priority(Integer priority) { + this.priority = priority; + return this; + } + + /** + * Priority of the payment plan + * @return priority + **/ + @Schema(description = "Priority of the payment plan") + + + public Integer getPriority() { + return priority; + } + + public void setPriority(Integer priority) { + this.priority = priority; + } + + public PaymentPlan status(String status) { + this.status = status; + return this; + } + + /** + * Status of the payment plan (effective, ineffective) + * @return status + **/ + @Schema(description = "Status of the payment plan (effective, ineffective)") + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public PaymentPlan paymentMethod(PaymentMethodRef paymentMethod) { + this.paymentMethod = paymentMethod; + return this; + } + + /** + * Get paymentMethod + * @return paymentMethod + **/ + @Schema(description = "") + + @Valid + + public PaymentMethodRef getPaymentMethod() { + return paymentMethod; + } + + public void setPaymentMethod(PaymentMethodRef paymentMethod) { + this.paymentMethod = paymentMethod; + } + + public PaymentPlan totalAmount(Money totalAmount) { + this.totalAmount = totalAmount; + return this; + } + + /** + * Amount paid + * @return totalAmount + **/ + @Schema(description = "Amount paid") + + @Valid + + public Money getTotalAmount() { + return totalAmount; + } + + public void setTotalAmount(Money totalAmount) { + this.totalAmount = totalAmount; + } + + public PaymentPlan validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Validity period of the payment plan + * @return validFor + **/ + @Schema(description = "Validity period of the payment plan") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public PaymentPlan baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public PaymentPlan schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public PaymentPlan type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PaymentPlan paymentPlan = (PaymentPlan) o; + return Objects.equals(this.numberOfPayments, paymentPlan.numberOfPayments) && + Objects.equals(this.paymentFrequency, paymentPlan.paymentFrequency) && + Objects.equals(this.planType, paymentPlan.planType) && + Objects.equals(this.priority, paymentPlan.priority) && + Objects.equals(this.status, paymentPlan.status) && + Objects.equals(this.paymentMethod, paymentPlan.paymentMethod) && + Objects.equals(this.totalAmount, paymentPlan.totalAmount) && + Objects.equals(this.validFor, paymentPlan.validFor) && + Objects.equals(this.baseType, paymentPlan.baseType) && + Objects.equals(this.schemaLocation, paymentPlan.schemaLocation) && + Objects.equals(this.type, paymentPlan.type); + } + + @Override + public int hashCode() { + return Objects.hash(numberOfPayments, paymentFrequency, planType, priority, status, paymentMethod, totalAmount, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PaymentPlan {\n"); + + sb.append(" numberOfPayments: ").append(toIndentedString(numberOfPayments)).append("\n"); + sb.append(" paymentFrequency: ").append(toIndentedString(paymentFrequency)).append("\n"); + sb.append(" planType: ").append(toIndentedString(planType)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" paymentMethod: ").append(toIndentedString(paymentMethod)).append("\n"); + sb.append(" totalAmount: ").append(toIndentedString(totalAmount)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccount.java b/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccount.java new file mode 100644 index 0000000..e01cc25 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccount.java @@ -0,0 +1,669 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * A party account used for settlement purposes. It includes a description of the bill structure (frequency, presentation media, format and so on). It is a specialization of entity PartyAccount. + */ +@Schema(description = "A party account used for settlement purposes. It includes a description of the bill structure (frequency, presentation media, format and so on). It is a specialization of entity PartyAccount.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class SettlementAccount { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("accountType") + private String accountType = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("lastModified") + private OffsetDateTime lastModified = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("paymentStatus") + private String paymentStatus = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("accountBalance") + @Valid + private List accountBalance = null; + + @JsonProperty("accountRelationship") + @Valid + private List accountRelationship = null; + + @JsonProperty("billStructure") + private BillStructure billStructure = null; + + @JsonProperty("contact") + @Valid + private List contact = null; + + @JsonProperty("creditLimit") + private Money creditLimit = null; + + @JsonProperty("defaultPaymentMethod") + private PaymentMethodRef defaultPaymentMethod = null; + + @JsonProperty("financialAccount") + private FinancialAccountRef financialAccount = null; + + @JsonProperty("paymentPlan") + @Valid + private List paymentPlan = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = new ArrayList<>(); + + @JsonProperty("taxExemption") + @Valid + private List taxExemption = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public SettlementAccount id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the account + * @return id + **/ + @Schema(description = "Unique identifier of the account") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public SettlementAccount href(String href) { + this.href = href; + return this; + } + + /** + * Unique reference of the account + * @return href + **/ + @Schema(description = "Unique reference of the account") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public SettlementAccount accountType(String accountType) { + this.accountType = accountType; + return this; + } + + /** + * A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values. + * @return accountType + **/ + @Schema(description = "A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values.") + + + public String getAccountType() { + return accountType; + } + + public void setAccountType(String accountType) { + this.accountType = accountType; + } + + public SettlementAccount description(String description) { + this.description = description; + return this; + } + + /** + * Detailed description of the party account + * @return description + **/ + @Schema(description = "Detailed description of the party account") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public SettlementAccount lastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + return this; + } + + /** + * Date of last modification of the account + * @return lastModified + **/ + @Schema(description = "Date of last modification of the account") + + @Valid + + public OffsetDateTime getLastModified() { + return lastModified; + } + + public void setLastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + } + + public SettlementAccount name(String name) { + this.name = name; + return this; + } + + /** + * Name of the account + * @return name + **/ + @Schema(description = "Name of the account") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public SettlementAccount paymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + return this; + } + + /** + * The condition of the account, such as due, paid, in arrears. + * @return paymentStatus + **/ + @Schema(description = "The condition of the account, such as due, paid, in arrears.") + + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public SettlementAccount state(String state) { + this.state = state; + return this; + } + + /** + * Contains the lifecycle state such as: Active, Closed, Suspended and so on. + * @return state + **/ + @Schema(description = "Contains the lifecycle state such as: Active, Closed, Suspended and so on.") + + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public SettlementAccount accountBalance(List accountBalance) { + this.accountBalance = accountBalance; + return this; + } + + public SettlementAccount addAccountBalanceItem(AccountBalance accountBalanceItem) { + if (this.accountBalance == null) { + this.accountBalance = new ArrayList<>(); + } + this.accountBalance.add(accountBalanceItem); + return this; + } + + /** + * Get accountBalance + * @return accountBalance + **/ + @Schema(description = "") + + @Valid + + public List getAccountBalance() { + return accountBalance; + } + + public void setAccountBalance(List accountBalance) { + this.accountBalance = accountBalance; + } + + public SettlementAccount accountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + return this; + } + + public SettlementAccount addAccountRelationshipItem(AccountRelationship accountRelationshipItem) { + if (this.accountRelationship == null) { + this.accountRelationship = new ArrayList<>(); + } + this.accountRelationship.add(accountRelationshipItem); + return this; + } + + /** + * Get accountRelationship + * @return accountRelationship + **/ + @Schema(description = "") + + @Valid + + public List getAccountRelationship() { + return accountRelationship; + } + + public void setAccountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + } + + public SettlementAccount billStructure(BillStructure billStructure) { + this.billStructure = billStructure; + return this; + } + + /** + * Get billStructure + * @return billStructure + **/ + @Schema(description = "") + + @Valid + + public BillStructure getBillStructure() { + return billStructure; + } + + public void setBillStructure(BillStructure billStructure) { + this.billStructure = billStructure; + } + + public SettlementAccount contact(List contact) { + this.contact = contact; + return this; + } + + public SettlementAccount addContactItem(Contact contactItem) { + if (this.contact == null) { + this.contact = new ArrayList<>(); + } + this.contact.add(contactItem); + return this; + } + + /** + * Get contact + * @return contact + **/ + @Schema(description = "") + + @Valid + + public List getContact() { + return contact; + } + + public void setContact(List contact) { + this.contact = contact; + } + + public SettlementAccount creditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + return this; + } + + /** + * The maximum amount of money that may be charged on an account + * @return creditLimit + **/ + @Schema(description = "The maximum amount of money that may be charged on an account") + + @Valid + + public Money getCreditLimit() { + return creditLimit; + } + + public void setCreditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + } + + public SettlementAccount defaultPaymentMethod(PaymentMethodRef defaultPaymentMethod) { + this.defaultPaymentMethod = defaultPaymentMethod; + return this; + } + + /** + * Get defaultPaymentMethod + * @return defaultPaymentMethod + **/ + @Schema(description = "") + + @Valid + + public PaymentMethodRef getDefaultPaymentMethod() { + return defaultPaymentMethod; + } + + public void setDefaultPaymentMethod(PaymentMethodRef defaultPaymentMethod) { + this.defaultPaymentMethod = defaultPaymentMethod; + } + + public SettlementAccount financialAccount(FinancialAccountRef financialAccount) { + this.financialAccount = financialAccount; + return this; + } + + /** + * Get financialAccount + * @return financialAccount + **/ + @Schema(description = "") + + @Valid + + public FinancialAccountRef getFinancialAccount() { + return financialAccount; + } + + public void setFinancialAccount(FinancialAccountRef financialAccount) { + this.financialAccount = financialAccount; + } + + public SettlementAccount paymentPlan(List paymentPlan) { + this.paymentPlan = paymentPlan; + return this; + } + + public SettlementAccount addPaymentPlanItem(PaymentPlan paymentPlanItem) { + if (this.paymentPlan == null) { + this.paymentPlan = new ArrayList<>(); + } + this.paymentPlan.add(paymentPlanItem); + return this; + } + + /** + * Get paymentPlan + * @return paymentPlan + **/ + @Schema(description = "") + + @Valid + + public List getPaymentPlan() { + return paymentPlan; + } + + public void setPaymentPlan(List paymentPlan) { + this.paymentPlan = paymentPlan; + } + + public SettlementAccount relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public SettlementAccount addRelatedPartyItem(RelatedParty relatedPartyItem) { + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + @NotNull + + @Valid +@Size(min=1) + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public SettlementAccount taxExemption(List taxExemption) { + this.taxExemption = taxExemption; + return this; + } + + public SettlementAccount addTaxExemptionItem(AccountTaxExemption taxExemptionItem) { + if (this.taxExemption == null) { + this.taxExemption = new ArrayList<>(); + } + this.taxExemption.add(taxExemptionItem); + return this; + } + + /** + * Get taxExemption + * @return taxExemption + **/ + @Schema(description = "") + + @Valid + + public List getTaxExemption() { + return taxExemption; + } + + public void setTaxExemption(List taxExemption) { + this.taxExemption = taxExemption; + } + + public SettlementAccount baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public SettlementAccount schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public SettlementAccount type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SettlementAccount settlementAccount = (SettlementAccount) o; + return Objects.equals(this.id, settlementAccount.id) && + Objects.equals(this.href, settlementAccount.href) && + Objects.equals(this.accountType, settlementAccount.accountType) && + Objects.equals(this.description, settlementAccount.description) && + Objects.equals(this.lastModified, settlementAccount.lastModified) && + Objects.equals(this.name, settlementAccount.name) && + Objects.equals(this.paymentStatus, settlementAccount.paymentStatus) && + Objects.equals(this.state, settlementAccount.state) && + Objects.equals(this.accountBalance, settlementAccount.accountBalance) && + Objects.equals(this.accountRelationship, settlementAccount.accountRelationship) && + Objects.equals(this.billStructure, settlementAccount.billStructure) && + Objects.equals(this.contact, settlementAccount.contact) && + Objects.equals(this.creditLimit, settlementAccount.creditLimit) && + Objects.equals(this.defaultPaymentMethod, settlementAccount.defaultPaymentMethod) && + Objects.equals(this.financialAccount, settlementAccount.financialAccount) && + Objects.equals(this.paymentPlan, settlementAccount.paymentPlan) && + Objects.equals(this.relatedParty, settlementAccount.relatedParty) && + Objects.equals(this.taxExemption, settlementAccount.taxExemption) && + Objects.equals(this.baseType, settlementAccount.baseType) && + Objects.equals(this.schemaLocation, settlementAccount.schemaLocation) && + Objects.equals(this.type, settlementAccount.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, accountType, description, lastModified, name, paymentStatus, state, accountBalance, accountRelationship, billStructure, contact, creditLimit, defaultPaymentMethod, financialAccount, paymentPlan, relatedParty, taxExemption, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SettlementAccount {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" accountType: ").append(toIndentedString(accountType)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastModified: ").append(toIndentedString(lastModified)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" paymentStatus: ").append(toIndentedString(paymentStatus)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" accountBalance: ").append(toIndentedString(accountBalance)).append("\n"); + sb.append(" accountRelationship: ").append(toIndentedString(accountRelationship)).append("\n"); + sb.append(" billStructure: ").append(toIndentedString(billStructure)).append("\n"); + sb.append(" contact: ").append(toIndentedString(contact)).append("\n"); + sb.append(" creditLimit: ").append(toIndentedString(creditLimit)).append("\n"); + sb.append(" defaultPaymentMethod: ").append(toIndentedString(defaultPaymentMethod)).append("\n"); + sb.append(" financialAccount: ").append(toIndentedString(financialAccount)).append("\n"); + sb.append(" paymentPlan: ").append(toIndentedString(paymentPlan)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" taxExemption: ").append(toIndentedString(taxExemption)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountAttributeValueChangeEvent.java new file mode 100644 index 0000000..7c8eaad --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountAttributeValueChangeEvent.java @@ -0,0 +1,355 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class SettlementAccountAttributeValueChangeEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("event") + private SettlementAccountAttributeValueChangeEventPayload event = null; + + public SettlementAccountAttributeValueChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public SettlementAccountAttributeValueChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public SettlementAccountAttributeValueChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public SettlementAccountAttributeValueChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public SettlementAccountAttributeValueChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public SettlementAccountAttributeValueChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public SettlementAccountAttributeValueChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory of the event. + * @return description + **/ + @Schema(description = "An explanatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public SettlementAccountAttributeValueChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public SettlementAccountAttributeValueChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public SettlementAccountAttributeValueChangeEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public SettlementAccountAttributeValueChangeEvent event(SettlementAccountAttributeValueChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public SettlementAccountAttributeValueChangeEventPayload getEvent() { + return event; + } + + public void setEvent(SettlementAccountAttributeValueChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SettlementAccountAttributeValueChangeEvent settlementAccountAttributeValueChangeEvent = (SettlementAccountAttributeValueChangeEvent) o; + return Objects.equals(this.eventId, settlementAccountAttributeValueChangeEvent.eventId) && + Objects.equals(this.eventTime, settlementAccountAttributeValueChangeEvent.eventTime) && + Objects.equals(this.eventType, settlementAccountAttributeValueChangeEvent.eventType) && + Objects.equals(this.correlationId, settlementAccountAttributeValueChangeEvent.correlationId) && + Objects.equals(this.domain, settlementAccountAttributeValueChangeEvent.domain) && + Objects.equals(this.title, settlementAccountAttributeValueChangeEvent.title) && + Objects.equals(this.description, settlementAccountAttributeValueChangeEvent.description) && + Objects.equals(this.priority, settlementAccountAttributeValueChangeEvent.priority) && + Objects.equals(this.timeOcurred, settlementAccountAttributeValueChangeEvent.timeOcurred) && + Objects.equals(this.fieldPath, settlementAccountAttributeValueChangeEvent.fieldPath) && + Objects.equals(this.event, settlementAccountAttributeValueChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, fieldPath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SettlementAccountAttributeValueChangeEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountAttributeValueChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountAttributeValueChangeEventPayload.java new file mode 100644 index 0000000..23747ca --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountAttributeValueChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class SettlementAccountAttributeValueChangeEventPayload { + @JsonProperty("settlementAccount") + private SettlementAccount settlementAccount = null; + + public SettlementAccountAttributeValueChangeEventPayload settlementAccount(SettlementAccount settlementAccount) { + this.settlementAccount = settlementAccount; + return this; + } + + /** + * The involved resource data for the event + * @return settlementAccount + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public SettlementAccount getSettlementAccount() { + return settlementAccount; + } + + public void setSettlementAccount(SettlementAccount settlementAccount) { + this.settlementAccount = settlementAccount; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SettlementAccountAttributeValueChangeEventPayload settlementAccountAttributeValueChangeEventPayload = (SettlementAccountAttributeValueChangeEventPayload) o; + return Objects.equals(this.settlementAccount, settlementAccountAttributeValueChangeEventPayload.settlementAccount); + } + + @Override + public int hashCode() { + return Objects.hash(settlementAccount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SettlementAccountAttributeValueChangeEventPayload {\n"); + + sb.append(" settlementAccount: ").append(toIndentedString(settlementAccount)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountCreate.java b/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountCreate.java new file mode 100644 index 0000000..4e41831 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountCreate.java @@ -0,0 +1,619 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * A party account used for settlement purposes. It includes a description of the bill structure (frequency, presentation media, format and so on). It is a specialization of entity PartyAccount. Skipped properties: id,href + */ +@Schema(description = "A party account used for settlement purposes. It includes a description of the bill structure (frequency, presentation media, format and so on). It is a specialization of entity PartyAccount. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class SettlementAccountCreate { + @JsonProperty("accountType") + private String accountType = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("lastModified") + private OffsetDateTime lastModified = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("paymentStatus") + private String paymentStatus = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("accountBalance") + @Valid + private List accountBalance = null; + + @JsonProperty("accountRelationship") + @Valid + private List accountRelationship = null; + + @JsonProperty("billStructure") + private BillStructure billStructure = null; + + @JsonProperty("contact") + @Valid + private List contact = null; + + @JsonProperty("creditLimit") + private Money creditLimit = null; + + @JsonProperty("defaultPaymentMethod") + private PaymentMethodRef defaultPaymentMethod = null; + + @JsonProperty("financialAccount") + private FinancialAccountRef financialAccount = null; + + @JsonProperty("paymentPlan") + @Valid + private List paymentPlan = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = new ArrayList<>(); + + @JsonProperty("taxExemption") + @Valid + private List taxExemption = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public SettlementAccountCreate accountType(String accountType) { + this.accountType = accountType; + return this; + } + + /** + * A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values. + * @return accountType + **/ + @Schema(description = "A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values.") + + + public String getAccountType() { + return accountType; + } + + public void setAccountType(String accountType) { + this.accountType = accountType; + } + + public SettlementAccountCreate description(String description) { + this.description = description; + return this; + } + + /** + * Detailed description of the party account + * @return description + **/ + @Schema(description = "Detailed description of the party account") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public SettlementAccountCreate lastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + return this; + } + + /** + * Date of last modification of the account + * @return lastModified + **/ + @Schema(description = "Date of last modification of the account") + + @Valid + + public OffsetDateTime getLastModified() { + return lastModified; + } + + public void setLastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + } + + public SettlementAccountCreate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the account + * @return name + **/ + @Schema(description = "Name of the account") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public SettlementAccountCreate paymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + return this; + } + + /** + * The condition of the account, such as due, paid, in arrears. + * @return paymentStatus + **/ + @Schema(description = "The condition of the account, such as due, paid, in arrears.") + + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public SettlementAccountCreate state(String state) { + this.state = state; + return this; + } + + /** + * Contains the lifecycle state such as: Active, Closed, Suspended and so on. + * @return state + **/ + @Schema(description = "Contains the lifecycle state such as: Active, Closed, Suspended and so on.") + + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public SettlementAccountCreate accountBalance(List accountBalance) { + this.accountBalance = accountBalance; + return this; + } + + public SettlementAccountCreate addAccountBalanceItem(AccountBalance accountBalanceItem) { + if (this.accountBalance == null) { + this.accountBalance = new ArrayList<>(); + } + this.accountBalance.add(accountBalanceItem); + return this; + } + + /** + * Get accountBalance + * @return accountBalance + **/ + @Schema(description = "") + + @Valid + + public List getAccountBalance() { + return accountBalance; + } + + public void setAccountBalance(List accountBalance) { + this.accountBalance = accountBalance; + } + + public SettlementAccountCreate accountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + return this; + } + + public SettlementAccountCreate addAccountRelationshipItem(AccountRelationship accountRelationshipItem) { + if (this.accountRelationship == null) { + this.accountRelationship = new ArrayList<>(); + } + this.accountRelationship.add(accountRelationshipItem); + return this; + } + + /** + * Get accountRelationship + * @return accountRelationship + **/ + @Schema(description = "") + + @Valid + + public List getAccountRelationship() { + return accountRelationship; + } + + public void setAccountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + } + + public SettlementAccountCreate billStructure(BillStructure billStructure) { + this.billStructure = billStructure; + return this; + } + + /** + * Get billStructure + * @return billStructure + **/ + @Schema(description = "") + + @Valid + + public BillStructure getBillStructure() { + return billStructure; + } + + public void setBillStructure(BillStructure billStructure) { + this.billStructure = billStructure; + } + + public SettlementAccountCreate contact(List contact) { + this.contact = contact; + return this; + } + + public SettlementAccountCreate addContactItem(Contact contactItem) { + if (this.contact == null) { + this.contact = new ArrayList<>(); + } + this.contact.add(contactItem); + return this; + } + + /** + * Get contact + * @return contact + **/ + @Schema(description = "") + + @Valid + + public List getContact() { + return contact; + } + + public void setContact(List contact) { + this.contact = contact; + } + + public SettlementAccountCreate creditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + return this; + } + + /** + * The maximum amount of money that may be charged on an account + * @return creditLimit + **/ + @Schema(description = "The maximum amount of money that may be charged on an account") + + @Valid + + public Money getCreditLimit() { + return creditLimit; + } + + public void setCreditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + } + + public SettlementAccountCreate defaultPaymentMethod(PaymentMethodRef defaultPaymentMethod) { + this.defaultPaymentMethod = defaultPaymentMethod; + return this; + } + + /** + * Get defaultPaymentMethod + * @return defaultPaymentMethod + **/ + @Schema(description = "") + + @Valid + + public PaymentMethodRef getDefaultPaymentMethod() { + return defaultPaymentMethod; + } + + public void setDefaultPaymentMethod(PaymentMethodRef defaultPaymentMethod) { + this.defaultPaymentMethod = defaultPaymentMethod; + } + + public SettlementAccountCreate financialAccount(FinancialAccountRef financialAccount) { + this.financialAccount = financialAccount; + return this; + } + + /** + * Get financialAccount + * @return financialAccount + **/ + @Schema(description = "") + + @Valid + + public FinancialAccountRef getFinancialAccount() { + return financialAccount; + } + + public void setFinancialAccount(FinancialAccountRef financialAccount) { + this.financialAccount = financialAccount; + } + + public SettlementAccountCreate paymentPlan(List paymentPlan) { + this.paymentPlan = paymentPlan; + return this; + } + + public SettlementAccountCreate addPaymentPlanItem(PaymentPlan paymentPlanItem) { + if (this.paymentPlan == null) { + this.paymentPlan = new ArrayList<>(); + } + this.paymentPlan.add(paymentPlanItem); + return this; + } + + /** + * Get paymentPlan + * @return paymentPlan + **/ + @Schema(description = "") + + @Valid + + public List getPaymentPlan() { + return paymentPlan; + } + + public void setPaymentPlan(List paymentPlan) { + this.paymentPlan = paymentPlan; + } + + public SettlementAccountCreate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public SettlementAccountCreate addRelatedPartyItem(RelatedParty relatedPartyItem) { + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + @NotNull + + @Valid +@Size(min=1) + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public SettlementAccountCreate taxExemption(List taxExemption) { + this.taxExemption = taxExemption; + return this; + } + + public SettlementAccountCreate addTaxExemptionItem(AccountTaxExemption taxExemptionItem) { + if (this.taxExemption == null) { + this.taxExemption = new ArrayList<>(); + } + this.taxExemption.add(taxExemptionItem); + return this; + } + + /** + * Get taxExemption + * @return taxExemption + **/ + @Schema(description = "") + + @Valid + + public List getTaxExemption() { + return taxExemption; + } + + public void setTaxExemption(List taxExemption) { + this.taxExemption = taxExemption; + } + + public SettlementAccountCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public SettlementAccountCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public SettlementAccountCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SettlementAccountCreate settlementAccountCreate = (SettlementAccountCreate) o; + return Objects.equals(this.accountType, settlementAccountCreate.accountType) && + Objects.equals(this.description, settlementAccountCreate.description) && + Objects.equals(this.lastModified, settlementAccountCreate.lastModified) && + Objects.equals(this.name, settlementAccountCreate.name) && + Objects.equals(this.paymentStatus, settlementAccountCreate.paymentStatus) && + Objects.equals(this.state, settlementAccountCreate.state) && + Objects.equals(this.accountBalance, settlementAccountCreate.accountBalance) && + Objects.equals(this.accountRelationship, settlementAccountCreate.accountRelationship) && + Objects.equals(this.billStructure, settlementAccountCreate.billStructure) && + Objects.equals(this.contact, settlementAccountCreate.contact) && + Objects.equals(this.creditLimit, settlementAccountCreate.creditLimit) && + Objects.equals(this.defaultPaymentMethod, settlementAccountCreate.defaultPaymentMethod) && + Objects.equals(this.financialAccount, settlementAccountCreate.financialAccount) && + Objects.equals(this.paymentPlan, settlementAccountCreate.paymentPlan) && + Objects.equals(this.relatedParty, settlementAccountCreate.relatedParty) && + Objects.equals(this.taxExemption, settlementAccountCreate.taxExemption) && + Objects.equals(this.baseType, settlementAccountCreate.baseType) && + Objects.equals(this.schemaLocation, settlementAccountCreate.schemaLocation) && + Objects.equals(this.type, settlementAccountCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(accountType, description, lastModified, name, paymentStatus, state, accountBalance, accountRelationship, billStructure, contact, creditLimit, defaultPaymentMethod, financialAccount, paymentPlan, relatedParty, taxExemption, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SettlementAccountCreate {\n"); + + sb.append(" accountType: ").append(toIndentedString(accountType)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastModified: ").append(toIndentedString(lastModified)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" paymentStatus: ").append(toIndentedString(paymentStatus)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" accountBalance: ").append(toIndentedString(accountBalance)).append("\n"); + sb.append(" accountRelationship: ").append(toIndentedString(accountRelationship)).append("\n"); + sb.append(" billStructure: ").append(toIndentedString(billStructure)).append("\n"); + sb.append(" contact: ").append(toIndentedString(contact)).append("\n"); + sb.append(" creditLimit: ").append(toIndentedString(creditLimit)).append("\n"); + sb.append(" defaultPaymentMethod: ").append(toIndentedString(defaultPaymentMethod)).append("\n"); + sb.append(" financialAccount: ").append(toIndentedString(financialAccount)).append("\n"); + sb.append(" paymentPlan: ").append(toIndentedString(paymentPlan)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" taxExemption: ").append(toIndentedString(taxExemption)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountStateChangeEvent.java new file mode 100644 index 0000000..febe314 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountStateChangeEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class SettlementAccountStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private SettlementAccountStateChangeEventPayload event = null; + + public SettlementAccountStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the resource involved in the event + * @return id + **/ + @Schema(description = "Identifier of the resource involved in the event") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public SettlementAccountStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the resource involved in the event + * @return href + **/ + @Schema(description = "Reference of the resource involved in the event") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public SettlementAccountStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public SettlementAccountStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public SettlementAccountStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public SettlementAccountStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public SettlementAccountStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public SettlementAccountStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public SettlementAccountStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory of the event. + * @return description + **/ + @Schema(description = "An explanatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public SettlementAccountStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public SettlementAccountStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public SettlementAccountStateChangeEvent event(SettlementAccountStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public SettlementAccountStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(SettlementAccountStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SettlementAccountStateChangeEvent settlementAccountStateChangeEvent = (SettlementAccountStateChangeEvent) o; + return Objects.equals(this.id, settlementAccountStateChangeEvent.id) && + Objects.equals(this.href, settlementAccountStateChangeEvent.href) && + Objects.equals(this.eventId, settlementAccountStateChangeEvent.eventId) && + Objects.equals(this.eventTime, settlementAccountStateChangeEvent.eventTime) && + Objects.equals(this.eventType, settlementAccountStateChangeEvent.eventType) && + Objects.equals(this.correlationId, settlementAccountStateChangeEvent.correlationId) && + Objects.equals(this.domain, settlementAccountStateChangeEvent.domain) && + Objects.equals(this.title, settlementAccountStateChangeEvent.title) && + Objects.equals(this.description, settlementAccountStateChangeEvent.description) && + Objects.equals(this.priority, settlementAccountStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, settlementAccountStateChangeEvent.timeOcurred) && + Objects.equals(this.event, settlementAccountStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SettlementAccountStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountStateChangeEventPayload.java new file mode 100644 index 0000000..3782fbe --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountStateChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class SettlementAccountStateChangeEventPayload { + @JsonProperty("settlementAccount") + private SettlementAccount settlementAccount = null; + + public SettlementAccountStateChangeEventPayload settlementAccount(SettlementAccount settlementAccount) { + this.settlementAccount = settlementAccount; + return this; + } + + /** + * The involved resource data for the event + * @return settlementAccount + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public SettlementAccount getSettlementAccount() { + return settlementAccount; + } + + public void setSettlementAccount(SettlementAccount settlementAccount) { + this.settlementAccount = settlementAccount; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SettlementAccountStateChangeEventPayload settlementAccountStateChangeEventPayload = (SettlementAccountStateChangeEventPayload) o; + return Objects.equals(this.settlementAccount, settlementAccountStateChangeEventPayload.settlementAccount); + } + + @Override + public int hashCode() { + return Objects.hash(settlementAccount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SettlementAccountStateChangeEventPayload {\n"); + + sb.append(" settlementAccount: ").append(toIndentedString(settlementAccount)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountUpdate.java b/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountUpdate.java new file mode 100644 index 0000000..b67d18f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/am666/model/SettlementAccountUpdate.java @@ -0,0 +1,584 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.am666.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * A party account used for settlement purposes. It includes a description of the bill structure (frequency, presentation media, format and so on). It is a specialization of entity PartyAccount. Skipped properties: id,href,accountBalance + */ +@Schema(description = "A party account used for settlement purposes. It includes a description of the bill structure (frequency, presentation media, format and so on). It is a specialization of entity PartyAccount. Skipped properties: id,href,accountBalance") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:49:45.251+03:00") + +public class SettlementAccountUpdate { + @JsonProperty("accountType") + private String accountType = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("lastModified") + private OffsetDateTime lastModified = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("paymentStatus") + private String paymentStatus = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("accountRelationship") + @Valid + private List accountRelationship = null; + + @JsonProperty("billStructure") + private BillStructure billStructure = null; + + @JsonProperty("contact") + @Valid + private List contact = null; + + @JsonProperty("creditLimit") + private Money creditLimit = null; + + @JsonProperty("defaultPaymentMethod") + private PaymentMethodRef defaultPaymentMethod = null; + + @JsonProperty("financialAccount") + private FinancialAccountRef financialAccount = null; + + @JsonProperty("paymentPlan") + @Valid + private List paymentPlan = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = new ArrayList<>(); + + @JsonProperty("taxExemption") + @Valid + private List taxExemption = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public SettlementAccountUpdate accountType(String accountType) { + this.accountType = accountType; + return this; + } + + /** + * A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values. + * @return accountType + **/ + @Schema(description = "A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values.") + + + public String getAccountType() { + return accountType; + } + + public void setAccountType(String accountType) { + this.accountType = accountType; + } + + public SettlementAccountUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Detailed description of the party account + * @return description + **/ + @Schema(description = "Detailed description of the party account") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public SettlementAccountUpdate lastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + return this; + } + + /** + * Date of last modification of the account + * @return lastModified + **/ + @Schema(description = "Date of last modification of the account") + + @Valid + + public OffsetDateTime getLastModified() { + return lastModified; + } + + public void setLastModified(OffsetDateTime lastModified) { + this.lastModified = lastModified; + } + + public SettlementAccountUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the account + * @return name + **/ + @Schema(description = "Name of the account") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public SettlementAccountUpdate paymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + return this; + } + + /** + * The condition of the account, such as due, paid, in arrears. + * @return paymentStatus + **/ + @Schema(description = "The condition of the account, such as due, paid, in arrears.") + + + public String getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public SettlementAccountUpdate state(String state) { + this.state = state; + return this; + } + + /** + * Contains the lifecycle state such as: Active, Closed, Suspended and so on. + * @return state + **/ + @Schema(description = "Contains the lifecycle state such as: Active, Closed, Suspended and so on.") + + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public SettlementAccountUpdate accountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + return this; + } + + public SettlementAccountUpdate addAccountRelationshipItem(AccountRelationship accountRelationshipItem) { + if (this.accountRelationship == null) { + this.accountRelationship = new ArrayList<>(); + } + this.accountRelationship.add(accountRelationshipItem); + return this; + } + + /** + * Get accountRelationship + * @return accountRelationship + **/ + @Schema(description = "") + + @Valid + + public List getAccountRelationship() { + return accountRelationship; + } + + public void setAccountRelationship(List accountRelationship) { + this.accountRelationship = accountRelationship; + } + + public SettlementAccountUpdate billStructure(BillStructure billStructure) { + this.billStructure = billStructure; + return this; + } + + /** + * Get billStructure + * @return billStructure + **/ + @Schema(description = "") + + @Valid + + public BillStructure getBillStructure() { + return billStructure; + } + + public void setBillStructure(BillStructure billStructure) { + this.billStructure = billStructure; + } + + public SettlementAccountUpdate contact(List contact) { + this.contact = contact; + return this; + } + + public SettlementAccountUpdate addContactItem(Contact contactItem) { + if (this.contact == null) { + this.contact = new ArrayList<>(); + } + this.contact.add(contactItem); + return this; + } + + /** + * Get contact + * @return contact + **/ + @Schema(description = "") + + @Valid + + public List getContact() { + return contact; + } + + public void setContact(List contact) { + this.contact = contact; + } + + public SettlementAccountUpdate creditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + return this; + } + + /** + * The maximum amount of money that may be charged on an account + * @return creditLimit + **/ + @Schema(description = "The maximum amount of money that may be charged on an account") + + @Valid + + public Money getCreditLimit() { + return creditLimit; + } + + public void setCreditLimit(Money creditLimit) { + this.creditLimit = creditLimit; + } + + public SettlementAccountUpdate defaultPaymentMethod(PaymentMethodRef defaultPaymentMethod) { + this.defaultPaymentMethod = defaultPaymentMethod; + return this; + } + + /** + * Get defaultPaymentMethod + * @return defaultPaymentMethod + **/ + @Schema(description = "") + + @Valid + + public PaymentMethodRef getDefaultPaymentMethod() { + return defaultPaymentMethod; + } + + public void setDefaultPaymentMethod(PaymentMethodRef defaultPaymentMethod) { + this.defaultPaymentMethod = defaultPaymentMethod; + } + + public SettlementAccountUpdate financialAccount(FinancialAccountRef financialAccount) { + this.financialAccount = financialAccount; + return this; + } + + /** + * Get financialAccount + * @return financialAccount + **/ + @Schema(description = "") + + @Valid + + public FinancialAccountRef getFinancialAccount() { + return financialAccount; + } + + public void setFinancialAccount(FinancialAccountRef financialAccount) { + this.financialAccount = financialAccount; + } + + public SettlementAccountUpdate paymentPlan(List paymentPlan) { + this.paymentPlan = paymentPlan; + return this; + } + + public SettlementAccountUpdate addPaymentPlanItem(PaymentPlan paymentPlanItem) { + if (this.paymentPlan == null) { + this.paymentPlan = new ArrayList<>(); + } + this.paymentPlan.add(paymentPlanItem); + return this; + } + + /** + * Get paymentPlan + * @return paymentPlan + **/ + @Schema(description = "") + + @Valid + + public List getPaymentPlan() { + return paymentPlan; + } + + public void setPaymentPlan(List paymentPlan) { + this.paymentPlan = paymentPlan; + } + + public SettlementAccountUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public SettlementAccountUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + @NotNull + + @Valid +@Size(min=1) + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public SettlementAccountUpdate taxExemption(List taxExemption) { + this.taxExemption = taxExemption; + return this; + } + + public SettlementAccountUpdate addTaxExemptionItem(AccountTaxExemption taxExemptionItem) { + if (this.taxExemption == null) { + this.taxExemption = new ArrayList<>(); + } + this.taxExemption.add(taxExemptionItem); + return this; + } + + /** + * Get taxExemption + * @return taxExemption + **/ + @Schema(description = "") + + @Valid + + public List getTaxExemption() { + return taxExemption; + } + + public void setTaxExemption(List taxExemption) { + this.taxExemption = taxExemption; + } + + public SettlementAccountUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public SettlementAccountUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public SettlementAccountUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SettlementAccountUpdate settlementAccountUpdate = (SettlementAccountUpdate) o; + return Objects.equals(this.accountType, settlementAccountUpdate.accountType) && + Objects.equals(this.description, settlementAccountUpdate.description) && + Objects.equals(this.lastModified, settlementAccountUpdate.lastModified) && + Objects.equals(this.name, settlementAccountUpdate.name) && + Objects.equals(this.paymentStatus, settlementAccountUpdate.paymentStatus) && + Objects.equals(this.state, settlementAccountUpdate.state) && + Objects.equals(this.accountRelationship, settlementAccountUpdate.accountRelationship) && + Objects.equals(this.billStructure, settlementAccountUpdate.billStructure) && + Objects.equals(this.contact, settlementAccountUpdate.contact) && + Objects.equals(this.creditLimit, settlementAccountUpdate.creditLimit) && + Objects.equals(this.defaultPaymentMethod, settlementAccountUpdate.defaultPaymentMethod) && + Objects.equals(this.financialAccount, settlementAccountUpdate.financialAccount) && + Objects.equals(this.paymentPlan, settlementAccountUpdate.paymentPlan) && + Objects.equals(this.relatedParty, settlementAccountUpdate.relatedParty) && + Objects.equals(this.taxExemption, settlementAccountUpdate.taxExemption) && + Objects.equals(this.baseType, settlementAccountUpdate.baseType) && + Objects.equals(this.schemaLocation, settlementAccountUpdate.schemaLocation) && + Objects.equals(this.type, settlementAccountUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(accountType, description, lastModified, name, paymentStatus, state, accountRelationship, billStructure, contact, creditLimit, defaultPaymentMethod, financialAccount, paymentPlan, relatedParty, taxExemption, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SettlementAccountUpdate {\n"); + + sb.append(" accountType: ").append(toIndentedString(accountType)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastModified: ").append(toIndentedString(lastModified)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" paymentStatus: ").append(toIndentedString(paymentStatus)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" accountRelationship: ").append(toIndentedString(accountRelationship)).append("\n"); + sb.append(" billStructure: ").append(toIndentedString(billStructure)).append("\n"); + sb.append(" contact: ").append(toIndentedString(contact)).append("\n"); + sb.append(" creditLimit: ").append(toIndentedString(creditLimit)).append("\n"); + sb.append(" defaultPaymentMethod: ").append(toIndentedString(defaultPaymentMethod)).append("\n"); + sb.append(" financialAccount: ").append(toIndentedString(financialAccount)).append("\n"); + sb.append(" paymentPlan: ").append(toIndentedString(paymentPlan)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" taxExemption: ").append(toIndentedString(taxExemption)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/cm629/api/ApiException.java b/src/main/java/org/etsi/osl/tmf/cm629/api/ApiException.java new file mode 100644 index 0000000..230631a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/api/ApiException.java @@ -0,0 +1,30 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/cm629/api/ApiOriginFilter.java b/src/main/java/org/etsi/osl/tmf/cm629/api/ApiOriginFilter.java new file mode 100644 index 0000000..a17b218 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/api/ApiOriginFilter.java @@ -0,0 +1,51 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.api; + +import java.io.IOException; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +public class ApiOriginFilter implements jakarta.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} diff --git a/src/main/java/org/etsi/osl/tmf/cm629/api/ApiResponseMessage.java b/src/main/java/org/etsi/osl/tmf/cm629/api/ApiResponseMessage.java new file mode 100644 index 0000000..bf4b5be --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/api/ApiResponseMessage.java @@ -0,0 +1,89 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.api; + +import jakarta.xml.bind.annotation.XmlTransient; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +@jakarta.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/cm629/api/CustomerApi.java b/src/main/java/org/etsi/osl/tmf/cm629/api/CustomerApi.java new file mode 100644 index 0000000..f656646 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/api/CustomerApi.java @@ -0,0 +1,205 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.cm629.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.cm629.model.Customer; +import org.etsi.osl.tmf.cm629.model.CustomerCreate; +import org.etsi.osl.tmf.cm629.model.CustomerUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + + +@Tag(name = "customer", description = "the customer API") +public interface CustomerApi { + + Logger log = LoggerFactory.getLogger(CustomerApi.class); + + + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a Customer", operationId = "createCustomer", description = "This operation creates a Customer entity.", tags={ "customer", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/customer", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createCustomer(@Parameter(description = "The Customer to be created" ,required=true ) @Valid @RequestBody CustomerCreate customer) { + + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + + + @Operation(summary = "Deletes a Customer", operationId = "deleteCustomer", description = "This operation deletes a Customer entity.", tags={ "customer", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/customer/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteCustomer(@Parameter(description = "Identifier of the Customer",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CustomerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find Customer objects", operationId = "listCustomer", description = "This operation list or find Customer entities" , tags={ "customer", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/customer", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listCustomer(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"creditProfile\" : [ { \"creditProfileDate\" : \"2000-01-23T04:56:07.000+00:00\", \"creditScore\" : 6, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"creditRiskRating\" : 0, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"creditProfileDate\" : \"2000-01-23T04:56:07.000+00:00\", \"creditScore\" : 6, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"creditRiskRating\" : 0, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"agreement\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"characteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"statusReason\" : \"statusReason\", \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"paymentMethod\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"engagedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"status\" : \"status\"}, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"creditProfile\" : [ { \"creditProfileDate\" : \"2000-01-23T04:56:07.000+00:00\", \"creditScore\" : 6, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"creditRiskRating\" : 0, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"creditProfileDate\" : \"2000-01-23T04:56:07.000+00:00\", \"creditScore\" : 6, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"creditRiskRating\" : 0, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"agreement\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"characteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"statusReason\" : \"statusReason\", \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"paymentMethod\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"engagedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"status\" : \"status\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CustomerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a Customer", operationId = "patchCustomer", description = "This operation updates partially a Customer entity.", tags={ "customer", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/customer/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchCustomer(@Parameter(description = "Identifier of the Customer",required=true) @PathVariable("id") String id,@Parameter(description = "The Customer to be updated" ,required=true ) @Valid @RequestBody CustomerUpdate customer) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"creditProfile\" : [ { \"creditProfileDate\" : \"2000-01-23T04:56:07.000+00:00\", \"creditScore\" : 6, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"creditRiskRating\" : 0, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"creditProfileDate\" : \"2000-01-23T04:56:07.000+00:00\", \"creditScore\" : 6, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"creditRiskRating\" : 0, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"agreement\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"characteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"statusReason\" : \"statusReason\", \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"paymentMethod\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"engagedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"status\" : \"status\"}", Customer.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CustomerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a Customer by ID", operationId = "retrieveCustomer", description = "This operation retrieves a Customer entity. Attribute selection is enabled for all first level attributes.", tags={ "customer", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/customer/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveCustomer(@Parameter(description = "Identifier of the Customer",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"creditProfile\" : [ { \"creditProfileDate\" : \"2000-01-23T04:56:07.000+00:00\", \"creditScore\" : 6, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"creditRiskRating\" : 0, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"creditProfileDate\" : \"2000-01-23T04:56:07.000+00:00\", \"creditScore\" : 6, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"creditRiskRating\" : 0, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"agreement\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"characteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"statusReason\" : \"statusReason\", \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"paymentMethod\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"engagedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"status\" : \"status\"}", Customer.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CustomerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/cm629/api/CustomerApiController.java b/src/main/java/org/etsi/osl/tmf/cm629/api/CustomerApiController.java new file mode 100644 index 0000000..04d4886 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/api/CustomerApiController.java @@ -0,0 +1,172 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.api; + +import java.util.List; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.cm629.model.Customer; +import org.etsi.osl.tmf.cm629.model.CustomerCreate; +import org.etsi.osl.tmf.cm629.model.CustomerUpdate; +import org.etsi.osl.tmf.cm629.service.CustomerRepoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import org.etsi.osl.model.UserRoleType; +import io.swagger.v3.oas.annotations.Parameter; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +@Controller +@RequestMapping("/customerManagement/v4/") +public class CustomerApiController implements CustomerApi { + + + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + + @org.springframework.beans.factory.annotation.Autowired + public CustomerApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + + @Autowired + CustomerRepoService customerRepoService; + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity> listCustomer(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + + + + + try { + Object attr = request.getSession().getAttribute("SPRING_SECURITY_CONTEXT"); + SecurityContextHolder.setContext( (SecurityContext) attr ); + + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + log.info("authentication= " + authentication.toString()); + + log.info("principal ADMIN = " + authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_ADMIN.getValue() ) )); + log.info("principal NFV_DEVELOPER = " + authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_NFV_DEVELOPER.getValue() ) )); + log.info("principal EXPERIMENTER = " + authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_EXPERIMENTER.getValue() ) )); + + if ( authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_ADMIN.getValue() ) ) ) { + + return new ResponseEntity>(customerRepoService.findAll(), HttpStatus.OK); + }else { + return new ResponseEntity>(HttpStatus.FORBIDDEN ); + } + + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity retrieveCustomer(@Parameter(description = "Identifier of the Customer",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + + + try { + Object attr = request.getSession().getAttribute("SPRING_SECURITY_CONTEXT"); + SecurityContextHolder.setContext( (SecurityContext) attr ); + + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + log.info("authentication= " + authentication.toString()); + + log.info("principal ADMIN = " + authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_ADMIN.getValue() ) )); + log.info("principal NFV_DEVELOPER = " + authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_NFV_DEVELOPER.getValue() ) )); + log.info("principal EXPERIMENTER = " + authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_EXPERIMENTER.getValue() ) )); + + if ( authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_ADMIN.getValue() ) ) ) { + + return new ResponseEntity< Customer >(customerRepoService.findById(id) , HttpStatus.OK); + }else { + return new ResponseEntity< Customer >(HttpStatus.FORBIDDEN ); + } + + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity< Customer >(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity createCustomer( + @Parameter(description = "The Customer to be created", required = true) @Valid @RequestBody CustomerCreate customer) { + + try { + Customer c = customerRepoService.addCustomer(customer); + + return new ResponseEntity(c, HttpStatus.OK); + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity patchCustomer(@Parameter(description = "Identifier of the Customer",required=true) @PathVariable("id") String id,@Parameter(description = "The Customer to be updated" ,required=true ) @Valid @RequestBody CustomerUpdate customer) { + + try { + Customer c = customerRepoService.updateCustomer(id, customer); + + return new ResponseEntity(c, HttpStatus.OK); + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity deleteCustomer(@Parameter(description = "Identifier of the Customer",required=true) @PathVariable("id") String id) { + try { + + return new ResponseEntity( customerRepoService.deleteById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } +} diff --git a/src/main/java/org/etsi/osl/tmf/cm629/api/CustomerApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/cm629/api/CustomerApiRouteBuilder.java new file mode 100644 index 0000000..33fb984 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/api/CustomerApiRouteBuilder.java @@ -0,0 +1,111 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.api; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.centrallog.client.CLevel; +import org.etsi.osl.centrallog.client.CentralLogger; +import org.etsi.osl.tmf.cm629.model.CustomerAttributeValueChangeEvent; +import org.etsi.osl.tmf.cm629.model.CustomerCreateEvent; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +@Configuration +@Component +public class CustomerApiRouteBuilder extends RouteBuilder { + + private static final transient Log logger = LogFactory.getLog(CustomerApiRouteBuilder.class.getName()); + + @Value("${EVENT_CUSTOMER_CREATE}") + private String EVENT_CUSTOMER_CREATE = ""; + + @Value("${EVENT_CUSTOMER_CHANGED}") + private String EVENT_CUSTOMER_CHANGED = ""; + + @Autowired + private ProducerTemplate template; + + + @Value("${spring.application.name}") + private String compname; + + @Autowired + private CentralLogger centralLogger; + + @Override + public void configure() throws Exception { + + } + + /** + * @param ce + * @param id + */ + public void publishEvent(Object ce, String objId) { + try { + String msgtopic = ""; + + Map map = new HashMap<>(); + map.put("objId", objId); + + if (ce instanceof CustomerCreateEvent) { + msgtopic = EVENT_CUSTOMER_CREATE; + ((CustomerCreateEvent) ce).setEventType(ce.getClass().getName()); + map.put("eventid", ((CustomerCreateEvent) ce).getEventId()); + logger.info("will send Event for type " + ((CustomerCreateEvent) ce).getEventType()); + } else if (ce instanceof CustomerAttributeValueChangeEvent) { + msgtopic = EVENT_CUSTOMER_CHANGED; + + ((CustomerAttributeValueChangeEvent) ce).setEventType(ce.getClass().getName()); + map.put("eventid", ((CustomerAttributeValueChangeEvent) ce).getEventId()); + logger.info("will send Event for type " + ((CustomerAttributeValueChangeEvent) ce).getEventType()); + } + + String apayload = toJsonString( ce ); + template.sendBodyAndHeaders(msgtopic, apayload, map); + + centralLogger.log(CLevel.INFO, apayload, compname); + + } catch (Exception e) { + e.printStackTrace(); + logger.error("Cannot send Event . " + e.getMessage()); + } + + } + + static String toJsonString(Object object) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.writeValueAsString(object); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/cm629/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/cm629/api/HubApi.java new file mode 100644 index 0000000..18a6c6a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/api/HubApi.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.cm629.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.cm629.model.EventSubscription; +import org.etsi.osl.tmf.cm629.model.EventSubscriptionInput; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +@Tag(name = "hub", description = "the hub API") +public interface HubApi { + + Logger log = LoggerFactory.getLogger(HubApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Register a listener", operationId = "registerListener629", description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Subscribed" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Unregister a listener", operationId = "unregisterListener629", description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method not allowed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/cm629/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/cm629/api/HubApiController.java new file mode 100644 index 0000000..fa0e4a0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/api/HubApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +@Controller("HubApiController629") +@RequestMapping("/customerManagement/v4/") +public class HubApiController implements HubApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public HubApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/cm629/api/ListenerApi.java b/src/main/java/org/etsi/osl/tmf/cm629/api/ListenerApi.java new file mode 100644 index 0000000..085d1db --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/api/ListenerApi.java @@ -0,0 +1,192 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.cm629.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.cm629.model.CustomerAttributeValueChangeEvent; +import org.etsi.osl.tmf.cm629.model.CustomerCreateEvent; +import org.etsi.osl.tmf.cm629.model.CustomerDeleteEvent; +import org.etsi.osl.tmf.cm629.model.CustomerStateChangeEvent; +import org.etsi.osl.tmf.cm629.model.EventSubscription; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +@Tag(name = "listener", description = "the listener API") +public interface ListenerApi { + + Logger log = LoggerFactory.getLogger(ListenerApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Client listener for entity CustomerAttributeValueChangeEvent", operationId = "listenToCustomerAttributeValueChangeEvent", description = "Example of a client listener for receiving the notification CustomerAttributeValueChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/customerAttributeValueChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToCustomerAttributeValueChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody CustomerAttributeValueChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity CustomerCreateEvent", operationId = "listenToCustomerCreateEvent", description = "Example of a client listener for receiving the notification CustomerCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/customerCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToCustomerCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody CustomerCreateEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity CustomerDeleteEvent", operationId = "listenToCustomerDeleteEvent", description = "Example of a client listener for receiving the notification CustomerDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/customerDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToCustomerDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody CustomerDeleteEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity CustomerStateChangeEvent", operationId = "listenToCustomerStateChangeEvent", description = "Example of a client listener for receiving the notification CustomerStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/customerStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToCustomerStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody CustomerStateChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/cm629/api/ListenerApiController.java b/src/main/java/org/etsi/osl/tmf/cm629/api/ListenerApiController.java new file mode 100644 index 0000000..782a2d7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/api/ListenerApiController.java @@ -0,0 +1,54 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +@Controller("ListenerApiController629") +public class ListenerApiController implements ListenerApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ListenerApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/cm629/model/CreditProfile.java b/src/main/java/org/etsi/osl/tmf/cm629/model/CreditProfile.java new file mode 100644 index 0000000..b36a400 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/model/CreditProfile.java @@ -0,0 +1,186 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Credit profile for the party (containing credit scoring, ...). By default only the current credit profile is retrieved. It can be used as a list to give the party credit profiles history, the first one in the list will be the current one. + */ +@Schema(description = "Credit profile for the party (containing credit scoring, ...). By default only the current credit profile is retrieved. It can be used as a list to give the party credit profiles history, the first one in the list will be the current one.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +@Entity(name = "CreditProfile") +public class CreditProfile extends BaseRootEntity{ + @JsonProperty("creditProfileDate") + private OffsetDateTime creditProfileDate = null; + + @JsonProperty("creditRiskRating") + private Integer creditRiskRating = null; + + @JsonProperty("creditScore") + private Integer creditScore = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + public CreditProfile creditProfileDate(OffsetDateTime creditProfileDate) { + this.creditProfileDate = creditProfileDate; + return this; + } + + /** + * The date the profile was established + * @return creditProfileDate + **/ + @Schema(description = "The date the profile was established") + @NotNull + + @Valid + + public OffsetDateTime getCreditProfileDate() { + return creditProfileDate; + } + + public void setCreditProfileDate(OffsetDateTime creditProfileDate) { + this.creditProfileDate = creditProfileDate; + } + + public CreditProfile creditRiskRating(Integer creditRiskRating) { + this.creditRiskRating = creditRiskRating; + return this; + } + + /** + * This is an integer whose value is used to rate the risk + * @return creditRiskRating + **/ + @Schema(description = "This is an integer whose value is used to rate the risk") + + + public Integer getCreditRiskRating() { + return creditRiskRating; + } + + public void setCreditRiskRating(Integer creditRiskRating) { + this.creditRiskRating = creditRiskRating; + } + + public CreditProfile creditScore(Integer creditScore) { + this.creditScore = creditScore; + return this; + } + + /** + * A measure of a person or organizations creditworthiness calculated on the basis of a combination of factors such as their income and credit history + * @return creditScore + **/ + @Schema(description = "A measure of a person or organizations creditworthiness calculated on the basis of a combination of factors such as their income and credit history") + + + public Integer getCreditScore() { + return creditScore; + } + + public void setCreditScore(Integer creditScore) { + this.creditScore = creditScore; + } + + public CreditProfile validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the profile is valid + * @return validFor + **/ + @Schema(description = "The period for which the profile is valid") + @NotNull + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreditProfile creditProfile = (CreditProfile) o; + return Objects.equals(this.creditProfileDate, creditProfile.creditProfileDate) && + Objects.equals(this.creditRiskRating, creditProfile.creditRiskRating) && + Objects.equals(this.creditScore, creditProfile.creditScore) && + Objects.equals(this.validFor, creditProfile.validFor) && + Objects.equals(this.baseType, creditProfile.baseType) && + Objects.equals(this.schemaLocation, creditProfile.schemaLocation) && + Objects.equals(this.type, creditProfile.type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreditProfile {\n"); + + sb.append(" creditProfileDate: ").append(toIndentedString(creditProfileDate)).append("\n"); + sb.append(" creditRiskRating: ").append(toIndentedString(creditRiskRating)).append("\n"); + sb.append(" creditScore: ").append(toIndentedString(creditScore)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/cm629/model/Customer.java b/src/main/java/org/etsi/osl/tmf/cm629/model/Customer.java new file mode 100644 index 0000000..698e9e9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/model/Customer.java @@ -0,0 +1,474 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.am651.model.AgreementRef; +import org.etsi.osl.tmf.am666.model.AccountRef; +import org.etsi.osl.tmf.am666.model.PaymentMethodRef; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.pm632.model.Characteristic; +import org.etsi.osl.tmf.pm632.model.ContactMedium; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Customer + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +@Entity(name = "Customer") +public class Customer extends BaseRootNamedEntity { + + @JsonProperty("id") + private String id = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("statusReason") + private String statusReason = null; + + @JsonProperty("account") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set account = new HashSet<>(); + + @JsonProperty("agreement") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set agreement = new HashSet<>(); + + @JsonProperty("characteristic") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set characteristic = new HashSet<>(); + + @JsonProperty("contactMedium") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set contactMedium = new HashSet<>(); + + @JsonProperty("creditProfile") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set creditProfile = new HashSet<>(); + + @JsonProperty("engagedParty") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn( referencedColumnName = "uuid") + private RelatedParty engagedParty = null; + + @JsonProperty("paymentMethod") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set paymentMethod = new HashSet<>(); + + @JsonProperty("relatedParty") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set relatedParty = new HashSet<>(); + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + /** + * Unique identifier for Customers + * + * @return id + **/ + @Schema(description = "Unique identifier for Customers") + + public String getId() { + return uuid; + } + + public Customer status(String status) { + this.status = status; + return this; + } + + /** + * Used to track the lifecycle status of the customer. + * + * @return status + **/ + @Schema(description = "Used to track the lifecycle status of the customer.") + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Customer statusReason(String statusReason) { + this.statusReason = statusReason; + return this; + } + + /** + * A string providing an explanation on the value of the status lifecycle. For + * instance if the status is Rejected, statusReason will provide the reason for + * rejection. + * + * @return statusReason + **/ + @Schema(description = "A string providing an explanation on the value of the status lifecycle. For instance if the status is Rejected, statusReason will provide the reason for rejection.") + + public String getStatusReason() { + return statusReason; + } + + public void setStatusReason(String statusReason) { + this.statusReason = statusReason; + } + + public Customer account(Set account) { + this.account = account; + return this; + } + + public Customer addAccountItem(AccountRef accountItem) { + if (this.account == null) { + this.account = new HashSet<>(); + } + this.account.add(accountItem); + return this; + } + + /** + * Get account + * + * @return account + **/ + @Schema(description = "") + + @Valid + + public Set getAccount() { + return account; + } + + public void setAccount(Set account) { + this.account = account; + } + + public Customer agreement(Set agreement) { + this.agreement = agreement; + return this; + } + + public Customer addAgreementItem(AgreementRef agreementItem) { + if (this.agreement == null) { + this.agreement = new HashSet<>(); + } + this.agreement.add(agreementItem); + return this; + } + + /** + * Get agreement + * + * @return agreement + **/ + @Schema(description = "") + + @Valid + + public Set getAgreement() { + return agreement; + } + + public void setAgreement(Set agreement) { + this.agreement = agreement; + } + + public Customer characteristic(Set characteristic) { + this.characteristic = characteristic; + return this; + } + + public Customer addCharacteristicItem(Characteristic characteristicItem) { + if (this.characteristic == null) { + this.characteristic = new HashSet<>(); + } + this.characteristic.add(characteristicItem); + return this; + } + + /** + * Describes the characteristic of a customer. + * + * @return characteristic + **/ + @Schema(description = "Describes the characteristic of a customer.") + + @Valid + + public Set getCharacteristic() { + return characteristic; + } + + public void setCharacteristic(Set characteristic) { + this.characteristic = characteristic; + } + + public Customer contactMedium(Set contactMedium) { + this.contactMedium = contactMedium; + return this; + } + + public Customer addContactMediumItem(ContactMedium contactMediumItem) { + if (this.contactMedium == null) { + this.contactMedium = new HashSet<>(); + } + this.contactMedium.add(contactMediumItem); + return this; + } + + /** + * Get contactMedium + * + * @return contactMedium + **/ + @Schema(description = "") + + @Valid + + public Set getContactMedium() { + return contactMedium; + } + + public void setContactMedium(Set contactMedium) { + this.contactMedium = contactMedium; + } + + public Customer creditProfile(Set creditProfile) { + this.creditProfile = creditProfile; + return this; + } + + public Customer addCreditProfileItem(CreditProfile creditProfileItem) { + if (this.creditProfile == null) { + this.creditProfile = new HashSet<>(); + } + this.creditProfile.add(creditProfileItem); + return this; + } + + /** + * Get creditProfile + * + * @return creditProfile + **/ + @Schema(description = "") + + @Valid + + public Set getCreditProfile() { + return creditProfile; + } + + public void setCreditProfile(Set creditProfile) { + this.creditProfile = creditProfile; + } + + public Customer engagedParty(RelatedParty engagedParty) { + this.engagedParty = engagedParty; + return this; + } + + /** + * The party - an organization or an individual - that is engaged as a customer. + * + * @return engagedParty + **/ + @Schema(description = "The party - an organization or an individual - that is engaged as a customer.") + @NotNull + + @Valid + + public RelatedParty getEngagedParty() { + return engagedParty; + } + + public void setEngagedParty(RelatedParty engagedParty) { + this.engagedParty = engagedParty; + } + + public Customer paymentMethod(Set paymentMethod) { + this.paymentMethod = paymentMethod; + return this; + } + + public Customer addPaymentMethodItem(PaymentMethodRef paymentMethodItem) { + if (this.paymentMethod == null) { + this.paymentMethod = new HashSet<>(); + } + this.paymentMethod.add(paymentMethodItem); + return this; + } + + /** + * Get paymentMethod + * + * @return paymentMethod + **/ + @Schema(description = "") + + @Valid + + public Set getPaymentMethod() { + return paymentMethod; + } + + public void setPaymentMethod(Set paymentMethod) { + this.paymentMethod = paymentMethod; + } + + public Customer relatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public Customer addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new HashSet<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public Set getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + } + + public Customer validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The time period that the Customer is valid for. + * + * @return validFor + **/ + @Schema(description = "The time period that the Customer is valid for.") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Customer customer = (Customer) o; + return Objects.equals(this.id, customer.id) && Objects.equals(this.href, customer.href) + && Objects.equals(this.name, customer.name) && Objects.equals(this.status, customer.status) + && Objects.equals(this.statusReason, customer.statusReason) + && Objects.equals(this.account, customer.account) && Objects.equals(this.agreement, customer.agreement) + && Objects.equals(this.characteristic, customer.characteristic) + && Objects.equals(this.contactMedium, customer.contactMedium) + && Objects.equals(this.creditProfile, customer.creditProfile) + && Objects.equals(this.engagedParty, customer.engagedParty) + && Objects.equals(this.paymentMethod, customer.paymentMethod) + && Objects.equals(this.relatedParty, customer.relatedParty) + && Objects.equals(this.validFor, customer.validFor) && Objects.equals(this.baseType, customer.baseType) + && Objects.equals(this.schemaLocation, customer.schemaLocation) + && Objects.equals(this.type, customer.type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Customer {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" statusReason: ").append(toIndentedString(statusReason)).append("\n"); + sb.append(" account: ").append(toIndentedString(account)).append("\n"); + sb.append(" agreement: ").append(toIndentedString(agreement)).append("\n"); + sb.append(" characteristic: ").append(toIndentedString(characteristic)).append("\n"); + sb.append(" contactMedium: ").append(toIndentedString(contactMedium)).append("\n"); + sb.append(" creditProfile: ").append(toIndentedString(creditProfile)).append("\n"); + sb.append(" engagedParty: ").append(toIndentedString(engagedParty)).append("\n"); + sb.append(" paymentMethod: ").append(toIndentedString(paymentMethod)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerAttributeValueChangeEvent.java new file mode 100644 index 0000000..8674f46 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerAttributeValueChangeEvent.java @@ -0,0 +1,360 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.model; + +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +public class CustomerAttributeValueChangeEvent { + @JsonProperty("eventId") + private String eventId = null; + + protected OffsetDateTime eventTime = OffsetDateTime.now(ZoneOffset.UTC); + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("event") + private CustomerAttributeValueChangeEventPayload event = null; + + public CustomerAttributeValueChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public CustomerAttributeValueChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + @JsonProperty("eventTime") + public String getEventTimeString() { + return eventTime.toString(); + } + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public CustomerAttributeValueChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public CustomerAttributeValueChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public CustomerAttributeValueChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public CustomerAttributeValueChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public CustomerAttributeValueChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory of the event. + * @return description + **/ + @Schema(description = "An explanatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CustomerAttributeValueChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public CustomerAttributeValueChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public CustomerAttributeValueChangeEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public CustomerAttributeValueChangeEvent event(CustomerAttributeValueChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public CustomerAttributeValueChangeEventPayload getEvent() { + return event; + } + + public void setEvent(CustomerAttributeValueChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomerAttributeValueChangeEvent customerAttributeValueChangeEvent = (CustomerAttributeValueChangeEvent) o; + return Objects.equals(this.eventId, customerAttributeValueChangeEvent.eventId) && + Objects.equals(this.eventTime, customerAttributeValueChangeEvent.eventTime) && + Objects.equals(this.eventType, customerAttributeValueChangeEvent.eventType) && + Objects.equals(this.correlationId, customerAttributeValueChangeEvent.correlationId) && + Objects.equals(this.domain, customerAttributeValueChangeEvent.domain) && + Objects.equals(this.title, customerAttributeValueChangeEvent.title) && + Objects.equals(this.description, customerAttributeValueChangeEvent.description) && + Objects.equals(this.priority, customerAttributeValueChangeEvent.priority) && + Objects.equals(this.timeOcurred, customerAttributeValueChangeEvent.timeOcurred) && + Objects.equals(this.fieldPath, customerAttributeValueChangeEvent.fieldPath) && + Objects.equals(this.event, customerAttributeValueChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, fieldPath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CustomerAttributeValueChangeEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerAttributeValueChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerAttributeValueChangeEventPayload.java new file mode 100644 index 0000000..2505e85 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerAttributeValueChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +public class CustomerAttributeValueChangeEventPayload { + @JsonProperty("customer") + private Customer customer = null; + + public CustomerAttributeValueChangeEventPayload customer(Customer customer) { + this.customer = customer; + return this; + } + + /** + * The involved resource data for the event + * @return customer + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Customer getCustomer() { + return customer; + } + + public void setCustomer(Customer customer) { + this.customer = customer; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomerAttributeValueChangeEventPayload customerAttributeValueChangeEventPayload = (CustomerAttributeValueChangeEventPayload) o; + return Objects.equals(this.customer, customerAttributeValueChangeEventPayload.customer); + } + + @Override + public int hashCode() { + return Objects.hash(customer); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CustomerAttributeValueChangeEventPayload {\n"); + + sb.append(" customer: ").append(toIndentedString(customer)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerCreate.java b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerCreate.java new file mode 100644 index 0000000..cf3b286 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerCreate.java @@ -0,0 +1,104 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.model; + +import java.util.Objects; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Skipped properties: id,href + */ +@Schema(description = " Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +public class CustomerCreate extends CustomerUpdate { + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomerCreate customerCreate = (CustomerCreate) o; + return Objects.equals(this.name, customerCreate.name) && + Objects.equals(this.status, customerCreate.status) && + Objects.equals(this.statusReason, customerCreate.statusReason) && + Objects.equals(this.account, customerCreate.account) && + Objects.equals(this.agreement, customerCreate.agreement) && + Objects.equals(this.characteristic, customerCreate.characteristic) && + Objects.equals(this.contactMedium, customerCreate.contactMedium) && + Objects.equals(this.creditProfile, customerCreate.creditProfile) && + Objects.equals(this.engagedParty, customerCreate.engagedParty) && + Objects.equals(this.paymentMethod, customerCreate.paymentMethod) && + Objects.equals(this.relatedParty, customerCreate.relatedParty) && + Objects.equals(this.validFor, customerCreate.validFor) && + Objects.equals(this.baseType, customerCreate.baseType) && + Objects.equals(this.schemaLocation, customerCreate.schemaLocation) && + Objects.equals(this.type, customerCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(name, status, statusReason, account, agreement, characteristic, contactMedium, creditProfile, engagedParty, paymentMethod, relatedParty, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CustomerCreate {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" statusReason: ").append(toIndentedString(statusReason)).append("\n"); + sb.append(" account: ").append(toIndentedString(account)).append("\n"); + sb.append(" agreement: ").append(toIndentedString(agreement)).append("\n"); + sb.append(" characteristic: ").append(toIndentedString(characteristic)).append("\n"); + sb.append(" contactMedium: ").append(toIndentedString(contactMedium)).append("\n"); + sb.append(" creditProfile: ").append(toIndentedString(creditProfile)).append("\n"); + sb.append(" engagedParty: ").append(toIndentedString(engagedParty)).append("\n"); + sb.append(" paymentMethod: ").append(toIndentedString(paymentMethod)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerCreateEvent.java b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerCreateEvent.java new file mode 100644 index 0000000..e80156d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerCreateEvent.java @@ -0,0 +1,388 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.model; + +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +public class CustomerCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + protected OffsetDateTime eventTime = OffsetDateTime.now(ZoneOffset.UTC); + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private CustomerCreateEventPayload event = null; + + public CustomerCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the resource involved in the event + * @return id + **/ + @Schema(description = "Identifier of the resource involved in the event") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CustomerCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the resource involved in the event + * @return href + **/ + @Schema(description = "Reference of the resource involved in the event") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CustomerCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public CustomerCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + @JsonProperty("eventTime") + public String getEventTimeString() { + return eventTime.toString(); + } + + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + + + public CustomerCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public CustomerCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public CustomerCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public CustomerCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public CustomerCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory of the event. + * @return description + **/ + @Schema(description = "An explanatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CustomerCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public CustomerCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public CustomerCreateEvent event(CustomerCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public CustomerCreateEventPayload getEvent() { + return event; + } + + public void setEvent(CustomerCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomerCreateEvent customerCreateEvent = (CustomerCreateEvent) o; + return Objects.equals(this.id, customerCreateEvent.id) && + Objects.equals(this.href, customerCreateEvent.href) && + Objects.equals(this.eventId, customerCreateEvent.eventId) && + Objects.equals(this.eventTime, customerCreateEvent.eventTime) && + Objects.equals(this.eventType, customerCreateEvent.eventType) && + Objects.equals(this.correlationId, customerCreateEvent.correlationId) && + Objects.equals(this.domain, customerCreateEvent.domain) && + Objects.equals(this.title, customerCreateEvent.title) && + Objects.equals(this.description, customerCreateEvent.description) && + Objects.equals(this.priority, customerCreateEvent.priority) && + Objects.equals(this.timeOcurred, customerCreateEvent.timeOcurred) && + Objects.equals(this.event, customerCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CustomerCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerCreateEventPayload.java new file mode 100644 index 0000000..165838f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerCreateEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +public class CustomerCreateEventPayload { + @JsonProperty("customer") + private Customer customer = null; + + public CustomerCreateEventPayload customer(Customer customer) { + this.customer = customer; + return this; + } + + /** + * The involved resource data for the event + * @return customer + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Customer getCustomer() { + return customer; + } + + public void setCustomer(Customer customer) { + this.customer = customer; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomerCreateEventPayload customerCreateEventPayload = (CustomerCreateEventPayload) o; + return Objects.equals(this.customer, customerCreateEventPayload.customer); + } + + @Override + public int hashCode() { + return Objects.hash(customer); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CustomerCreateEventPayload {\n"); + + sb.append(" customer: ").append(toIndentedString(customer)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerDeleteEvent.java new file mode 100644 index 0000000..a0e5158 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerDeleteEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +public class CustomerDeleteEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private CustomerDeleteEventPayload event = null; + + public CustomerDeleteEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the resource involved in the event + * @return id + **/ + @Schema(description = "Identifier of the resource involved in the event") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CustomerDeleteEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the resource involved in the event + * @return href + **/ + @Schema(description = "Reference of the resource involved in the event") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CustomerDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public CustomerDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public CustomerDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public CustomerDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public CustomerDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public CustomerDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public CustomerDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory of the event. + * @return description + **/ + @Schema(description = "An explanatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CustomerDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public CustomerDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public CustomerDeleteEvent event(CustomerDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public CustomerDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(CustomerDeleteEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomerDeleteEvent customerDeleteEvent = (CustomerDeleteEvent) o; + return Objects.equals(this.id, customerDeleteEvent.id) && + Objects.equals(this.href, customerDeleteEvent.href) && + Objects.equals(this.eventId, customerDeleteEvent.eventId) && + Objects.equals(this.eventTime, customerDeleteEvent.eventTime) && + Objects.equals(this.eventType, customerDeleteEvent.eventType) && + Objects.equals(this.correlationId, customerDeleteEvent.correlationId) && + Objects.equals(this.domain, customerDeleteEvent.domain) && + Objects.equals(this.title, customerDeleteEvent.title) && + Objects.equals(this.description, customerDeleteEvent.description) && + Objects.equals(this.priority, customerDeleteEvent.priority) && + Objects.equals(this.timeOcurred, customerDeleteEvent.timeOcurred) && + Objects.equals(this.event, customerDeleteEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CustomerDeleteEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerDeleteEventPayload.java new file mode 100644 index 0000000..6223579 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerDeleteEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +public class CustomerDeleteEventPayload { + @JsonProperty("customer") + private Customer customer = null; + + public CustomerDeleteEventPayload customer(Customer customer) { + this.customer = customer; + return this; + } + + /** + * The involved resource data for the event + * @return customer + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Customer getCustomer() { + return customer; + } + + public void setCustomer(Customer customer) { + this.customer = customer; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomerDeleteEventPayload customerDeleteEventPayload = (CustomerDeleteEventPayload) o; + return Objects.equals(this.customer, customerDeleteEventPayload.customer); + } + + @Override + public int hashCode() { + return Objects.hash(customer); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CustomerDeleteEventPayload {\n"); + + sb.append(" customer: ").append(toIndentedString(customer)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerStateChangeEvent.java new file mode 100644 index 0000000..842cd25 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerStateChangeEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +public class CustomerStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private CustomerStateChangeEventPayload event = null; + + public CustomerStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the resource involved in the event + * @return id + **/ + @Schema(description = "Identifier of the resource involved in the event") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CustomerStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the resource involved in the event + * @return href + **/ + @Schema(description = "Reference of the resource involved in the event") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CustomerStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public CustomerStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public CustomerStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public CustomerStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public CustomerStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public CustomerStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public CustomerStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory of the event. + * @return description + **/ + @Schema(description = "An explanatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CustomerStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public CustomerStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public CustomerStateChangeEvent event(CustomerStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public CustomerStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(CustomerStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomerStateChangeEvent customerStateChangeEvent = (CustomerStateChangeEvent) o; + return Objects.equals(this.id, customerStateChangeEvent.id) && + Objects.equals(this.href, customerStateChangeEvent.href) && + Objects.equals(this.eventId, customerStateChangeEvent.eventId) && + Objects.equals(this.eventTime, customerStateChangeEvent.eventTime) && + Objects.equals(this.eventType, customerStateChangeEvent.eventType) && + Objects.equals(this.correlationId, customerStateChangeEvent.correlationId) && + Objects.equals(this.domain, customerStateChangeEvent.domain) && + Objects.equals(this.title, customerStateChangeEvent.title) && + Objects.equals(this.description, customerStateChangeEvent.description) && + Objects.equals(this.priority, customerStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, customerStateChangeEvent.timeOcurred) && + Objects.equals(this.event, customerStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CustomerStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerStateChangeEventPayload.java new file mode 100644 index 0000000..35f481b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerStateChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +public class CustomerStateChangeEventPayload { + @JsonProperty("customer") + private Customer customer = null; + + public CustomerStateChangeEventPayload customer(Customer customer) { + this.customer = customer; + return this; + } + + /** + * The involved resource data for the event + * @return customer + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Customer getCustomer() { + return customer; + } + + public void setCustomer(Customer customer) { + this.customer = customer; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomerStateChangeEventPayload customerStateChangeEventPayload = (CustomerStateChangeEventPayload) o; + return Objects.equals(this.customer, customerStateChangeEventPayload.customer); + } + + @Override + public int hashCode() { + return Objects.hash(customer); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CustomerStateChangeEventPayload {\n"); + + sb.append(" customer: ").append(toIndentedString(customer)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerUpdate.java b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerUpdate.java new file mode 100644 index 0000000..3e22ecd --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/model/CustomerUpdate.java @@ -0,0 +1,532 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.am651.model.AgreementRef; +import org.etsi.osl.tmf.am666.model.AccountRef; +import org.etsi.osl.tmf.am666.model.PaymentMethodRef; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.pm632.model.Characteristic; +import org.etsi.osl.tmf.pm632.model.ContactMedium; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Skipped properties: id,href + */ +@Schema(description = " Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +public class CustomerUpdate { + @JsonProperty("name") + protected String name = null; + + @JsonProperty("status") + protected String status = null; + + @JsonProperty("statusReason") + protected String statusReason = null; + + @JsonProperty("account") + @Valid + protected List account = null; + + @JsonProperty("agreement") + @Valid + protected List agreement = null; + + @JsonProperty("characteristic") + @Valid + protected List characteristic = null; + + @JsonProperty("contactMedium") + @Valid + protected List contactMedium = null; + + @JsonProperty("creditProfile") + @Valid + protected List creditProfile = null; + + @JsonProperty("engagedParty") + protected RelatedParty engagedParty = null; + + @JsonProperty("paymentMethod") + @Valid + protected List paymentMethod = null; + + @JsonProperty("relatedParty") + @Valid + protected List relatedParty = null; + + @JsonProperty("validFor") + protected TimePeriod validFor = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@type") + protected String type = null; + + public CustomerUpdate name(String name) { + this.name = name; + return this; + } + + /** + * A word, term, or phrase by which the Customer is known and distinguished from other Customers. + * @return name + **/ + @Schema(description = "A word, term, or phrase by which the Customer is known and distinguished from other Customers.") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public CustomerUpdate status(String status) { + this.status = status; + return this; + } + + /** + * Used to track the lifecycle status of the customer. + * @return status + **/ + @Schema(description = "Used to track the lifecycle status of the customer.") + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public CustomerUpdate statusReason(String statusReason) { + this.statusReason = statusReason; + return this; + } + + /** + * A string providing an explanation on the value of the status lifecycle. For instance if the status is Rejected, statusReason will provide the reason for rejection. + * @return statusReason + **/ + @Schema(description = "A string providing an explanation on the value of the status lifecycle. For instance if the status is Rejected, statusReason will provide the reason for rejection.") + + + public String getStatusReason() { + return statusReason; + } + + public void setStatusReason(String statusReason) { + this.statusReason = statusReason; + } + + public CustomerUpdate account(List account) { + this.account = account; + return this; + } + + public CustomerUpdate addAccountItem(AccountRef accountItem) { + if (this.account == null) { + this.account = new ArrayList<>(); + } + this.account.add(accountItem); + return this; + } + + /** + * Get account + * @return account + **/ + @Schema(description = "") + + @Valid + + public List getAccount() { + return account; + } + + public void setAccount(List account) { + this.account = account; + } + + public CustomerUpdate agreement(List agreement) { + this.agreement = agreement; + return this; + } + + public CustomerUpdate addAgreementItem(AgreementRef agreementItem) { + if (this.agreement == null) { + this.agreement = new ArrayList<>(); + } + this.agreement.add(agreementItem); + return this; + } + + /** + * Get agreement + * @return agreement + **/ + @Schema(description = "") + + @Valid + + public List getAgreement() { + return agreement; + } + + public void setAgreement(List agreement) { + this.agreement = agreement; + } + + public CustomerUpdate characteristic(List characteristic) { + this.characteristic = characteristic; + return this; + } + + public CustomerUpdate addCharacteristicItem(Characteristic characteristicItem) { + if (this.characteristic == null) { + this.characteristic = new ArrayList<>(); + } + this.characteristic.add(characteristicItem); + return this; + } + + /** + * Describes the characteristic of a customer. + * @return characteristic + **/ + @Schema(description = "Describes the characteristic of a customer.") + + @Valid + + public List getCharacteristic() { + return characteristic; + } + + public void setCharacteristic(List characteristic) { + this.characteristic = characteristic; + } + + public CustomerUpdate contactMedium(List contactMedium) { + this.contactMedium = contactMedium; + return this; + } + + public CustomerUpdate addContactMediumItem(ContactMedium contactMediumItem) { + if (this.contactMedium == null) { + this.contactMedium = new ArrayList<>(); + } + this.contactMedium.add(contactMediumItem); + return this; + } + + /** + * Get contactMedium + * @return contactMedium + **/ + @Schema(description = "") + + @Valid + + public List getContactMedium() { + return contactMedium; + } + + public void setContactMedium(List contactMedium) { + this.contactMedium = contactMedium; + } + + public CustomerUpdate creditProfile(List creditProfile) { + this.creditProfile = creditProfile; + return this; + } + + public CustomerUpdate addCreditProfileItem(CreditProfile creditProfileItem) { + if (this.creditProfile == null) { + this.creditProfile = new ArrayList<>(); + } + this.creditProfile.add(creditProfileItem); + return this; + } + + /** + * Get creditProfile + * @return creditProfile + **/ + @Schema(description = "") + + @Valid + + public List getCreditProfile() { + return creditProfile; + } + + public void setCreditProfile(List creditProfile) { + this.creditProfile = creditProfile; + } + + public CustomerUpdate engagedParty(RelatedParty engagedParty) { + this.engagedParty = engagedParty; + return this; + } + + /** + * The party - an organization or an individual - that is engaged as a customer. + * @return engagedParty + **/ + @Schema(description = "The party - an organization or an individual - that is engaged as a customer.") + @NotNull + + @Valid + + public RelatedParty getEngagedParty() { + return engagedParty; + } + + public void setEngagedParty(RelatedParty engagedParty) { + this.engagedParty = engagedParty; + } + + public CustomerUpdate paymentMethod(List paymentMethod) { + this.paymentMethod = paymentMethod; + return this; + } + + public CustomerUpdate addPaymentMethodItem(PaymentMethodRef paymentMethodItem) { + if (this.paymentMethod == null) { + this.paymentMethod = new ArrayList<>(); + } + this.paymentMethod.add(paymentMethodItem); + return this; + } + + /** + * Get paymentMethod + * @return paymentMethod + **/ + @Schema(description = "") + + @Valid + + public List getPaymentMethod() { + return paymentMethod; + } + + public void setPaymentMethod(List paymentMethod) { + this.paymentMethod = paymentMethod; + } + + public CustomerUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public CustomerUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public CustomerUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The time period that the Customer is valid for. + * @return validFor + **/ + @Schema(description = "The time period that the Customer is valid for.") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public CustomerUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public CustomerUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public CustomerUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomerUpdate customerUpdate = (CustomerUpdate) o; + return Objects.equals(this.name, customerUpdate.name) && + Objects.equals(this.status, customerUpdate.status) && + Objects.equals(this.statusReason, customerUpdate.statusReason) && + Objects.equals(this.account, customerUpdate.account) && + Objects.equals(this.agreement, customerUpdate.agreement) && + Objects.equals(this.characteristic, customerUpdate.characteristic) && + Objects.equals(this.contactMedium, customerUpdate.contactMedium) && + Objects.equals(this.creditProfile, customerUpdate.creditProfile) && + Objects.equals(this.engagedParty, customerUpdate.engagedParty) && + Objects.equals(this.paymentMethod, customerUpdate.paymentMethod) && + Objects.equals(this.relatedParty, customerUpdate.relatedParty) && + Objects.equals(this.validFor, customerUpdate.validFor) && + Objects.equals(this.baseType, customerUpdate.baseType) && + Objects.equals(this.schemaLocation, customerUpdate.schemaLocation) && + Objects.equals(this.type, customerUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(name, status, statusReason, account, agreement, characteristic, contactMedium, creditProfile, engagedParty, paymentMethod, relatedParty, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CustomerUpdate {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" statusReason: ").append(toIndentedString(statusReason)).append("\n"); + sb.append(" account: ").append(toIndentedString(account)).append("\n"); + sb.append(" agreement: ").append(toIndentedString(agreement)).append("\n"); + sb.append(" characteristic: ").append(toIndentedString(characteristic)).append("\n"); + sb.append(" contactMedium: ").append(toIndentedString(contactMedium)).append("\n"); + sb.append(" creditProfile: ").append(toIndentedString(creditProfile)).append("\n"); + sb.append(" engagedParty: ").append(toIndentedString(engagedParty)).append("\n"); + sb.append(" paymentMethod: ").append(toIndentedString(paymentMethod)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/cm629/model/EntityRef.java b/src/main/java/org/etsi/osl/tmf/cm629/model/EntityRef.java new file mode 100644 index 0000000..829e637 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/model/EntityRef.java @@ -0,0 +1,252 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Entity reference schema to be use for all entityRef class. + */ +@Schema(description = "Entity reference schema to be use for all entityRef class.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +public class EntityRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public EntityRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EntityRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public EntityRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public EntityRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public EntityRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public EntityRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public EntityRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntityRef entityRef = (EntityRef) o; + return Objects.equals(this.id, entityRef.id) && + Objects.equals(this.href, entityRef.href) && + Objects.equals(this.name, entityRef.name) && + Objects.equals(this.baseType, entityRef.baseType) && + Objects.equals(this.schemaLocation, entityRef.schemaLocation) && + Objects.equals(this.type, entityRef.type) && + Objects.equals(this.referredType, entityRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntityRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/cm629/model/Error.java b/src/main/java/org/etsi/osl/tmf/cm629/model/Error.java new file mode 100644 index 0000000..aa600a5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/model/Error.java @@ -0,0 +1,278 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx) + */ +@Schema(description = "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +public class Error { + @JsonProperty("code") + private String code = null; + + @JsonProperty("reason") + private String reason = null; + + @JsonProperty("message") + private String message = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("referenceError") + private String referenceError = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Error code(String code) { + this.code = code; + return this; + } + + /** + * Application relevant detail, defined in the API or a common list. + * @return code + **/ + @Schema(description = "Application relevant detail, defined in the API or a common list.") + @NotNull + + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public Error reason(String reason) { + this.reason = reason; + return this; + } + + /** + * Explanation of the reason for the error which can be shown to a client user. + * @return reason + **/ + @Schema(description = "Explanation of the reason for the error which can be shown to a client user.") + @NotNull + + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public Error message(String message) { + this.message = message; + return this; + } + + /** + * More details and corrective actions related to the error which can be shown to a client user. + * @return message + **/ + @Schema(description = "More details and corrective actions related to the error which can be shown to a client user.") + + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Error status(String status) { + this.status = status; + return this; + } + + /** + * HTTP Error code extension + * @return status + **/ + @Schema(description = "HTTP Error code extension") + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Error referenceError(String referenceError) { + this.referenceError = referenceError; + return this; + } + + /** + * URI of documentation describing the error. + * @return referenceError + **/ + @Schema(description = "URI of documentation describing the error.") + + + public String getReferenceError() { + return referenceError; + } + + public void setReferenceError(String referenceError) { + this.referenceError = referenceError; + } + + public Error baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class. + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class.") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public Error schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Error type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name. + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name.") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Error error = (Error) o; + return Objects.equals(this.code, error.code) && + Objects.equals(this.reason, error.reason) && + Objects.equals(this.message, error.message) && + Objects.equals(this.status, error.status) && + Objects.equals(this.referenceError, error.referenceError) && + Objects.equals(this.baseType, error.baseType) && + Objects.equals(this.schemaLocation, error.schemaLocation) && + Objects.equals(this.type, error.type); + } + + @Override + public int hashCode() { + return Objects.hash(code, reason, message, status, referenceError, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Error {\n"); + + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" referenceError: ").append(toIndentedString(referenceError)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/cm629/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/cm629/model/EventSubscription.java new file mode 100644 index 0000000..5de3d45 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/model/EventSubscription.java @@ -0,0 +1,153 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +public class EventSubscription { + @JsonProperty("id") + private String id = null; + + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscription id(String id) { + this.id = id; + return this; + } + + /** + * Id of the listener + * @return id + **/ + @Schema(description = "Id of the listener") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EventSubscription callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscription query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscription eventSubscription = (EventSubscription) o; + return Objects.equals(this.id, eventSubscription.id) && + Objects.equals(this.callback, eventSubscription.callback) && + Objects.equals(this.query, eventSubscription.query); + } + + @Override + public int hashCode() { + return Objects.hash(id, callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscription {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/cm629/model/EventSubscriptionInput.java b/src/main/java/org/etsi/osl/tmf/cm629/model/EventSubscriptionInput.java new file mode 100644 index 0000000..2ebea79 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/model/EventSubscriptionInput.java @@ -0,0 +1,127 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") + +public class EventSubscriptionInput { + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscriptionInput callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscriptionInput query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscriptionInput eventSubscriptionInput = (EventSubscriptionInput) o; + return Objects.equals(this.callback, eventSubscriptionInput.callback) && + Objects.equals(this.query, eventSubscriptionInput.query); + } + + @Override + public int hashCode() { + return Objects.hash(callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscriptionInput {\n"); + + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/cm629/repo/CustomerRepository.java b/src/main/java/org/etsi/osl/tmf/cm629/repo/CustomerRepository.java new file mode 100644 index 0000000..0f8f9fd --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/repo/CustomerRepository.java @@ -0,0 +1,40 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.cm629.model.Customer; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + +@Repository +public interface CustomerRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + Iterable findByName( String name); + + List findByOrderByName(); + +} diff --git a/src/main/java/org/etsi/osl/tmf/cm629/service/CustomerRepoService.java b/src/main/java/org/etsi/osl/tmf/cm629/service/CustomerRepoService.java new file mode 100644 index 0000000..0b06ba7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/cm629/service/CustomerRepoService.java @@ -0,0 +1,152 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.cm629.service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.etsi.osl.tmf.cm629.api.CustomerApiRouteBuilder; +import org.etsi.osl.tmf.cm629.model.Customer; +import org.etsi.osl.tmf.cm629.model.CustomerAttributeValueChangeEvent; +import org.etsi.osl.tmf.cm629.model.CustomerAttributeValueChangeEventPayload; +import org.etsi.osl.tmf.cm629.model.CustomerCreate; +import org.etsi.osl.tmf.cm629.model.CustomerCreateEvent; +import org.etsi.osl.tmf.cm629.model.CustomerCreateEventPayload; +import org.etsi.osl.tmf.cm629.model.CustomerUpdate; +import org.etsi.osl.tmf.cm629.repo.CustomerRepository; +import org.etsi.osl.tmf.pm632.model.ContactMedium; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import jakarta.validation.Valid; + + +@Service +@Transactional +public class CustomerRepoService { + + @Autowired + CustomerRepository customerRepository; + + @Autowired + CustomerApiRouteBuilder customerApiRouteBuilder; + + public List findAll() { + return (List) this.customerRepository.findByOrderByName(); + } + + public Customer addCustomer(@Valid CustomerCreate customer) { + Customer c = new Customer(); + c = updateCustomerData(c, customer); + c = customerRepository.save(c); + raiseCustomerCreate( c ); + return c; + } + + public Customer updateCustomer(String id, @Valid CustomerUpdate customer) { + Customer c = this.findByUuid(id); + if ( c == null) { + return null; + } + c = this.updateCustomerData(c, customer); + c = this.customerRepository.save(c); + raiseCustomerChanged(c); + return c; + } + + private Customer findByUuid(String id) { + Optional optionalCat = this.customerRepository.findByUuid(id); + return optionalCat.orElse(null); + } + + private Customer updateCustomerData(Customer c, @Valid CustomerUpdate custUpd) { + + if ( custUpd.getName()!=null) { + c.setName( custUpd.getName() ); + } + + if ( custUpd.getEngagedParty() !=null) { + if ( ( c.getEngagedParty() ==null ) || ( c.getEngagedParty().getId() != custUpd.getEngagedParty().getId() ) ) { + // TODO: we msut load here the proper organization + c.setEngagedParty( new RelatedParty( custUpd.getEngagedParty() ) ); + } + } + + if ( custUpd.getContactMedium() !=null) { + //reattach fromDB + Map idAddedUpdated = new HashMap<>(); + + for (ContactMedium cmUpd : custUpd.getContactMedium()) { + //find by id and reload it here. + boolean idexists = false; + for (ContactMedium originalCm : c.getContactMedium()) { + if ( ( originalCm.getUuid()!=null ) && originalCm.getUuid().equals(cmUpd.getUuid() ) ) { + idexists = true; + idAddedUpdated.put( originalCm.getUuid(), true); + originalCm.updateWith( cmUpd ); + break; + } + } + if (!idexists) { + c.addContactMediumItem( cmUpd ); + } + + } + } + + return c; + } + + public Customer findById(String id) { + Optional c = this.customerRepository.findByUuid(id); + return c.orElse(null); + } + + public Void deleteById(String id) { + Optional c = this.customerRepository.findByUuid(id); + this.customerRepository.delete( c.get()); + return null; + } + + + private void raiseCustomerCreate(Customer c) { + + CustomerCreateEvent ce = new CustomerCreateEvent(); + CustomerCreateEventPayload event = new CustomerCreateEventPayload(); + event.setCustomer(c); + ce.setEvent(event); + customerApiRouteBuilder.publishEvent( ce, c.getId() ); + + } + + + private void raiseCustomerChanged(Customer c) { + + CustomerAttributeValueChangeEvent ce = new CustomerAttributeValueChangeEvent(); + CustomerAttributeValueChangeEventPayload event = new CustomerAttributeValueChangeEventPayload(); + event.setCustomer(c); + ce.setEvent(event); + customerApiRouteBuilder.publishEvent( ce, c.getId() ); + + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/Any.java b/src/main/java/org/etsi/osl/tmf/common/model/Any.java new file mode 100644 index 0000000..ed5751d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/Any.java @@ -0,0 +1,158 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model; + +import java.util.Objects; + +import org.springframework.validation.annotation.Validated; + +import jakarta.persistence.Column; +import jakarta.persistence.Embeddable; +import jakarta.persistence.Lob; + +/** + * Any + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Embeddable +public class Any { + + + @Lob + @Column( columnDefinition = "LONGTEXT") + private String value; + + /** + * provides a meaning to the value. useful in enumerations + */ + private String alias; + + public Any() { + super(); + } + + + public Any(String value) { + super(); + this.value = value; + } + + public Any(String value, String alias) { + super(); + this.value = value; + this.alias = alias; + } + + public Any(long value, String alias) { + super(); + this.value = value+""; + this.alias = alias; + } + + public Any(int value, String alias) { + super(); + this.value = value+""; + this.alias = alias; + } + + public Any(int value) { + super(); + this.value = value+""; + this.alias = ""; + } + + public Any(Any anyval) { + + if (anyval != null) { + this.value = anyval.value; + this.alias = anyval.alias; + + } + } + + + /** + * @return the value + */ + public String getValue() { + return value; + } + + /** + * @param value the value to set + */ + public void setValue(String value) { + this.value = value; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + Any a = (Any) o; + + return Objects.equals(this.value, a.value) + && Objects.equals(this.alias, a.alias ); + } + + @Override + public int hashCode() { + return Objects.hash(); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Any {\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" alias: ").append(toIndentedString(alias)).append("\n"); + + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public String getAlias() { + return alias; + } + + + public void setAlias(String alias) { + this.alias = alias; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/Attachment.java b/src/main/java/org/etsi/osl/tmf/common/model/Attachment.java new file mode 100644 index 0000000..0e5e267 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/Attachment.java @@ -0,0 +1,294 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Lob; +import jakarta.validation.Valid; + +/** + * Complements the description of an element (for instance a product) through + * video, pictures... + */ +@Schema(description = "Complements the description of an element (for instance a product) through video, pictures...") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Entity(name = "Attachment") +public class Attachment extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("attachmentType") + private String attachmentType = null; + + @Lob + @Column(name = "LCONTENT", columnDefinition = "LONGTEXT") + @JsonProperty("content") + private String content = null; + + @Lob + @Column(name = "LDESCRIPTION", columnDefinition = "LONGTEXT") + @JsonProperty("description") + private String description = null; + + @JsonProperty("mimeType") + private String mimeType = null; + + @JsonProperty("url") + private String url = null; + + @JsonProperty("size") + private Quantity size = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + /** + * Unique identifier for this particular attachment + * + * @return id + **/ + @Schema(description = "Unique identifier for this particular attachment") + + /** + * @return the id + */ + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + public Attachment attachmentType(String attachmentType) { + this.attachmentType = attachmentType; + return this; + } + + /** + * Attachment type such as video, picture + * + * @return attachmentType + **/ + @Schema(description = "Attachment type such as video, picture") + + public String getAttachmentType() { + return attachmentType; + } + + public void setAttachmentType(String attachmentType) { + this.attachmentType = attachmentType; + } + + public Attachment content(String content) { + this.content = content; + return this; + } + + /** + * The actual contents of the attachment object, if embedded, encoded as base64 + * + * @return content + **/ + @Schema(description = "The actual contents of the attachment object, if embedded, encoded as base64") + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public Attachment description(String description) { + this.description = description; + return this; + } + + /** + * A narrative text describing the content of the attachment + * + * @return description + **/ + @Schema(description = "A narrative text describing the content of the attachment") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Attachment mimeType(String mimeType) { + this.mimeType = mimeType; + return this; + } + + /** + * Attachment mime type such as extension file for video, picture and document + * + * @return mimeType + **/ + @Schema(description = "Attachment mime type such as extension file for video, picture and document") + + public String getMimeType() { + return mimeType; + } + + public void setMimeType(String mimeType) { + this.mimeType = mimeType; + } + + public Attachment url(String url) { + this.url = url; + return this; + } + + /** + * Uniform Resource Locator, is a web page address (a subset of URI) + * + * @return url + **/ + @Schema(description = "Uniform Resource Locator, is a web page address (a subset of URI)") + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public Attachment size(Quantity size) { + this.size = size; + return this; + } + + /** + * The size of the attachment. + * + * @return size + **/ + @Schema(description = "The size of the attachment.") + + @Valid + + public Quantity getSize() { + return size; + } + + public void setSize(Quantity size) { + this.size = size; + } + + public Attachment validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period of time for which the attachment is valid + * + * @return validFor + **/ + @Schema(description = "The period of time for which the attachment is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Attachment attachment = (Attachment) o; + return Objects.equals(this.id, attachment.id) && Objects.equals(this.uuid, attachment.uuid) + && Objects.equals(this.href, attachment.href) + && Objects.equals(this.attachmentType, attachment.attachmentType) + && Objects.equals(this.content, attachment.content) + && Objects.equals(this.description, attachment.description) + && Objects.equals(this.mimeType, attachment.mimeType) && Objects.equals(this.name, attachment.name) + && Objects.equals(this.url, attachment.url) && Objects.equals(this.size, attachment.size) + && Objects.equals(this.validFor, attachment.validFor) + && Objects.equals(this.baseType, attachment.baseType) + && Objects.equals(this.schemaLocation, attachment.schemaLocation) + && Objects.equals(this.type, attachment.type); + } + + @Override + public int hashCode() { + return Objects.hash(uuid, id, href, attachmentType, content, description, mimeType, name, url, size, validFor, + baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Attachment {\n"); + + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" attachmentType: ").append(toIndentedString(attachmentType)).append("\n"); + sb.append(" content: ").append(toIndentedString(content)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" mimeType: ").append(toIndentedString(mimeType)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" size: ").append(toIndentedString(size)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/AttachmentRef.java b/src/main/java/org/etsi/osl/tmf/common/model/AttachmentRef.java new file mode 100644 index 0000000..a46b153 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/AttachmentRef.java @@ -0,0 +1,213 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * Attachment reference. An attachment complements the description of an element + * (for instance a product) through video, pictures + */ +@Schema(description = "Attachment reference. An attachment complements the description of an element (for instance a product) through video, pictures") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Entity(name = "AttachmentRef") +public class AttachmentRef extends BaseRootNamedEntity { + + + @JsonProperty("id") + protected String id = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("url") + private String url = null; + + + + @JsonProperty("@referredType") + private String referredType = null; + + + public AttachmentRef() { + } + + public AttachmentRef(AttachmentRef src) { + description = src.description; + url = src.url; + id = src.id; + } + + public AttachmentRef description(String description) { + this.description = description; + return this; + } + + + + /** + * A narrative text describing the content of the attachment + * + * @return description + **/ + @Schema(description = "A narrative text describing the content of the attachment") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public AttachmentRef url(String url) { + this.url = url; + return this; + } + + /** + * Link to the attachment media/content + * + * @return url + **/ + @Schema(description = "Link to the attachment media/content") + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public AttachmentRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + /** + * @return the uuid + */ + public String getUuid() { + return uuid; + } + + /** + * @param uuid + * the uuid to set + */ + public void setUuid(String uuid) { + this.uuid = uuid; + } + + /** + * @return the id + */ + public String getId() { + return id; + } + + /** + * @param id + * the id to set + */ + public void setId(String id) { + this.id = id; + } + + /** + * @return the href + */ + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AttachmentRef attachmentRef = (AttachmentRef) o; + return Objects.equals(this.id, attachmentRef.id) && Objects.equals(this.href, attachmentRef.href) + && Objects.equals(this.description, attachmentRef.description) + && Objects.equals(this.url, attachmentRef.url) && Objects.equals(this.baseType, attachmentRef.baseType) + && Objects.equals(this.schemaLocation, attachmentRef.schemaLocation) + && Objects.equals(this.type, attachmentRef.type) + && Objects.equals(this.referredType, attachmentRef.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, description, url, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AttachmentRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/AttachmentRefOrValue.java b/src/main/java/org/etsi/osl/tmf/common/model/AttachmentRefOrValue.java new file mode 100644 index 0000000..d3473b5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/AttachmentRefOrValue.java @@ -0,0 +1,317 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Lob; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * An attachment by value or by reference. An attachment complements the + * description of an element, for example through a document, a video, a + * picture. + */ +@Schema(description = "An attachment by value or by reference. An attachment complements the description of an element, for example through a document, a video, a picture.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Entity(name = "AttachmentRefOrValue") +@Table(name = "AttachmentRefOrValue") +public class AttachmentRefOrValue extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("attachmentType") + private String attachmentType = null; + + @JsonProperty("content") + private String content = null; + + @Lob + @Column(name = "LDESCRIPTION", columnDefinition = "LONGTEXT") + @JsonProperty("description") + private String description = null; + + @JsonProperty("mimeType") + private String mimeType = null; + + @JsonProperty("url") + private String url = null; + + @JsonProperty("size") + private Quantity size = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + /** + * Unique identifier for this particular attachment + * + * @return id + **/ + @Schema(example = "4aafacbd-11ff-4dc8-b445-305f2215715f", description = "Unique identifier for this particular attachment") + + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AttachmentRefOrValue attachmentType(String attachmentType) { + this.attachmentType = attachmentType; + return this; + } + + /** + * Attachment type such as video, picture + * + * @return attachmentType + **/ + @Schema(example = "video", description = "Attachment type such as video, picture") + + public String getAttachmentType() { + return attachmentType; + } + + public void setAttachmentType(String attachmentType) { + this.attachmentType = attachmentType; + } + + public AttachmentRefOrValue content(String content) { + this.content = content; + return this; + } + + /** + * The actual contents of the attachment object, if embedded, encoded as base64 + * + * @return content + **/ + @Schema(description = "The actual contents of the attachment object, if embedded, encoded as base64") + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public AttachmentRefOrValue description(String description) { + this.description = description; + return this; + } + + /** + * A narrative text describing the content of the attachment + * + * @return description + **/ + @Schema(example = "Photograph of the Product", description = "A narrative text describing the content of the attachment") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public AttachmentRefOrValue mimeType(String mimeType) { + this.mimeType = mimeType; + return this; + } + + /** + * Attachment mime type such as extension file for video, picture and document + * + * @return mimeType + **/ + @Schema(description = "Attachment mime type such as extension file for video, picture and document") + + public String getMimeType() { + return mimeType; + } + + public void setMimeType(String mimeType) { + this.mimeType = mimeType; + } + + public AttachmentRefOrValue url(String url) { + this.url = url; + return this; + } + + /** + * Uniform Resource Locator, is a web page address (a subset of URI) + * + * @return url + **/ + @Schema(example = "http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f", description = "Uniform Resource Locator, is a web page address (a subset of URI)") + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public AttachmentRefOrValue size(Quantity size) { + this.size = size; + return this; + } + + /** + * Get size + * + * @return size + **/ + @Schema(description = "") + + @Valid + public Quantity getSize() { + return size; + } + + public void setSize(Quantity size) { + this.size = size; + } + + public AttachmentRefOrValue validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public AttachmentRefOrValue _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AttachmentRefOrValue attachmentRefOrValue = (AttachmentRefOrValue) o; + return Objects.equals(this.id, attachmentRefOrValue.id) && Objects.equals(this.href, attachmentRefOrValue.href) + && Objects.equals(this.attachmentType, attachmentRefOrValue.attachmentType) + && Objects.equals(this.content, attachmentRefOrValue.content) + && Objects.equals(this.description, attachmentRefOrValue.description) + && Objects.equals(this.mimeType, attachmentRefOrValue.mimeType) + && Objects.equals(this.name, attachmentRefOrValue.name) + && Objects.equals(this.url, attachmentRefOrValue.url) + && Objects.equals(this.size, attachmentRefOrValue.size) + && Objects.equals(this.validFor, attachmentRefOrValue.validFor) + && Objects.equals(this.baseType, attachmentRefOrValue.baseType) + && Objects.equals(this.schemaLocation, attachmentRefOrValue.schemaLocation) + && Objects.equals(this.type, attachmentRefOrValue.type) + && Objects.equals(this._atReferredType, attachmentRefOrValue._atReferredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, attachmentType, content, description, mimeType, name, url, size, validFor, baseType, schemaLocation, type, _atReferredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AttachmentRefOrValue {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" attachmentType: ").append(toIndentedString(attachmentType)).append("\n"); + sb.append(" content: ").append(toIndentedString(content)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" mimeType: ").append(toIndentedString(mimeType)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" size: ").append(toIndentedString(size)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/BaseEntity.java b/src/main/java/org/etsi/osl/tmf/common/model/BaseEntity.java new file mode 100644 index 0000000..0b76935 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/BaseEntity.java @@ -0,0 +1,272 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Inheritance; +import jakarta.persistence.InheritanceType; +import jakarta.persistence.Lob; +import jakarta.validation.Valid; + + + +/** + * + * basic entity that defines common attributes of the model + * @author ctranoris + * + */ +@Entity(name = "BaseEntity") +@Inheritance( strategy = InheritanceType.TABLE_PER_CLASS ) +public class BaseEntity extends BaseRootNamedEntity{ + + + @Lob + @Column(name = "LDESCRIPTION", columnDefinition = "LONGTEXT") + @JsonProperty("description") + protected String description = null; + + protected OffsetDateTime lastUpdate = null; + + @JsonProperty("lifecycleStatus") + protected String lifecycleStatus = ELifecycle.IN_STUDY.getValue(); + + + @JsonProperty("version") + protected String version = null; + + @JsonProperty("validFor") + protected TimePeriod validFor = null; + + + public BaseEntity() { + super(); + this.baseType = "BaseRootEntity"; + this.type = "BaseEntity"; + } + + + public BaseEntity description(String description) { + this.description = description; + return this; + } + + /** + * Description of this catalog + * + * @return description + **/ + @Schema(description = "Description of this catalog") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public BaseEntity lastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + + /** + * Date and time of the last update + * + * @return lastUpdate + **/ + @Schema(description = "Date and time of the last update") + + @Valid + + @JsonProperty("lastUpdate") + public String getLastUpdateString() { + if ( this.lastUpdate != null ) { + return this.lastUpdate.toString(); + } else { + return null; + } + } + + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + public void setLastUpdate (String lastUpdate) { + + if ( lastUpdate!= null) { + this.lastUpdate = OffsetDateTime.parse( lastUpdate ); + } else { + this.lastUpdate = OffsetDateTime.now(); + } + } + + + public BaseEntity lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Used to indicate the current lifecycle status + * + * @return lifecycleStatus + **/ + @Schema(description = "Used to indicate the current lifecycle status") + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public void setLifecycleStatusEnum( ELifecycle alifecycleStatus) { + this.lifecycleStatus = alifecycleStatus.getValue(); + } + + + public BaseEntity version(String version) { + this.version = version; + return this; + } + + /** + * Entity version + * + * @return version + **/ + @Schema(description = "Entity version") + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + + /** + * The period for which the entity is valid + * + * @return validFor + **/ + @Schema(description = "The period for which the entity is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BaseEntity Entity = (BaseEntity) o; + return Objects.equals(this.uuid, Entity.uuid) && Objects.equals(this.href, Entity.href) + && Objects.equals(this.description, Entity.description) + && Objects.equals(this.lastUpdate, Entity.lastUpdate) + && Objects.equals(this.lifecycleStatus, Entity.lifecycleStatus) + && Objects.equals(this.name, Entity.name) + && Objects.equals(this.version, Entity.version) + && Objects.equals(this.validFor, Entity.validFor) + && Objects.equals(this.baseType, Entity.baseType) + && Objects.equals(this.schemaLocation, Entity.schemaLocation) + && Objects.equals(this.type, Entity.type); + } + + @Override + public int hashCode() { + return Objects.hash(uuid, href, description, lastUpdate, lifecycleStatus, name, + version, + validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Entity {\n"); + + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + + public void copyFromObj(BaseEntity be) { + super.copyFromObj(be); + this.description = be.description; + this.lastUpdate = be.lastUpdate; + this.lifecycleStatus = be.lifecycleStatus; + this.version = be.version; + if ( this.validFor != null) { + this.validFor.copyFromObj(be.validFor); + } + + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/BaseRootEntity.java b/src/main/java/org/etsi/osl/tmf/common/model/BaseRootEntity.java new file mode 100644 index 0000000..564fcad --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/BaseRootEntity.java @@ -0,0 +1,209 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.hibernate.annotations.GenericGenerator; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.Inheritance; +import jakarta.persistence.InheritanceType; + +/** + * + * basic root entity that defines common attributes of the model + * + * @author ctranoris + * + */ +@Entity(name = "BaseRootEntity") +@Inheritance( strategy = InheritanceType.TABLE_PER_CLASS ) +public class BaseRootEntity { + + @Id + @GeneratedValue(generator = "uuid") + @GenericGenerator(name = "uuid", strategy = "uuid2") + protected String uuid = null; + + @JsonProperty("@baseType") + protected String baseType = "BaseEntity"; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + + @JsonProperty("@type") + protected String type = null; + + + + @JsonProperty("href") + protected String href = null; + + + + + /** + * @return the uuid + */ + public String getUuid() { + return uuid; + } + + /** + * @param uuid the uuid to set + */ + public void setUuid(String uuid) { + this.uuid = uuid; + } + + + public BaseRootEntity baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + + + + /** + * Unique reference of the entity + * + * @return href + **/ + @Schema(description = "Unique reference of the entity") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public BaseRootEntity schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BaseRootEntity Entity = (BaseRootEntity) o; + return Objects.equals(this.uuid, Entity.uuid) + && Objects.equals(this.baseType, Entity.baseType) + && Objects.equals(this.schemaLocation, Entity.schemaLocation); + } + +// @Override +// public int hashCode() { +// return Objects.hash(uuid, +// +// baseType, schemaLocation); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Entity {\n"); + + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + public void copyFromObj(BaseRootEntity be) { + this.uuid = be.uuid; + this.baseType = be.baseType; + this.schemaLocation = be.schemaLocation; + this.type = be.type; + + } + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * @return the type + */ + public String getType() { + return type; + } + + /** + * @param type the type to set + */ + public void setType(String type) { + this.type = type; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/BaseRootNamedEntity.java b/src/main/java/org/etsi/osl/tmf/common/model/BaseRootNamedEntity.java new file mode 100644 index 0000000..b7f8aba --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/BaseRootNamedEntity.java @@ -0,0 +1,131 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Index; +import jakarta.persistence.Inheritance; +import jakarta.persistence.InheritanceType; +import jakarta.persistence.Table; + +/** + * + * basic root entity that defines common attributes of the model + * + * @author ctranoris + * + */ +@Entity( name = "BaseRootNamedEntity") +@Inheritance( strategy = InheritanceType.TABLE_PER_CLASS ) +@Table( indexes = {@Index(name = "IX_NAME", columnList = "name")} ) +public class BaseRootNamedEntity extends BaseRootEntity{ + + + @JsonProperty("name") + protected String name = null; + + + + + + public BaseRootNamedEntity name(String name) { + this.name = name; + return this; + } + + /** + * Name of the entity + * + * @return name + **/ + @Schema(description = "Name of the entity") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BaseRootNamedEntity Entity = (BaseRootNamedEntity) o; + return Objects.equals(this.uuid, Entity.uuid) && Objects.equals(this.href, Entity.href) + && Objects.equals(this.name, Entity.name) + && Objects.equals(this.baseType, Entity.baseType) + && Objects.equals(this.schemaLocation, Entity.schemaLocation); + } + + @Override + public int hashCode() { + return Objects.hash(uuid, href, name, + + baseType, schemaLocation); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Entity {\n"); + + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + public void copyFromObj(BaseRootNamedEntity be) { + this.uuid = be.uuid; + this.name = be.name; + this.href = be.href; + this.baseType = be.baseType; + this.schemaLocation = be.schemaLocation; + this.type = be.type; + + } + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/ELifecycle.java b/src/main/java/org/etsi/osl/tmf/common/model/ELifecycle.java new file mode 100644 index 0000000..ba2fb4c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/ELifecycle.java @@ -0,0 +1,55 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model; + + +public enum ELifecycle { + + IN_STUDY("In study"), + IN_DESIGN("In design"), + IN_TEST("In test"), + ACTIVE("Active"), + LAUNCHED("Launched"), + RETIRED("Retired"), + OBSOLETE("Obsolete"), + REJECTED("Rejected"); + + + private String value; + + ELifecycle(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return this.getValue(); + } + + public static ELifecycle getEnum(String value) { + for(ELifecycle v : values()) + if(v.getValue().equalsIgnoreCase(value)) return v; + throw new IllegalArgumentException(); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/EValueType.java b/src/main/java/org/etsi/osl/tmf/common/model/EValueType.java new file mode 100644 index 0000000..d8cb3f8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/EValueType.java @@ -0,0 +1,61 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model; + + +public enum EValueType { + + INTEGER("INTEGER"), + SMALLINT("SMALLINT"), + lONGINT("LONGINT"), + FLOAT("FLOAT"), + BINARY("BINARY"), + BOOLEAN("BOOLEAN"), + ARRAY("ARRAY"), + SET("SET"), + TEXT("TEXT"), + LONGTEXT("LONGTEXT"), + ENUM("ENUM"), + TIMESTAMP("TIMESTAMP"), + MAP("MAP"), + OBJECT("OBJECT"); + + + private String value; + + EValueType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return this.getValue(); + } + + public static EValueType getEnum(String value) { + for(EValueType v : values()) + if(v.getValue().equalsIgnoreCase(value)) return v; + throw new IllegalArgumentException(); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/Notification.java b/src/main/java/org/etsi/osl/tmf/common/model/Notification.java new file mode 100644 index 0000000..8d0c38c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/Notification.java @@ -0,0 +1,223 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model; + +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.Objects; +import java.util.UUID; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + * + * @author ctranoris + * + */ +@Schema(description = "The notification data structure") +@Validated + +public class Notification { + @JsonProperty("eventId") + protected String eventId = UUID.randomUUID().toString(); + + protected OffsetDateTime eventTime = OffsetDateTime.now(ZoneOffset.UTC); + + @JsonProperty("eventType") + protected String eventType = null; + + @JsonProperty("fieldPath") + protected String fieldPath = null; + + @JsonProperty("resourcePath") + protected String resourcePath = null; + + + + public Notification() { + super(); + } + + + public Notification eventId() { + return this; + } + + + public Notification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification + * + * @return eventId + **/ + @Schema(description = "The identifier of the notification") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public Notification eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence + * + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence") + + @Valid + + @JsonProperty("eventTime") + public String getEventTimeString() { + return eventTime.toString(); + } + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public void setEventTime(String eventTime) { + if ( eventTime!= null ) { + this.eventTime = OffsetDateTime.parse( eventTime ); + } + } + + public Notification eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification + * + * @return eventType + **/ + @Schema(description = "The type of the notification") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public Notification fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification + * + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification") + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public Notification resourcePath(String resourcePath) { + this.resourcePath = resourcePath; + return this; + } + + /** + * The path identifying the resource object concerned by this notification + * + * @return resourcePath + **/ + @Schema(description = "The path identifying the resource object concerned by this notification") + + public String getResourcePath() { + return resourcePath; + } + + public void setResourcePath(String resourcePath) { + this.resourcePath = resourcePath; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Notification serviceOrderCreateNotification = (Notification) o; + return Objects.equals(this.eventId, serviceOrderCreateNotification.eventId) + && Objects.equals(this.eventTime, serviceOrderCreateNotification.eventTime) + && Objects.equals(this.eventType, serviceOrderCreateNotification.eventType) + && Objects.equals(this.fieldPath, serviceOrderCreateNotification.fieldPath) + && Objects.equals(this.resourcePath, serviceOrderCreateNotification.resourcePath); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceOrderCreateNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/OpensliceEvent.java b/src/main/java/org/etsi/osl/tmf/common/model/OpensliceEvent.java new file mode 100644 index 0000000..e4bb2a0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/OpensliceEvent.java @@ -0,0 +1,385 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model; + +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.Objects; +import java.util.UUID; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * This data structure is created as a generic one. This is similar to + * {@link Notification} class. Seems that TMF new versions have deprecated + * Notifications and use Event and EventPayload + * + * @author ctranoris + * + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-15T11:15:47.327930400+02:00[Europe/Athens]") +public class OpensliceEvent { + + @JsonProperty("id") + protected String id = UUID.randomUUID().toString();; + + @JsonProperty("href") + protected String href = null; + + @JsonProperty("eventId") + protected String eventId = UUID.randomUUID().toString();; + + protected OffsetDateTime eventTime = OffsetDateTime.now(ZoneOffset.UTC); + + @JsonProperty("eventType") + protected String eventType = null; + + @JsonProperty("correlationId") + protected String correlationId = null; + + @JsonProperty("domain") + protected String domain = null; + + @JsonProperty("title") + protected String title = null; + + @JsonProperty("description") + protected String description = null; + + @JsonProperty("priority") + protected String priority = null; + + protected OffsetDateTime timeOcurred = null; + + public OpensliceEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public OpensliceEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public OpensliceEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public OpensliceEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + @JsonProperty("eventTime") + public String getEventTimeString() { + return eventTime.toString(); + } + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public void setEventTime(String eventTime) { + if ( eventTime != null) { + this.eventTime = OffsetDateTime.parse( eventTime ); + + } + } + + public OpensliceEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public OpensliceEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public OpensliceEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public OpensliceEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public OpensliceEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public OpensliceEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public OpensliceEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + + @JsonProperty("timeOcurred") + public String getTimeOcurredString() { + return timeOcurred.toString(); + } + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + + public void setTimeOcurred(String timeOcurred) { + if ( timeOcurred != null) { + this.timeOcurred = OffsetDateTime.parse( timeOcurred ); + + } + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OpensliceEvent alarmCreateEvent = (OpensliceEvent) o; + return Objects.equals(this.id, alarmCreateEvent.id) && Objects.equals(this.href, alarmCreateEvent.href) + && Objects.equals(this.eventId, alarmCreateEvent.eventId) + && Objects.equals(this.eventTime, alarmCreateEvent.eventTime) + && Objects.equals(this.eventType, alarmCreateEvent.eventType) + && Objects.equals(this.correlationId, alarmCreateEvent.correlationId) + && Objects.equals(this.domain, alarmCreateEvent.domain) + && Objects.equals(this.title, alarmCreateEvent.title) + && Objects.equals(this.description, alarmCreateEvent.description) + && Objects.equals(this.priority, alarmCreateEvent.priority) + && Objects.equals(this.timeOcurred, alarmCreateEvent.timeOcurred); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, +// priority, timeOcurred, event); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlarmCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/Quantity.java b/src/main/java/org/etsi/osl/tmf/common/model/Quantity.java new file mode 100644 index 0000000..62dd4ce --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/Quantity.java @@ -0,0 +1,123 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Embeddable; + +/** + * An amount in a given unit + */ +@Schema(description = "An amount in a given unit") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Embeddable +public class Quantity { + @JsonProperty("amount") + private Float amount = 1.0f; + + @JsonProperty("units") + private String units = null; + + public Quantity amount(Float amount) { + this.amount = amount; + return this; + } + + /** + * Numeric value in a given unit + * @return amount + **/ + @Schema(description = "Numeric value in a given unit") + + public Float getAmount() { + return amount; + } + + public void setAmount(Float amount) { + this.amount = amount; + } + + public Quantity units(String units) { + this.units = units; + return this; + } + + /** + * Unit + * @return units + **/ + @Schema(description = "Unit") + + public String getUnits() { + return units; + } + + public void setUnits(String units) { + this.units = units; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Quantity quantity = (Quantity) o; + return Objects.equals(this.amount, quantity.amount) && + Objects.equals(this.units, quantity.units); + } + + @Override + public int hashCode() { + return Objects.hash(amount, units); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Quantity {\n"); + + sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append(" units: ").append(toIndentedString(units)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/TimePeriod.java b/src/main/java/org/etsi/osl/tmf/common/model/TimePeriod.java new file mode 100644 index 0000000..3f805c5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/TimePeriod.java @@ -0,0 +1,175 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model; + +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Embeddable; +import jakarta.validation.Valid; + +/** + * A period of time, either as a deadline (endDateTime only) a startDateTime + * only, or both + */ +@Schema(description = "A period of time, either as a deadline (endDateTime only) a startDateTime only, or both") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") +@Embeddable +public class TimePeriod { + private OffsetDateTime endDateTime = null; + + private OffsetDateTime startDateTime = null; + + public TimePeriod() { + this.setStartDateTime(OffsetDateTime.now(ZoneOffset.UTC) ); + this.setEndDateTime(OffsetDateTime.now(ZoneOffset.UTC).plusYears(20) ); + } + + public TimePeriod(TimePeriod src) { + this(); + if ( src!= null) { + this.setStartDateTime(src.getStartDateTime()); + this.setEndDateTime( src.getEndDateTime() ); + } + } + + public TimePeriod endDateTime(OffsetDateTime endDateTime) { + this.endDateTime = endDateTime; + return this; + } + + /** + * End of the time period, using IETC-RFC-3339 format + * + * @return endDateTime + **/ + @Schema(description = "End of the time period, using IETC-RFC-3339 format") + @Valid + @JsonProperty("endDateTime") + public String getEndDateTimeString() { + return endDateTime.toString(); + } + + public OffsetDateTime getEndDateTime() { + return endDateTime; + } + + public void setEndDateTime(OffsetDateTime endDateTime) { + this.endDateTime = endDateTime; + } + + public TimePeriod startDateTime(OffsetDateTime startDateTime) { + this.startDateTime = startDateTime; + return this; + } + + + public void setEndDateTime(String endDateTime) { + this.endDateTime = OffsetDateTime.parse( endDateTime ); + } + + + + + + /** + * Start of the time period, using IETC-RFC-3339 format. If you define a start, + * you must also define an end + * + * @return startDateTime + **/ + @Schema(description = "Start of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an end") + @Valid + @JsonProperty("startDateTime") + public String getStartDateTimeString() { + return startDateTime.toString(); + } + + public OffsetDateTime getStartDateTime() { + return startDateTime; + } + + + public void setStartDateTime(OffsetDateTime startDateTime) { + this.startDateTime = startDateTime; + } + + public void setStartDateTime(String startDateTime) { + if ( startDateTime!= null ) { + this.startDateTime = OffsetDateTime.parse( startDateTime ); + } + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimePeriod timePeriod = (TimePeriod) o; + return Objects.equals(this.endDateTime, timePeriod.endDateTime) + && Objects.equals(this.startDateTime, timePeriod.startDateTime); + } + + @Override + public int hashCode() { + return Objects.hash(endDateTime, startDateTime); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimePeriod {\n"); + + sb.append(" endDateTime: ").append(toIndentedString(endDateTime)).append("\n"); + sb.append(" startDateTime: ").append(toIndentedString(startDateTime)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public void copyFromObj(TimePeriod validFor) { + if (validFor != null) { + this.startDateTime = validFor.startDateTime; + this.endDateTime = validFor.endDateTime; + } + + } +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/UserAuthRoleType.java b/src/main/java/org/etsi/osl/tmf/common/model/UserAuthRoleType.java new file mode 100644 index 0000000..1077dc2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/UserAuthRoleType.java @@ -0,0 +1,58 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ + + +package org.etsi.osl.tmf.common.model; + +/** + * @author ctranoris + * different defined user roles + */ + +public enum UserAuthRoleType { + + ROLE_ADMIN("ADMIN"), + ROLE_USER("USER"); + + + + + private String value; + + UserAuthRoleType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return this.getValue(); + } + + public static UserAuthRoleType getEnum(String value) { + for(UserAuthRoleType v : values()) + if(v.getValue().equalsIgnoreCase(value)) return v; + throw new IllegalArgumentException(); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/UserPartRoleType.java b/src/main/java/org/etsi/osl/tmf/common/model/UserPartRoleType.java new file mode 100644 index 0000000..a88f5cf --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/UserPartRoleType.java @@ -0,0 +1,59 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ + + +package org.etsi.osl.tmf.common.model; + +/** + * @author ctranoris + * different defined user party roles + */ + +public enum UserPartRoleType { + + OWNER("OWNER"), + REQUESTER("REQUESTER"), + ORGANIZATION("ORGANIZATION"); + + + + + private String value; + + UserPartRoleType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return this.getValue(); + } + + public static UserPartRoleType getEnum(String value) { + for(UserPartRoleType v : values()) + if(v.getValue().equalsIgnoreCase(value)) return v; + throw new IllegalArgumentException(); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/service/Characteristic.java b/src/main/java/org/etsi/osl/tmf/common/model/service/Characteristic.java new file mode 100644 index 0000000..3b2dfaf --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/service/Characteristic.java @@ -0,0 +1,153 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model.service; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Describes a given characteristic of an object or entity through a name/value pair. + */ +@Schema(description = "Describes a given characteristic of an object or entity through a name/value pair.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +@Entity(name = "ServiceRestrictionCharacteristic") +public class Characteristic extends BaseRootNamedEntity { + @JsonProperty("valueType") + private String valueType = null; + + private Any value = null; + + + + public Characteristic valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * Data type of the value of the characteristic + * @return valueType + **/ + @Schema(description = "Data type of the value of the characteristic") + + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public Characteristic value(Any value) { + this.value = value; + return this; + } + + /** + * The value of the characteristic + * @return value + **/ + @Schema(description = "The value of the characteristic") + @NotNull + + @Valid + + + @JsonProperty("value") + public Object getValueAsString() { + + if ( ( this.value != null) && ( this.valueType != null) && (this.valueType.equalsIgnoreCase("string") )) { + if ( ( this.value.getAlias() == null) || this.value.getAlias().equals("") ) { + return this.value.getValue(); + } + } + return value; + } + + public Any getValue() { + return value; + } + + public void setValue(Any value) { + this.value = value; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Characteristic characteristic = (Characteristic) o; + return Objects.equals(this.name, characteristic.name) && + Objects.equals(this.valueType, characteristic.valueType) && + Objects.equals(this.value, characteristic.value) && + Objects.equals(this.baseType, characteristic.baseType) && + Objects.equals(this.schemaLocation, characteristic.schemaLocation) && + Objects.equals(this.type, characteristic.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(name, valueType, value, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Characteristic {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/common/model/service/Note.java b/src/main/java/org/etsi/osl/tmf/common/model/service/Note.java new file mode 100644 index 0000000..eed23b7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/service/Note.java @@ -0,0 +1,205 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model.service; + +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Lob; +import jakarta.validation.Valid; + +/** + * Extra information about a given entity + */ +@Schema(description = "Extra information about a given entity") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") +@Entity(name = "Note") +public class Note extends BaseRootEntity { + @JsonProperty("author") + private String author = null; + + private OffsetDateTime date = null; + + @JsonProperty("system") + private String system = null; + + @Lob + @Column(name = "LTEXT", columnDefinition = "LONGTEXT") + @JsonProperty("text") + private String text = null; + + public Note author(String author) { + this.author = author; + return this; + } + + /** + * Author of the note + * + * @return author + **/ + @Schema(description = "Author of the note") + + public String getAuthor() { + return author; + } + + public void setAuthor(String author) { + this.author = author; + } + + public Note date(OffsetDateTime date) { + this.date = date; + return this; + } + + /** + * Date of the note + * + * @return date + **/ + @Schema(description = "Date of the note") + + @Valid + + @JsonProperty("date") + public String getDateString() { + if (this.date == null) { + return null; + } + return this.date.toString(); + } + + public OffsetDateTime getDate() { + return date; + } + + public void setDate(String adate) { + if (adate!=null) { + this.date = OffsetDateTime.parse( adate ); + + } + } + + + + public void setDate(OffsetDateTime date) { + this.date = date; + } + + public Note system(String system) { + this.system = system; + return this; + } + + /** + * Describes the system from which the action related to this note was done + * + * @return system + **/ + @Schema(description = "Describes the system from which the action related to this note was done") + + public String getSystem() { + return system; + } + + public void setSystem(String system) { + this.system = system; + } + + public Note text(String text) { + this.text = text; + if ( date == null) { + this.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() ); + } + return this; + } + + /** + * Text of the note + * + * @return text + **/ + @Schema(description = "Text of the note") + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + this.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() ); + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Note note = (Note) o; + return Objects.equals(this.author, note.author) && Objects.equals(this.date, note.date) + && Objects.equals(this.system, note.system) && Objects.equals(this.text, note.text) + && Objects.equals(this.baseType, note.baseType) + && Objects.equals(this.schemaLocation, note.schemaLocation) && Objects.equals(this.type, note.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(author, date, system, text, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Note {\n"); + + sb.append(" author: ").append(toIndentedString(author)).append("\n"); + sb.append(" date: ").append(toIndentedString(date)).append("\n"); + sb.append(" system: ").append(toIndentedString(system)).append("\n"); + sb.append(" text: ").append(toIndentedString(text)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/service/Place.java b/src/main/java/org/etsi/osl/tmf/common/model/service/Place.java new file mode 100644 index 0000000..9c17d4f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/service/Place.java @@ -0,0 +1,124 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model.service; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * Place reference. Place defines the places where the products are sold or delivered. + */ +@Schema(description = "Place reference. Place defines the places where the products are sold or delivered.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") +@Entity(name = "Place") +public class Place extends BaseRootNamedEntity { + + @JsonProperty("id") + private String id = null; + + + @JsonProperty("role") + private String role = null; + + + /** + * Unique identifier of the place + * @return id + **/ + @Schema(description = "Unique identifier of the place") + + + public String getId() { + return uuid; + } + + /** + * Role of the place, such as: [home delivery], [shop retrieval]) + * @return role + **/ + @Schema(description = "Role of the place, such as: [home delivery], [shop retrieval])") + + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Place place = (Place) o; + return Objects.equals(this.id, place.id) && + Objects.equals(this.href, place.href) && + Objects.equals(this.name, place.name) && + Objects.equals(this.role, place.role) && + Objects.equals(this.baseType, place.baseType) && + Objects.equals(this.schemaLocation, place.schemaLocation) && + Objects.equals(this.type, place.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, role, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Place {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/common/model/service/ResourceRef.java b/src/main/java/org/etsi/osl/tmf/common/model/service/ResourceRef.java new file mode 100644 index 0000000..e06e4ce --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/service/ResourceRef.java @@ -0,0 +1,134 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model.service; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * ResourceRef + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +@Entity(name = "ResourceRef") +public class ResourceRef extends BaseRootNamedEntity{ + @JsonProperty("id") + private String id = null; + + + @JsonProperty("@referredType") + private String referredType = null; + + public ResourceRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the supporting resource + * @return id + **/ + @Schema(description = "Unique identifier of the supporting resource") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceRef resourceRef = (ResourceRef) o; + return Objects.equals(this.id, resourceRef.id) && + Objects.equals(this.href, resourceRef.href) && + Objects.equals(this.name, resourceRef.name) && + Objects.equals(this.baseType, resourceRef.baseType) && + Objects.equals(this.schemaLocation, resourceRef.schemaLocation) && + Objects.equals(this.type, resourceRef.type) && + Objects.equals(this.referredType, resourceRef.referredType); + } +// +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/common/model/service/ServiceRef.java b/src/main/java/org/etsi/osl/tmf/common/model/service/ServiceRef.java new file mode 100644 index 0000000..206524b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/service/ServiceRef.java @@ -0,0 +1,134 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model.service; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * Service reference, for when Service is used by other entities + */ +@Schema(description = "Service reference, for when Service is used by other entities") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +@Entity(name = "ServiceRef") +public class ServiceRef extends BaseRootNamedEntity { + + @JsonProperty("id") + private String id = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public ServiceRef id(String id) { + this.id = id; + return this; + } + + /** + * Id of the service + * + * @return id + **/ + @Schema(description = "Id of the service") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ServiceRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceRef serviceRef = (ServiceRef) o; + return Objects.equals(this.id, serviceRef.id) && Objects.equals(this.href, serviceRef.href) + && Objects.equals(this.baseType, serviceRef.baseType) + && Objects.equals(this.schemaLocation, serviceRef.schemaLocation) + && Objects.equals(this.type, serviceRef.type) + && Objects.equals(this.referredType, serviceRef.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/service/ServiceRelationship.java b/src/main/java/org/etsi/osl/tmf/common/model/service/ServiceRelationship.java new file mode 100644 index 0000000..dca0c34 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/service/ServiceRelationship.java @@ -0,0 +1,143 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model.service; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Describes links with services of the same category (useful for bundled + * services) + */ +@Schema(description = "Describes links with services of the same category (useful for bundled services)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +@Entity(name = "ServiceRelationship") +public class ServiceRelationship extends BaseRootEntity { + + @JsonProperty("relationshipType") + private String relationshipType = null; + + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "service_serviceref_uuid", referencedColumnName = "uuid") + @JsonProperty("service") + private ServiceRef service = null; + + public ServiceRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * The type of relationship (e.g. depends on, enables) + * + * @return relationshipType + **/ + @Schema(description = "The type of relationship (e.g. depends on, enables)") + @NotNull + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public ServiceRelationship service(ServiceRef service) { + this.service = service; + return this; + } + + /** + * The service being referred to + * + * @return service + **/ + @Schema(description = "The service being referred to") + @NotNull + + @Valid + + public ServiceRef getService() { + return service; + } + + public void setService(ServiceRef service) { + this.service = service; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceRelationship serviceRelationship = (ServiceRelationship) o; + return Objects.equals(this.relationshipType, serviceRelationship.relationshipType) + && Objects.equals(this.service, serviceRelationship.service) + && Objects.equals(this.baseType, serviceRelationship.baseType) + && Objects.equals(this.schemaLocation, serviceRelationship.schemaLocation) + && Objects.equals(this.type, serviceRelationship.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(relationshipType, service, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceRelationship {\n"); + + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" service: ").append(toIndentedString(service)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/service/ServiceSpecificationRef.java b/src/main/java/org/etsi/osl/tmf/common/model/service/ServiceSpecificationRef.java new file mode 100644 index 0000000..b7e835c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/service/ServiceSpecificationRef.java @@ -0,0 +1,187 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model.service; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.etsi.osl.tmf.scm633.model.TargetServiceSchema; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; + +/** + * Service specification reference: ServiceSpecification(s) required to realize + * a ProductSpecification. + */ +@Schema(description = "Service specification reference: ServiceSpecification(s) required to realize a ProductSpecification.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") +@Entity(name = "ServiceSpecificationRef") +@JsonIgnoreProperties( {"uuid"} ) +public class ServiceSpecificationRef extends BaseRootNamedEntity { + + @JsonProperty("version") + private String version = null; + + @JsonProperty("targetServiceSchema") + private TargetServiceSchema targetServiceSchema = null; + + @JsonProperty("@referredType") + private String referredType = null; + + @JsonProperty("id") + protected String id = null; + + /** + * @return the id + */ + public String getId() { + return id; + } + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + public ServiceSpecificationRef version(String version) { + this.version = version; + return this; + } + + /** + * Service specification version + * + * @return version + **/ + @Schema(description = "Service specification version") + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public ServiceSpecificationRef targetServiceSchema(TargetServiceSchema targetServiceSchema) { + this.targetServiceSchema = targetServiceSchema; + return this; + } + + /** + * A target service schema reference (TargetServiceSchemaRef). The reference + * object to the schema and type of target service which is described by service + * specification. + * + * @return targetServiceSchema + **/ + @Schema(description = "A target service schema reference (TargetServiceSchemaRef). The reference object to the schema and type of target service which is described by service specification.") + + @Valid + + public TargetServiceSchema getTargetServiceSchema() { + return targetServiceSchema; + } + + public void setTargetServiceSchema(TargetServiceSchema targetServiceSchema) { + this.targetServiceSchema = targetServiceSchema; + } + + public ServiceSpecificationRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceSpecificationRef serviceSpecificationRef = (ServiceSpecificationRef) o; + return Objects.equals(this.id, serviceSpecificationRef.id) + && Objects.equals(this.href, serviceSpecificationRef.href) + && Objects.equals(this.name, serviceSpecificationRef.name) + && Objects.equals(this.version, serviceSpecificationRef.version) + && Objects.equals(this.targetServiceSchema, serviceSpecificationRef.targetServiceSchema) + && Objects.equals(this.baseType, serviceSpecificationRef.baseType) + && Objects.equals(this.schemaLocation, serviceSpecificationRef.schemaLocation) + && Objects.equals(this.type, serviceSpecificationRef.type) + && Objects.equals(this.referredType, serviceSpecificationRef.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, version, targetServiceSchema, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceSpecificationRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" targetServiceSchema: ").append(toIndentedString(targetServiceSchema)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/common/model/service/ServiceStateType.java b/src/main/java/org/etsi/osl/tmf/common/model/service/ServiceStateType.java new file mode 100644 index 0000000..933c2c7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/service/ServiceStateType.java @@ -0,0 +1,64 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model.service; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Valid values for the lifecycle state of the service + */ +public enum ServiceStateType { + + FEASIBILITYCHECKED("feasibilityChecked"), + + DESIGNED("designed"), + + RESERVED("reserved"), + + INACTIVE("inactive"), + + ACTIVE("active"), + + TERMINATED("terminated"); + + private String value; + + ServiceStateType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ServiceStateType fromValue(String text) { + for (ServiceStateType b : ServiceStateType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/common/model/service/TargetServiceSchema.java b/src/main/java/org/etsi/osl/tmf/common/model/service/TargetServiceSchema.java new file mode 100644 index 0000000..f53daae --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/common/model/service/TargetServiceSchema.java @@ -0,0 +1,153 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.common.model.service; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * The reference object to the schema and type of target service which is described by service specification + */ +@Schema(description = "The reference object to the schema and type of target service which is described by service specification") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +public class TargetServiceSchema { + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public TargetServiceSchema baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public TargetServiceSchema schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * This field provides a link to the schema describing the target service + * @return schemaLocation + **/ + @Schema(description = "This field provides a link to the schema describing the target service") + @NotNull + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public TargetServiceSchema type(String type) { + this.type = type; + return this; + } + + /** + * Class type of the target service + * @return type + **/ + @Schema(description = "Class type of the target service") + @NotNull + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TargetServiceSchema targetServiceSchema = (TargetServiceSchema) o; + return Objects.equals(this.baseType, targetServiceSchema.baseType) && + Objects.equals(this.schemaLocation, targetServiceSchema.schemaLocation) && + Objects.equals(this.type, targetServiceSchema.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TargetServiceSchema {\n"); + + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/configuration/ActiveMQComponentConfig.java b/src/main/java/org/etsi/osl/tmf/configuration/ActiveMQComponentConfig.java new file mode 100644 index 0000000..2bdc001 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/configuration/ActiveMQComponentConfig.java @@ -0,0 +1,41 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.bugzilla + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.configuration; + +import org.apache.camel.component.activemq.ActiveMQComponent; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import jakarta.jms.ConnectionFactory; + +/** + * @author ctranoris + * + */ +@Configuration +public class ActiveMQComponentConfig { + + @Bean(name = "activemq") + public ActiveMQComponent createComponent(ConnectionFactory factory) { + ActiveMQComponent activeMQComponent = new ActiveMQComponent(); + activeMQComponent.setConnectionFactory(factory); + return activeMQComponent; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/configuration/ApiError.java b/src/main/java/org/etsi/osl/tmf/configuration/ApiError.java new file mode 100644 index 0000000..d451b04 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/configuration/ApiError.java @@ -0,0 +1,46 @@ +package org.etsi.osl.tmf.configuration; + +import java.time.LocalDateTime; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonFormat; + +import org.springframework.http.HttpStatus; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +@Data +@EqualsAndHashCode(callSuper = false) +@AllArgsConstructor +public class ApiError { + private HttpStatus status; + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy hh:mm:ss") + private LocalDateTime timestamp; + private String message; + private String debugMessage; + private List subErrors; + + private ApiError() { + timestamp = LocalDateTime.now(); + } + + ApiError(HttpStatus status) { + this(); + this.status = status; + } + + ApiError(HttpStatus status, Throwable ex) { + this(); + this.status = status; + this.message = "Unexpected error"; + this.debugMessage = ex.getLocalizedMessage(); + } + + ApiError(HttpStatus status, String message, Throwable ex) { + this(); + this.status = status; + this.message = message; + this.debugMessage = ex.getLocalizedMessage(); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/configuration/ApiSubError.java b/src/main/java/org/etsi/osl/tmf/configuration/ApiSubError.java new file mode 100644 index 0000000..482949b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/configuration/ApiSubError.java @@ -0,0 +1,5 @@ +package org.etsi.osl.tmf.configuration; + +abstract class ApiSubError { + +} diff --git a/src/main/java/org/etsi/osl/tmf/configuration/ApiValidationError.java b/src/main/java/org/etsi/osl/tmf/configuration/ApiValidationError.java new file mode 100644 index 0000000..a3f3926 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/configuration/ApiValidationError.java @@ -0,0 +1,20 @@ +package org.etsi.osl.tmf.configuration; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +@AllArgsConstructor +class ApiValidationError extends ApiSubError { + private String object; + private String field; + private Object rejectedValue; + private String message; + + ApiValidationError(String object, String message) { + this.object = object; + this.message = message; + } +} \ No newline at end of file diff --git a/src/main/java/org/etsi/osl/tmf/configuration/BCryptPasswordEncoderConfig.java b/src/main/java/org/etsi/osl/tmf/configuration/BCryptPasswordEncoderConfig.java new file mode 100644 index 0000000..2e92543 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/configuration/BCryptPasswordEncoderConfig.java @@ -0,0 +1,35 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.configuration; + + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; + + +@Configuration +public class BCryptPasswordEncoderConfig { + + @Bean + public BCryptPasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/configuration/CustomClaimVerifier.java b/src/main/java/org/etsi/osl/tmf/configuration/CustomClaimVerifier.java new file mode 100644 index 0000000..2fde2bb --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/configuration/CustomClaimVerifier.java @@ -0,0 +1,38 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.portal.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.configuration; + +public class CustomClaimVerifier { + +} + + +//import org.springframework.security.oauth2.common.exceptions.InvalidTokenException; +//import org.springframework.security.oauth2.provider.token.store.JwtClaimsSetVerifier; +// +//public class CustomClaimVerifier implements JwtClaimsSetVerifier { +// @Override +// public void verify(Map claims) throws InvalidTokenException { +// final String username = (String) claims.get("user_name"); +// if ((username == null) || (username.length() == 0)) { +// throw new InvalidTokenException("user_name claim is empty"); +// } +// } +//} diff --git a/src/main/java/org/etsi/osl/tmf/configuration/HomeController.java b/src/main/java/org/etsi/osl/tmf/configuration/HomeController.java new file mode 100644 index 0000000..0ae32ff --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/configuration/HomeController.java @@ -0,0 +1,35 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.configuration; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * Home redirection to swagger api documentation + */ +@Controller +public class HomeController { + @RequestMapping(value = "/") + public String index() { + System.out.println("swagger-ui.html"); + return "redirect:swagger-ui.html"; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/configuration/MethodSecurityConfig.java b/src/main/java/org/etsi/osl/tmf/configuration/MethodSecurityConfig.java new file mode 100644 index 0000000..1907f55 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/configuration/MethodSecurityConfig.java @@ -0,0 +1,37 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.portal.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.configuration; + +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +import org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration; + +@Configuration +@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true, jsr250Enabled = true) +public class MethodSecurityConfig extends GlobalMethodSecurityConfiguration { + +// +// @Override +// protected MethodSecurityExpressionHandler createExpressionHandler() { +// return new OAuth2MethodSecurityExpressionHandler(); +// } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/configuration/RestAuthenticationEntryPoint.java b/src/main/java/org/etsi/osl/tmf/configuration/RestAuthenticationEntryPoint.java new file mode 100644 index 0000000..2993c1d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/configuration/RestAuthenticationEntryPoint.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.configuration; + +import java.io.IOException; + +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.AuthenticationEntryPoint; +import org.springframework.stereotype.Component; + +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +@Component +public final class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { + + /** + * From https://www.baeldung.com/securing-a-restful-web-service-with-spring-security + * + * In a standard web application, the authentication process may + * automatically trigger when an un-authenticated client tries to access a + * secured resource. This process usually redirects to a login page so that + * the user can enter credentials. However, for a REST Web Service,this + * behaviour doesn’t make much sense. We should be able to authenticate only + * by a request to the correct URI and if the user is not authenticated all + * requests should simply fail with a 401 UNAUTHORIZED status code. Spring + * Security handles this automatic triggering of the authentication process + * with the concept of an Entry Point – this is a required part of the + * configuration, and can be injected via the authenticationEntryPoint + * method. + */ + + @Override + public void commence(HttpServletRequest request, HttpServletResponse response, + AuthenticationException authException) throws IOException { + + response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized"); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/configuration/RestExceptionHandler.java b/src/main/java/org/etsi/osl/tmf/configuration/RestExceptionHandler.java new file mode 100644 index 0000000..42aac31 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/configuration/RestExceptionHandler.java @@ -0,0 +1,32 @@ +package org.etsi.osl.tmf.configuration; + +import org.springframework.core.Ordered; +import org.springframework.core.annotation.Order; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.HttpStatusCode; +import org.springframework.http.ResponseEntity; +import org.springframework.http.converter.HttpMessageNotReadableException; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.context.request.WebRequest; +import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; + +@Order(Ordered.HIGHEST_PRECEDENCE) +@ControllerAdvice +public class RestExceptionHandler extends ResponseEntityExceptionHandler { + + @Override + protected ResponseEntity handleHttpMessageNotReadable(HttpMessageNotReadableException ex, + HttpHeaders headers, HttpStatusCode status, WebRequest request) { + String error = "Malformed JSON request"; + ApiError apiError = new ApiError(HttpStatus.BAD_REQUEST, error, ex); + return new ResponseEntity(apiError, apiError.getStatus()); + } + + + private ResponseEntity buildResponseEntity(ApiError apiError) { + return new ResponseEntity<>(apiError, apiError.getStatus()); + } + // other exception handlers below + +} \ No newline at end of file diff --git a/src/main/java/org/etsi/osl/tmf/configuration/SwaggerDocumentationConfig.java b/src/main/java/org/etsi/osl/tmf/configuration/SwaggerDocumentationConfig.java new file mode 100644 index 0000000..ea00cc6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/configuration/SwaggerDocumentationConfig.java @@ -0,0 +1,860 @@ +/*- +7 * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.configuration; + +import org.springdoc.core.customizers.OpenApiCustomizer; +import org.springdoc.core.models.GroupedOpenApi; +import org.springdoc.core.utils.SpringDocUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import io.swagger.v3.oas.annotations.enums.SecuritySchemeType; +import io.swagger.v3.oas.annotations.security.OAuthFlow; +import io.swagger.v3.oas.annotations.security.OAuthFlows; +import io.swagger.v3.oas.annotations.security.OAuthScope; +import io.swagger.v3.oas.annotations.security.SecurityScheme; +import io.swagger.v3.oas.models.Components; +import io.swagger.v3.oas.models.ExternalDocumentation; +import io.swagger.v3.oas.models.SpecVersion; +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.info.License; +import io.swagger.v3.oas.models.security.SecurityRequirement; + +/** + * For implementing the callback and events, it might be useful to check the DDD pattern: https://www.baeldung.com/spring-data-ddd + * + * + * @author ctranoris + * + */ +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-08-29T19:18:54.771Z") + +@Configuration +@SecurityScheme(name = "security_auth", type = SecuritySchemeType.OAUTH2, bearerFormat = "JWT", +scheme = "bearer", +flows = @OAuthFlows(authorizationCode = @OAuthFlow( + authorizationUrl = "${springdoc.oAuthFlow.authorizationUrl}" + , tokenUrl = "${springdoc.oAuthFlow.tokenUrl}", scopes = { + @OAuthScope(name = "read", description = "read scope"), + @OAuthScope(name = "write", description = "write scope") }))) +public class SwaggerDocumentationConfig { + + /** + * TMF 633 Service Catalog Management + * @return + */ + @Bean + public OpenApiCustomizer scm633OpenAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info().title("TMF 633 Service Catalog Management") + .description("## TMF API Reference: TMF633 - Service Catalog Management" + + "### Release : 18.5-December 2018 Service Catalog API is one of Catalog Management API Family. Service Catalog API goal is to provide a catalog of services. " + + "### Resource - serviceCatalog " + + "### Operations Service Catalog API performs the following operations on the resource : - Retrieve an entity or a collection of entities depending on filter criteria - Partial update of an entity (including updating rules) - Create an entity (including default values and creation rules) - Delete an entity (for administration purposes) - Manage notification of events") + .version("4.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("TMF API Tables") + .url("https://www.tmforum.org/oda/open-apis/table")); + } + + @Bean + public GroupedOpenApi scm633(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + return GroupedOpenApi.builder() + .group("tmf-api-633-ServiceCatalogManagement-v4.0.0") + .addOpenApiCustomizer( this.scm633OpenAPI() ) + .packagesToScan("org.etsi.osl.tmf.scm633.api") + .build(); + + } + + + + + /** + * TMF 620 Product Catalog Management + * @return + */ + @Bean + public OpenApiCustomizer pcm620penAPI() { + + + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info().title("TMF 620 Product Catalog Management") + .description("## TMF API Reference: TMF620 - Product Catalog Management ### Release : 19.0 - June 2019 Product Catalog API is one of Catalog Management API Family. Product Catalog API goal is to provide a catalog of products. ### Operations Product Catalog API performs the following operations on the resources : - Retrieve an entity or a collection of entities depending on filter criteria - Partial update of an entity (including updating rules) - Create an entity (including default values and creation rules) - Delete an entity - Manage notification of events") + + .version("4.0.0") + .license(new License().name("Apache 2.0").url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("TMF API Tables") + .url("https://www.tmforum.org/oda/open-apis/table")); + + } + + + @Bean + public GroupedOpenApi pcm620() { + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + return GroupedOpenApi.builder() + .group("tmf-api-620-ProductCatalogManagement-v4.0.0") + .addOpenApiCustomizer( this.pcm620penAPI() ) + .packagesToScan("org.etsi.osl.tmf.pcm620.api") + .build(); + + } + + + + /** + * TMF 622 Product Ordering + * @return + */ + + + @Bean + public OpenApiCustomizer scm622OpenAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info().title("TMF 622 Product Ordering") + .description( "TMF API Reference : TMF 622 - Product Ordering Management**\\\\n\\\\n**" + + "Release : 19.0 - June 2019**\\\\n\\\\nThe Product Ordering API provides a standardized mechanism for placing a product order with all of the necessary order parameters.") + .version("1.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("TMF API Tables") + .url("https://www.tmforum.org/oda/open-apis/table")); + } + + @Bean + public GroupedOpenApi scm622(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + return GroupedOpenApi.builder() + .group("tmf-api-622-ProductOrderingManagement-v4.0.0") + .addOpenApiCustomizer( this.scm622OpenAPI() ) + .packagesToScan("org.etsi.osl.tmf.po622.api") + .build(); + + } + + + /** + * TMF 634 Resource Catalog Management + * @return + */ + + + @Bean + public OpenApiCustomizer rcm634OpenAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info().title("TMF 634 Resource Catalog Management") + .description("## TMF API Reference: TMF 634 Resource Catalog Management") + .version("4.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("TMF API Tables") + .url("https://www.tmforum.org/oda/open-apis/table")); + } + + @Bean + public GroupedOpenApi rcm634(){ + + return GroupedOpenApi.builder() + .group("tmf-api-634-ResourceCatalogManagement-v4.0.0") + .addOpenApiCustomizer( this.rcm634OpenAPI() ) + .packagesToScan("org.etsi.osl.tmf.rcm634.api") + .build(); + + } + + + + /** + * TMF 638 Service Inventory Management + * @return + */ + + + @Bean + public OpenApiCustomizer sim638OpenAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info().title("TMF 638 Service Inventory Management") + .description("## TMF API Reference : TMF 638 - Service Inventory Management v4 Release 18.5 - Dec 2018 The intent of this API is to provide a consistent/standardized mechanism to query and manipulate the Service inventory. The Service Inventory API can be used to query the service instances for a customer via Self Service Portal or the Call Centre operator can query the service instances on behalf of the customer while a customer may have a complaint or a query. Note: Only the CustomerFacingServices instances will be presented to the customer. The Service Inventory API can be called by the Service Order Management to create a new service instance/ update an existing service instance in the Service Inventory. ### Service resource Service is an abstract base class for defining the Service hierarchy. All Services are characterized as either being possibly visible and usable by a Customer or not. This gives rise to the two subclasses of Service: CustomerFacingService and ResourceFacingService. ### Service Inventory API performs the following operations on service : - Retrieve a service or a collection of services depending on filter criteria - Partial update of a service (including updating rules) - Create a service (including default values and creation rules and for administration users only) - Delete a service (for administration users only) - Notification of events on service Copyright (c)TM Forum 2018. All Rights Reserved.") + .version("4.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("TMF API Tables") + .url("https://www.tmforum.org/oda/open-apis/table")); + } + + @Bean + public GroupedOpenApi sim638(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + + return GroupedOpenApi.builder() + .group("tmf-api-638-ServiceInventoryManagement-v4.0.0") + .addOpenApiCustomizer( this.sim638OpenAPI() ) + .packagesToScan("org.etsi.osl.tmf.sim638.api") + .build(); + + } + + + + + /** + * TMF 641 - Service Ordering Management + * @return + */ + + + @Bean + public OpenApiCustomizer so641OpenAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info().title("TMF 641 - Service Ordering Management ") + .description("## TMF API Reference : TMF 641 - Service Ordering Management ## Release : 18.5 - Dec 2018 The Service Order API provides a standardized mechanism for managing Service Order, a type of order which can be used to place an order between a customer and a service provider or between a service provider and a partner and vice versa. ### Service Order resource A service order will describe a list of service order items. A service order item references an action on an existing or future service. By service we designed Customer Facing Service (CFS) as well as Resource Facing Service (RFS). From a component perspective, a service order should be available - from a Service Orchestration Component (and it could mix CFS and RFS) - from an Infrastructure Control & Management component (and it would have only RFS) ### Service Order API performs the following operations on service order : - Retrieval of a service order or a collection of service orders depending on filter criteria - Partial update of a service order (including updating rules) - Creation of a service order (including default values and creation rules) - Deletion of service order (for administration purposes) - Notification of events on Service order Copyright © TM Forum 2018. All Rights Reserved") + .version("4.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("TMF API Tables") + .url("https://www.tmforum.org/oda/open-apis/table")); + } + + @Bean + public GroupedOpenApi so641(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + + return GroupedOpenApi.builder() + .group("tmf-api-641-ServiceOrdering-v4.0.0") + .addOpenApiCustomizer( this.so641OpenAPI() ) + .packagesToScan("org.etsi.osl.tmf.so641.api") + .build(); + + } + + + /** + * TMF 657 - Service Quality Management + * @return + */ + + + @Bean + public OpenApiCustomizer sqm657OpenAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info().title("TMF 657 - Service Quality Management") + .description("This is Swagger UI environment generated for the TMF Service Quality Management specification") + .version("2.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("TMF API Tables") + .url("https://www.tmforum.org/oda/open-apis/table")); + } + + @Bean + public GroupedOpenApi sqm657(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + + return GroupedOpenApi.builder() + .group("tmf-api-657-ServiceQualityManagement-v2.0") + .addOpenApiCustomizer( this.sqm657OpenAPI() ) + .packagesToScan("org.etsi.osl.tmf.sqm657.api") + .build(); + + } + + + + /** + * TMF 669 - Party Role Management + * @return + */ + + + @Bean + public OpenApiCustomizer prm669OpenAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info().title("TMF 669 - Party Role Management") + .description("This is Swagger UI environment generated for the TMF Party Role Management specification") + .version("2.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("TMF API Tables") + .url("https://www.tmforum.org/oda/open-apis/table")); + } + + @Bean + public GroupedOpenApi prm669(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + + return GroupedOpenApi.builder() + .group("tmf-api-669-Party Role Management-v4.0") + .addOpenApiCustomizer( this.prm669OpenAPI() ) + .packagesToScan("org.etsi.osl.tmf.prm669.api") + .build(); + + } + + + + /** + * TMF 632 - Party + * @return + */ + + + @Bean + public OpenApiCustomizer pm632OpenAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + + .info(new Info().title("TMF 632 - API Party") + .description("## TMF API Reference : TMF 632 - Party ### Release : 19.0 The party API provides standardized mechanism for party management such as creation, update, retrieval, deletion and notification of events. Party can be an individual or an organization that has any kind of relation with the enterprise. Party is created to record individual or organization information before the assignment of any role. For example, within the context of a split billing mechanism, Party API allows creation of the individual or organization that will play the role of 3 rd payer for a given offer and, then, allows consultation or update of his information. ### Resources - Organization - Individual - Hub Party API performs the following operations : - Retrieve an organization or an individual - Retrieve a collection of organizations or individuals according to given criteria - Create a new organization or a new individual - Update an existing organization or an existing individual - Delete an existing organization or an existing individual - Notify events on organizatin or individual") + .version("4.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("TMF API Tables") + .url("https://www.tmforum.org/oda/open-apis/table")); + } + + +@Bean + public GroupedOpenApi pm632(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + + return GroupedOpenApi.builder() + .group("tmf-api-632-PartyManagement-v4.0.0") + .addOpenApiCustomizer( this.pm632OpenAPI() ) + .packagesToScan("org.etsi.osl.tmf.pm632.api") + .build(); + + } + + + /** + * TMF 651 - Agreement Management + * @return + */ + + + @Bean + public OpenApiCustomizer am651OpenAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info().title("TMF 651 - Agreement Management ") + .description("This is Swagger UI environment generated for the TMF Agreement Management specification") + .version("2.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("TMF API Tables") + .url("https://www.tmforum.org/oda/open-apis/table")); + } + + @Bean + public GroupedOpenApi am651(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + + return GroupedOpenApi.builder() + .group("tmf-api-651-Agreement Management-v2.0") + .addOpenApiCustomizer( this.am651OpenAPI() ) + .packagesToScan("org.etsi.osl.tmf.am651.api") + .build(); + + } + + + + + /** + * TMF 652 Resource Order Management-v4.0.0 + * @return + */ + + + @Bean + public OpenApiCustomizer rom652OpenAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info() + .title("TMF 652 Resource Order Management-v4.0.0") + .description("This is Swagger UI environment generated for the TMF 652-Resource Order Management-v4.0.0 specification") + .version("4.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("TMF API Tables") + .url("https://www.tmforum.org/oda/open-apis/table")); + } + + @Bean + public GroupedOpenApi rom652(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + + return GroupedOpenApi.builder() + .group("tmf-api-652-ResourceOrderManagement-v4.0.0") + .addOpenApiCustomizer( this.rom652OpenAPI() ) + .packagesToScan("org.etsi.osl.tmf.ro652.api") + .build(); + + } + + + /** + * TMF 652 Resource Order Management-v4.0.0 + * @return + */ + + + @Bean + public OpenApiCustomizer am666OpenAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info() + .title("TMF 666 Account Management") + .description("This is Swagger UI environment generated for the TMF Account Management specification") + .version("4.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("TMF API Tables") + .url("https://www.tmforum.org/oda/open-apis/table")); + } + + @Bean + public GroupedOpenApi am666(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + + return GroupedOpenApi.builder() + .group("tmf-api-666-Account Management-v4.0.0") + .addOpenApiCustomizer( this.am666OpenAPI() ) + .packagesToScan("org.etsi.osl.tmf.am666.api") + .build(); + + } + + + /** + *TMF 639 API Resource Inventory Management + * @return + */ + + + @Bean + public OpenApiCustomizer ri639penAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info() + .title("TMF 639 API Resource Inventory Management") + .description("## TMF API Reference: TMF639 - Resource Inventory ### Release : 19.5 - December 2019 Resource Inventory API goal is to provide the ability to manage Resources. ### Operations Resource Inventory API performs the following operations on the resources : - Retrieve an entity or a collection of entities depending on filter criteria - Partial update of an entity (including updating rules) - Create an entity (including default values and creation rules) - Delete an entity (for administration purposes) - Manage notification of events") + .version("4.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("TMF API Tables") + .url("https://www.tmforum.org/oda/open-apis/table")); + } + + @Bean + public GroupedOpenApi ri639(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + + return GroupedOpenApi.builder() + .group("tmf-api-639-Resource Inventory Management-v4.0.0") + .addOpenApiCustomizer( this.ri639penAPI() ) + .packagesToScan("org.etsi.osl.tmf.ri639.api") + .build(); + + } + + + + + /** + *TMF 640 API Service Activation and Configuration + * @return + */ + + + @Bean + public OpenApiCustomizer sac640penAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info() + .title("TMF 640 API Service Activation and Configuration") + .description("## TMF API Reference: TMF640 - Service Activation and Configuration ### Release : 18.5 - December 2018 Service Activation and Configuration API goal is to provide the ability to activate and configure Services. ### Operations Service Activation and Configuration API performs the following operations on the resources : - Retrieve an entity or a collection of entities depending on filter criteria - Partial update of an entity (including updating rules) - Create an entity (including default values and creation rules) - Delete an entity (for administration purposes) - Manage notification of events") +// .version("3.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("TMF API Tables") + .url("https://www.tmforum.org/oda/open-apis/table")); + } + + @Bean + public GroupedOpenApi sac640(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + + return GroupedOpenApi.builder() + .group("tmf-api-640-Service Activation and Configuration-v3.0.0") + .addOpenApiCustomizer( this.sac640penAPI() ) + .packagesToScan("org.etsi.osl.tmf.sac640.api") + .build(); + + } + + + + /** + *tmf-api-629-Customer Management-v4.0.0 + * @return + */ + + + @Bean + public OpenApiCustomizer cm629penAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info() + .title("TMF 629 Customer Management-v4.0.0") + + .description("This is Swagger UI environment generated for the TMF Customer Management specification") + .version("4.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("TMF API Tables") + .url("https://www.tmforum.org/oda/open-apis/table")); + } + + @Bean + public GroupedOpenApi cm629(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + + return GroupedOpenApi.builder() + .group("tmf-api-629-Customer Management-v4.0.0") + .addOpenApiCustomizer( this.cm629penAPI() ) + .packagesToScan("org.etsi.osl.tmf.cm629.api") + .build(); + + } + + + + + /** + * TMF 691 Federated ID + * @return + */ + + + @Bean + public OpenApiCustomizer fi691OpenAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info() + .title("TMF 691 Federated ID") + .description("This is Swagger UI environment generated for the TMF FederatedID specification") + .version("1.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("TMF API Tables") + .url("https://www.tmforum.org/oda/open-apis/table")); + } + + @Bean + public GroupedOpenApi fi691(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + + return GroupedOpenApi.builder() + .group("tmf-api-691-Federated Identity-v1.0") + .addOpenApiCustomizer( this.fi691OpenAPI() ) + .packagesToScan("org.etsi.osl.tmf.fi691.api") + .build(); + + } + + + + /** + * TMF 642 Alarm Management + * @return + */ + + + @Bean + public OpenApiCustomizer am642OpenAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info() + .title("TMF 642 Alarm Management") + .description("## TMF API Reference: TMF642 Alarm Management API") + .version("4.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("TMF API Tables") + .url("https://www.tmforum.org/oda/open-apis/table")); + } + + @Bean + public GroupedOpenApi am642(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + + return GroupedOpenApi.builder() + .group("tmf-api-642-Alarm Management-v4.0.0") + .addOpenApiCustomizer( this.am642OpenAPI() ) + .packagesToScan("org.etsi.osl.tmf.am642.api") + .build(); + + } + + + + /** + * TMF 653 Service Test Management + * @return + */ + + + @Bean + public OpenApiCustomizer stm653OpenAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info() + .title("TMF 653 Service Test Management") + .description("## TMF API Reference: TMF653 - Service Test Management ### Release : 20.0 - April 2020 Service Test Management API goal is to provide the ability to manage tests of provisioned Services. ### Resource - ServiceTest - ServiceTestSpecification ### Operations Service Test Management API performs the following operations on the resources : - Retrieve an entity or a collection of entities depending on filter criteria - Partial update of an entity (including updating rules) - Create an entity (including default values and creation rules) - Delete an entity (for administration purposes) - Manage notification of events") + .version("4.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("TMF API Tables") + .url("https://www.tmforum.org/oda/open-apis/table")); + } + + @Bean + public GroupedOpenApi stm653(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + + return GroupedOpenApi.builder() + .group("tmf-api-653-Service Test Management-v4.0.0") + .addOpenApiCustomizer( this.stm653OpenAPI() ) + .packagesToScan("org.etsi.osl.tmf.stm653.api") + .build(); + + } + + + + /** + * LCM Rules + * @return + */ + + + @Bean + public OpenApiCustomizer lcmOpenAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info() + .title("Openslice LCMRules specification API") + .description("This is Swagger UI environment for LCM Rules") + .version("4.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("Openslice") + .url("http://openslice.io")); + } + + @Bean + public GroupedOpenApi lcm(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + + return GroupedOpenApi.builder() + .group("OpensliceLCMRulesspecificationAPI") + .addOpenApiCustomizer( this.lcmOpenAPI() ) + .packagesToScan("org.etsi.osl.tmf.lcm.api") + .build(); + + } + + + /** + * LCM Rules + * @return + */ + + + @Bean + public OpenApiCustomizer rpm685OpenAPI() { + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info() + .title("TMF 685 Resource Pool Management") + .description("## TMF API Reference: TMF685 Resource Pool Management ### Release : 18.0 " + + "Resources that can\r\n" + + "be reserved are only\r\n" + + "in one pool.\r\n" + + "IF a resource is not found in a pool is infinite.\r\n" + + "When one makes a reservation for a resource, then we check availability of \r\n" + + "this resource on that specific dates\r\n" + + "if checkAvailability returns the resource\r\n" + + "then it can be reserved on that specific requested date and time.") + .version("1.0.0") + .license(new License() + .name("Apache 2.0") + .url("http://openslice.io"))) + .externalDocs(new ExternalDocumentation() + .description("Openslice") + .url("http://openslice.io")); + } + + @Bean + public GroupedOpenApi rpm685(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + + return GroupedOpenApi.builder() + .group("tmf-api-685 ResourcePoolManagement") + .addOpenApiCustomizer( this.rpm685OpenAPI() ) + .packagesToScan("org.etsi.osl.tmf.rpm685.api") + .build(); + + } + + +// @Bean +// public SecurityConfiguration security() { +// return SecurityConfigurationBuilder.builder() +// +// .realm("openslice") +// .clientId(CLIENT_ID) +// .clientSecret(CLIENT_SECRET) +// .appName("oauthtoken") +// .scopeSeparator(" ") +// .build(); +// } +// +// private SecurityScheme securityScheme() { +// GrantType grantType = new AuthorizationCodeGrantBuilder() +// .tokenEndpoint(new TokenEndpoint(AUTH_SERVER + "/protocol/openid-connect/token", "oauthtoken")) +// .tokenRequestEndpoint( +// new TokenRequestEndpoint(AUTH_SERVER + "/protocol/openid-connect/auth", CLIENT_ID, CLIENT_SECRET)) +// .build(); +// +// SecurityScheme oauth = new OAuthBuilder().name("spring_oauth") +// .grantTypes(Arrays.asList(grantType)) +// .scopes(Arrays.asList(scopes())) +// .build(); +// return oauth; +// } +// +// private SecurityContext securityContext() { +// return SecurityContext.builder() +// .securityReferences( +// Arrays.asList(new SecurityReference("spring_oauth", scopes()))) +// .forPaths(PathSelectors.regex("/.*")) +// .build(); +// } +// +// private AuthorizationScope[] scopes() { +// AuthorizationScope[] scopes = { +// new AuthorizationScope("read", "for read operations"), +// new AuthorizationScope("write", "for write operations"), +// new AuthorizationScope("admin", "Access admin API"), +// new AuthorizationScope("openapi", "Access openapi API") }; +// return scopes; +// } +// + +} diff --git a/src/main/java/org/etsi/osl/tmf/configuration/WebSecurityConfigKeycloak.java b/src/main/java/org/etsi/osl/tmf/configuration/WebSecurityConfigKeycloak.java new file mode 100644 index 0000000..110de3b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/configuration/WebSecurityConfigKeycloak.java @@ -0,0 +1,354 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.portal.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.configuration; + +import java.net.URL; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import com.jayway.jsonpath.JsonPath; +import com.jayway.jsonpath.PathNotFoundException; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.web.ServerProperties; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.NestedConfigurationProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; +import org.springframework.core.convert.converter.Converter; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.security.authentication.AbstractAuthenticationToken; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.authentication.AuthenticationManagerResolver; +import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.http.SessionCreationPolicy; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.oauth2.jwt.Jwt; +import org.springframework.security.oauth2.jwt.JwtClaimNames; +import org.springframework.security.oauth2.jwt.JwtDecoder; +import org.springframework.security.oauth2.jwt.JwtDecoders; +import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationProvider; +import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken; +import org.springframework.security.oauth2.server.resource.authentication.JwtIssuerAuthenticationManagerResolver; +import org.springframework.security.web.SecurityFilterChain; +import org.springframework.stereotype.Component; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; + +import jakarta.servlet.http.HttpServletRequest; +import lombok.Data; +import lombok.RequiredArgsConstructor; + +@Configuration +@EnableWebSecurity +@EnableMethodSecurity +@Profile("!testing") +public class WebSecurityConfigKeycloak { + + @Bean + SecurityFilterChain filterChain(HttpSecurity http, ServerProperties serverProperties, + @Value("${origins:[]}") String[] origins, @Value("${permit-all:[]}") String[] permitAll, + AuthenticationManagerResolver authenticationManagerResolver) throws Exception { + + http.oauth2ResourceServer(oauth2 -> oauth2.authenticationManagerResolver(authenticationManagerResolver)); + + // Enable and configure CORS + http.cors(cors -> cors.configurationSource(corsConfigurationSource(origins))); + + // State-less session (state in access-token only) + http.sessionManagement(sm -> sm.sessionCreationPolicy(SessionCreationPolicy.STATELESS)); + + // Disable CSRF because of state-less session-management + http.csrf(csrf -> csrf.disable()); + + // Return 401 (unauthorized) instead of 302 (redirect to login) when + // authorization is missing or invalid + http.exceptionHandling(eh -> eh.authenticationEntryPoint((request, response, authException) -> { + response.addHeader(HttpHeaders.WWW_AUTHENTICATE, "Basic realm=\"Restricted Content\""); + response.sendError(HttpStatus.UNAUTHORIZED.value(), HttpStatus.UNAUTHORIZED.getReasonPhrase()); + })); + + // If SSL enabled, disable http (https only) + if (serverProperties.getSsl() != null && serverProperties.getSsl().isEnabled()) { + http.requiresChannel(channel -> channel.anyRequest().requiresSecure()); + } + + // @formatter:off + http.authorizeHttpRequests(requests -> requests + //.requestMatchers(permitAll).permitAll() + .anyRequest().permitAll()); + // @formatter:on + + return http.build(); + } + + private UrlBasedCorsConfigurationSource corsConfigurationSource(String[] origins) { + final var configuration = new CorsConfiguration(); + configuration.setAllowedOrigins(Arrays.asList(origins)); + configuration.setAllowedMethods(List.of("*")); + configuration.setAllowedHeaders(List.of("*")); + configuration.setExposedHeaders(List.of("*")); + configuration.setAllowCredentials(true); + + final var source = new UrlBasedCorsConfigurationSource(); + source.registerCorsConfiguration("/**", configuration); + return source; + } + + @Data + @Configuration + @ConfigurationProperties(prefix = "spring-addons") + static class SpringAddonsProperties { + private IssuerProperties[] issuers = {}; + + @Data + static class IssuerProperties { + private URL uri; + + @NestedConfigurationProperty + private ClaimMappingProperties[] claims; + + private String usernameJsonPath = JwtClaimNames.SUB; + + @Data + static class ClaimMappingProperties { + private String jsonPath; + private CaseProcessing caseProcessing = CaseProcessing.UNCHANGED; + private String prefix = ""; + + static enum CaseProcessing { + UNCHANGED, TO_LOWER, TO_UPPER + } + } + } + + public IssuerProperties get(URL issuerUri) throws MisconfigurationException { + final var issuerProperties = Stream.of(issuers).filter(iss -> issuerUri.equals(iss.getUri())).toList(); + if (issuerProperties.size() == 0) { + throw new MisconfigurationException( + "Missing authorities mapping properties for %s".formatted(issuerUri.toString())); + } + if (issuerProperties.size() > 1) { + throw new MisconfigurationException( + "Too many authorities mapping properties for %s".formatted(issuerUri.toString())); + } + return issuerProperties.get(0); + } + + static class MisconfigurationException extends RuntimeException { + private static final long serialVersionUID = 5887967904749547431L; + + public MisconfigurationException(String msg) { + super(msg); + } + } + } + + @RequiredArgsConstructor + static class JwtGrantedAuthoritiesConverter implements Converter> { + private final SpringAddonsProperties.IssuerProperties properties; + + @Override + @SuppressWarnings({ "rawtypes", "unchecked" }) + public Collection convert(Jwt jwt) { + + + return Stream.of(properties.claims).flatMap(claimProperties -> { + Object claim; + try { + claim = JsonPath.read(jwt.getClaims(), claimProperties.jsonPath); + } catch (PathNotFoundException e) { + claim = null; + } + if (claim == null) { + return Stream.empty(); + } + if (claim instanceof String claimStr) { + return Stream.of(claimStr.split(",")); + } + if (claim instanceof String[] claimArr) { + return Stream.of(claimArr); + } + if (Collection.class.isAssignableFrom(claim.getClass())) { + final var iter = ((Collection) claim).iterator(); + if (!iter.hasNext()) { + return Stream.empty(); + } + final var firstItem = iter.next(); + if (firstItem instanceof String) { + return (Stream) ((Collection) claim).stream(); + } + if (Collection.class.isAssignableFrom(firstItem.getClass())) { + return (Stream) ((Collection) claim).stream() + .flatMap(colItem -> ((Collection) colItem).stream()).map(String.class::cast); + } + } + return Stream.empty(); + }) /* Insert some transformation here if you want to add a prefix like "ROLE_" or force upper-case authorities */ + + .map(s -> "ROLE_" + s) + .map(SimpleGrantedAuthority::new) + .map(GrantedAuthority.class::cast).toList(); + } + } + + @Component + @RequiredArgsConstructor + static class SpringAddonsJwtAuthenticationConverter implements Converter { + private final SpringAddonsProperties springAddonsProperties; + + @Override + public AbstractAuthenticationToken convert(Jwt jwt) { + final var issuerProperties = springAddonsProperties.get(jwt.getIssuer()); + final var authorities = new JwtGrantedAuthoritiesConverter(issuerProperties).convert(jwt); + final String username = JsonPath.read(jwt.getClaims(), issuerProperties.getUsernameJsonPath()); + return new JwtAuthenticationToken(jwt, authorities, username); + } + } + + @Bean + AuthenticationManagerResolver authenticationManagerResolver( + SpringAddonsProperties addonsProperties, SpringAddonsJwtAuthenticationConverter authenticationConverter) { + final Map authenticationProviders = Stream.of(addonsProperties.getIssuers()) + .map(SpringAddonsProperties.IssuerProperties::getUri).map(URL::toString) + .collect(Collectors.toMap(issuer -> issuer, + issuer -> authenticationProvider(issuer, authenticationConverter)::authenticate)); + return new JwtIssuerAuthenticationManagerResolver( + (AuthenticationManagerResolver) authenticationProviders::get); + } + + JwtAuthenticationProvider authenticationProvider(String issuer, + SpringAddonsJwtAuthenticationConverter authenticationConverter) { + JwtDecoder decoder = JwtDecoders.fromIssuerLocation(issuer); + var provider = new JwtAuthenticationProvider(decoder); + provider.setJwtAuthenticationConverter(authenticationConverter); + return provider; + } +} + +//@Configuration +//@EnableWebSecurity +//@ComponentScan(basePackageClasses = KeycloakSecurityComponents.class) +//@Profile("!testing") +//public class WebSecurityConfigKeycloak extends KeycloakWebSecurityConfigurerAdapter { +// +// +// +// @Autowired +// private RestAuthenticationEntryPoint restAuthenticationEntryPoint; +// +// @Autowired +// public void configureGlobal( +// AuthenticationManagerBuilder auth) throws Exception { +// +// KeycloakAuthenticationProvider keycloakAuthenticationProvider +// = keycloakAuthenticationProvider(); +// keycloakAuthenticationProvider.setGrantedAuthoritiesMapper( +// new SimpleAuthorityMapper()); +// auth.authenticationProvider(keycloakAuthenticationProvider); +// } +// +// @Bean +// public KeycloakSpringBootConfigResolver KeycloakConfigResolver() { +// return new KeycloakSpringBootConfigResolver(); +// } +// +// @Bean +// @Override +// protected SessionAuthenticationStrategy sessionAuthenticationStrategy() { +// return new RegisterSessionAuthenticationStrategy( +// new SessionRegistryImpl()); +// } +// +//// +//// @Override +//// @Bean("authenticationManager") +//// public AuthenticationManager authenticationManagerBean() throws Exception { +//// return super.authenticationManagerBean(); +//// } +// +// //see also https://www.baeldung.com/securing-a-restful-web-service-with-spring-security +// @Override +// protected void configure(final HttpSecurity http) throws Exception { +// // @formatter:off +// http.authorizeRequests() +//// .antMatchers("/sessions/**").permitAll() +//// .antMatchers("/register/**").permitAll() +//// //.antMatchers("/sessions/logout").permitAll() +//// .antMatchers("/categories/**").permitAll() +//// .antMatchers("/experiments/**").permitAll() +//// .antMatchers("/vxfs/**").permitAll() +//// .antMatchers("/login").permitAll() +//// .antMatchers("/images/**").permitAll() +//// .antMatchers("/packages/**").permitAll() +//// .antMatchers("/testweb/**").permitAll() +//// .antMatchers("/oauth/token/revokeById/**").permitAll() +//// .antMatchers("/tokens/**").permitAll() +//// .antMatchers("/actuator/**").permitAll() +//// .antMatchers("/swagger/**").permitAll() +//// .antMatchers("/v2/**").permitAll() +//// .antMatchers("/swagger-ui.html").permitAll() +//// .antMatchers("/webjars/**").permitAll() +//// .antMatchers("/swagger-resources/**").permitAll() +// //.antMatchers("/admin/**").permitAll()//.hasAnyRole("admin","user","ROLE_admin","ROLE_user") +// +// .anyRequest().permitAll() +// //.and().formLogin().permitAll() +// .and().csrf().disable() +// //.cors().and().csrf().disable() // we use the filter..see below +// .exceptionHandling() +// .authenticationEntryPoint(restAuthenticationEntryPoint) +// .and() +// .logout(); +// // @formatter:on +// } +// +// +// @Bean +// public FilterRegistrationBean corsFilter() { +// +// UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); +// CorsConfiguration config = new CorsConfiguration(); +// config.setAllowCredentials(true); +// config.setAllowedOriginPatterns(Collections.singletonList("*")); +// config.addAllowedHeader("*"); +// config.addAllowedMethod("*"); +// config.addAllowedOriginPattern( "*" ); +// source.registerCorsConfiguration("/**", config); +// FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source)); +// +// bean.setOrder(0); +// +// return bean; +// +// } +// +// +// +//} diff --git a/src/main/java/org/etsi/osl/tmf/fi691/api/ApiException.java b/src/main/java/org/etsi/osl/tmf/fi691/api/ApiException.java new file mode 100644 index 0000000..542b715 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/fi691/api/ApiException.java @@ -0,0 +1,30 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.fi691.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-20T00:39:05.842+02:00") + +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/fi691/api/ApiOriginFilter.java b/src/main/java/org/etsi/osl/tmf/fi691/api/ApiOriginFilter.java new file mode 100644 index 0000000..6cfee51 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/fi691/api/ApiOriginFilter.java @@ -0,0 +1,51 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.fi691.api; + +import java.io.IOException; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-20T00:39:05.842+02:00") + +public class ApiOriginFilter implements jakarta.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} diff --git a/src/main/java/org/etsi/osl/tmf/fi691/api/ApiResponseMessage.java b/src/main/java/org/etsi/osl/tmf/fi691/api/ApiResponseMessage.java new file mode 100644 index 0000000..87ff941 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/fi691/api/ApiResponseMessage.java @@ -0,0 +1,89 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.fi691.api; + +import jakarta.xml.bind.annotation.XmlTransient; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-20T00:39:05.842+02:00") + +@jakarta.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/fi691/api/UserinfoApi.java b/src/main/java/org/etsi/osl/tmf/fi691/api/UserinfoApi.java new file mode 100644 index 0000000..df7eff6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/fi691/api/UserinfoApi.java @@ -0,0 +1,95 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.fi691.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.fi691.model.UserInfoType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-20T00:39:05.842+02:00") + +@Tag(name = "userinfo", description = "the userinfo API") +public interface UserinfoApi { + + Logger log = LoggerFactory.getLogger(UserinfoApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Retrieve user identity information", operationId = "retrieveUserIdentity", description = "", tags={ "userinfo", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "User identity information provided" ), + @ApiResponse(responseCode = "400", description = "Invalid Token"), + @ApiResponse(responseCode = "401", description = "Invalid Token"), + @ApiResponse(responseCode = "403", description = "Forbidden"), + @ApiResponse(responseCode = "404", description = "Not Found"), + @ApiResponse(responseCode = "405", description = "Method not Allowed"), + @ApiResponse(responseCode = "500", description = "Internal Server Error") }) + @RequestMapping(value = "/userinfo", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.GET) + default ResponseEntity retrieveUserIdentity(@Parameter(description = "token to be passed as a header linked to the user whose identity is requested" ,required=true) @RequestHeader(value="Authorization", required=true) String authorization,@Parameter(description = "To apply specific filter in the response ") @Valid @RequestParam(value = "fields", required = false) String fields) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"sub\" : \"sub\", \"zoneinfo\" : \"zoneinfo\", \"website\" : \"website\", \"birthdate\" : \"birthdate\", \"address\" : { \"country\" : \"country\", \"streetType\" : \"streetType\", \"geographicLocation\" : { \"@type\" : \"@type\", \"name\" : \"name\", \"geographicPoint\" : { \"spatialRef\" : \"spatialRef\", \"x\" : \"x\", \"accuracy\" : \"accuracy\", \"y\" : \"y\", \"z\" : \"z\" }, \"id\" : \"id\", \"href\" : \"href\", \"type\" : \"type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"city\" : \"city\", \"streetNr\" : \"streetNr\", \"@type\" : \"@type\", \"postcode\" : \"postcode\", \"locality\" : \"locality\", \"streetNrLast\" : \"streetNrLast\", \"streetNrSuffix\" : \"streetNrSuffix\", \"streetName\" : \"streetName\", \"stateOrProvince\" : \"stateOrProvince\", \"streetNrLastSuffix\" : \"streetNrLastSuffix\", \"streetSuffix\" : \"streetSuffix\", \"geographicSubAddress\" : { \"buildingName\" : \"buildingName\", \"subUnitNumber\" : \"subUnitNumber\", \"subUnitType\" : \"subUnitType\", \"levelType\" : \"levelType\", \"@type\" : \"@type\", \"name\" : \"name\", \"levelNumber\" : \"levelNumber\", \"type\" : \"type\", \"privateStreetNumber\" : \"privateStreetNumber\", \"@schemaLocation\" : \"@schemaLocation\", \"privateStreetName\" : \"privateStreetName\" }, \"@schemaLocation\" : \"@schemaLocation\" }, \"gender\" : \"gender\", \"@type\" : \"@type\", \"profile\" : \"profile\", \"legalId\" : [ { \"country\" : \"country\", \"issuingAuthority\" : \"issuingAuthority\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"identificationId\" : \"identificationId\" }, { \"country\" : \"country\", \"issuingAuthority\" : \"issuingAuthority\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"identificationId\" : \"identificationId\" } ], \"preferred_username\" : \"preferred_username\", \"given_name\" : \"given_name\", \"middle_name\" : \"middle_name\", \"locale\" : \"locale\", \"picture\" : \"picture\", \"userAssets\" : [ { \"role\" : \"role\", \"entityType\" : \"customer\", \"entitlement\" : [ { \"function\" : \"function\", \"action\" : \"action\" }, { \"function\" : \"function\", \"action\" : \"action\" } ], \"id\" : \"id\", \"assetType\" : \"mobile\" }, { \"role\" : \"role\", \"entityType\" : \"customer\", \"entitlement\" : [ { \"function\" : \"function\", \"action\" : \"action\" }, { \"function\" : \"function\", \"action\" : \"action\" } ], \"id\" : \"id\", \"assetType\" : \"mobile\" } ], \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"nickname\" : \"nickname\", \"phone_number\" : \"phone_number\", \"@schemaLocation\" : \"@schemaLocation\", \"family_name\" : \"family_name\", \"email\" : \"email\"}", UserInfoType.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default UserinfoApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/fi691/api/UserinfoApiController.java b/src/main/java/org/etsi/osl/tmf/fi691/api/UserinfoApiController.java new file mode 100644 index 0000000..d316c47 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/fi691/api/UserinfoApiController.java @@ -0,0 +1,54 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.fi691.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-20T00:39:05.842+02:00") + +@Controller +public class UserinfoApiController implements UserinfoApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public UserinfoApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/fi691/model/EntitlementType.java b/src/main/java/org/etsi/osl/tmf/fi691/model/EntitlementType.java new file mode 100644 index 0000000..1754ca6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/fi691/model/EntitlementType.java @@ -0,0 +1,128 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.fi691.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * EntitlementType + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-20T00:39:05.842+02:00") + +@Entity(name = "EntitlementType") +public class EntitlementType extends BaseRootEntity { + @JsonProperty("function") + private String function = null; + + @JsonProperty("action") + private String action = null; + + public EntitlementType function(String function) { + this.function = function; + return this; + } + + /** + * Get function + * @return function + **/ + @Schema(description = "") + @NotNull + + + public String getFunction() { + return function; + } + + public void setFunction(String function) { + this.function = function; + } + + public EntitlementType action(String action) { + this.action = action; + return this; + } + + /** + * Get action + * @return action + **/ + @Schema(description = "") + @NotNull + + + public String getAction() { + return action; + } + + public void setAction(String action) { + this.action = action; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntitlementType entitlementType = (EntitlementType) o; + return Objects.equals(this.function, entitlementType.function) && + Objects.equals(this.action, entitlementType.action); + } + + @Override + public int hashCode() { + return Objects.hash(function, action); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntitlementType {\n"); + + sb.append(" function: ").append(toIndentedString(function)).append("\n"); + sb.append(" action: ").append(toIndentedString(action)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/fi691/model/GeographicAddressType.java b/src/main/java/org/etsi/osl/tmf/fi691/model/GeographicAddressType.java new file mode 100644 index 0000000..b892f30 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/fi691/model/GeographicAddressType.java @@ -0,0 +1,451 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.fi691.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * GeographicAddressType + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-20T00:39:05.842+02:00") + +@Entity(name = "GeographicAddressType") +public class GeographicAddressType extends BaseRootEntity { + @JsonProperty("streetNr") + private String streetNr = null; + + @JsonProperty("streetNrSuffix") + private String streetNrSuffix = null; + + @JsonProperty("streetNrLast") + private String streetNrLast = null; + + @JsonProperty("streetNrLastSuffix") + private String streetNrLastSuffix = null; + + @JsonProperty("streetName") + private String streetName = null; + + @JsonProperty("streetType") + private String streetType = null; + + @JsonProperty("streetSuffix") + private String streetSuffix = null; + + @JsonProperty("postcode") + private String postcode = null; + + @JsonProperty("locality") + private String locality = null; + + @JsonProperty("city") + private String city = null; + + @JsonProperty("stateOrProvince") + private String stateOrProvince = null; + + @JsonProperty("country") + private String country = null; + + @JsonProperty("geographicLocation") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(referencedColumnName = "uuid") + private GeographicLocationRefOrValueType geographicLocation = null; + + @JsonProperty("geographicSubAddress") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(referencedColumnName = "uuid") + private GeographicSubAddressType geographicSubAddress = null; + + public GeographicAddressType streetNr(String streetNr) { + this.streetNr = streetNr; + return this; + } + + /** + * Required if href not included. Number identifying a specific property on a + * public street. It may be combined with streetNrLast for ranged addresses + * + * @return streetNr + **/ + @Schema(description = "Required if href not included. Number identifying a specific property on a public street. It may be combined with streetNrLast for ranged addresses") + @NotNull + + public String getStreetNr() { + return streetNr; + } + + public void setStreetNr(String streetNr) { + this.streetNr = streetNr; + } + + public GeographicAddressType streetNrSuffix(String streetNrSuffix) { + this.streetNrSuffix = streetNrSuffix; + return this; + } + + /** + * The street number suffix (or suffix of first number for aranged address) + * + * @return streetNrSuffix + **/ + @Schema(description = "The street number suffix (or suffix of first number for aranged address)") + + public String getStreetNrSuffix() { + return streetNrSuffix; + } + + public void setStreetNrSuffix(String streetNrSuffix) { + this.streetNrSuffix = streetNrSuffix; + } + + public GeographicAddressType streetNrLast(String streetNrLast) { + this.streetNrLast = streetNrLast; + return this; + } + + /** + * Last number in a range of street numbers allocated to a property + * + * @return streetNrLast + **/ + @Schema(description = "Last number in a range of street numbers allocated to a property") + + public String getStreetNrLast() { + return streetNrLast; + } + + public void setStreetNrLast(String streetNrLast) { + this.streetNrLast = streetNrLast; + } + + public GeographicAddressType streetNrLastSuffix(String streetNrLastSuffix) { + this.streetNrLastSuffix = streetNrLastSuffix; + return this; + } + + /** + * Last street number suffix for a ranged address + * + * @return streetNrLastSuffix + **/ + @Schema(description = "Last street number suffix for a ranged address") + + public String getStreetNrLastSuffix() { + return streetNrLastSuffix; + } + + public void setStreetNrLastSuffix(String streetNrLastSuffix) { + this.streetNrLastSuffix = streetNrLastSuffix; + } + + public GeographicAddressType streetName(String streetName) { + this.streetName = streetName; + return this; + } + + /** + * Required if href not included. Name of the street or other street type + * + * @return streetName + **/ + @Schema(description = "Required if href not included. Name of the street or other street type") + @NotNull + + public String getStreetName() { + return streetName; + } + + public void setStreetName(String streetName) { + this.streetName = streetName; + } + + public GeographicAddressType streetType(String streetType) { + this.streetType = streetType; + return this; + } + + /** + * Required if href not included. Alley, avenue, street, boulevard, brae, + * crescent, drive, highway, lane, terrace, parade, place, tarn, way, wharf + * + * @return streetType + **/ + @Schema(description = "Required if href not included. Alley, avenue, street, boulevard, brae, crescent, drive, highway, lane, terrace, parade, place, tarn, way, wharf") + @NotNull + + public String getStreetType() { + return streetType; + } + + public void setStreetType(String streetType) { + this.streetType = streetType; + } + + public GeographicAddressType streetSuffix(String streetSuffix) { + this.streetSuffix = streetSuffix; + return this; + } + + /** + * A modifier denoting a relative direction (E, W, S, N) + * + * @return streetSuffix + **/ + @Schema(description = "A modifier denoting a relative direction (E, W, S, N)") + + public String getStreetSuffix() { + return streetSuffix; + } + + public void setStreetSuffix(String streetSuffix) { + this.streetSuffix = streetSuffix; + } + + public GeographicAddressType postcode(String postcode) { + this.postcode = postcode; + return this; + } + + /** + * Required if href not included. Descriptor for a postal delivery area (also + * known as zipcode) + * + * @return postcode + **/ + @Schema(description = "Required if href not included. Descriptor for a postal delivery area (also known as zipcode)") + @NotNull + + public String getPostcode() { + return postcode; + } + + public void setPostcode(String postcode) { + this.postcode = postcode; + } + + public GeographicAddressType locality(String locality) { + this.locality = locality; + return this; + } + + /** + * Required if href not included. An area of defined or undefined boundaries + * within a local authority or other legislatively defined area, usually rural + * or semi-rural in nature, or a suburb, a bounded locality within a city, town + * or shire principally of urban character + * + * @return locality + **/ + @Schema(description = "Required if href not included. An area of defined or undefined boundaries within a local authority or other legislatively defined area, usually rural or semi-rural in nature, or a suburb, a bounded locality within a city, town or shire principally of urban character ") + @NotNull + + public String getLocality() { + return locality; + } + + public void setLocality(String locality) { + this.locality = locality; + } + + public GeographicAddressType city(String city) { + this.city = city; + return this; + } + + /** + * City that the address is in + * + * @return city + **/ + @Schema(description = "City that the address is in") + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public GeographicAddressType stateOrProvince(String stateOrProvince) { + this.stateOrProvince = stateOrProvince; + return this; + } + + /** + * Required if href not included. the State or Province that the address is in + * + * @return stateOrProvince + **/ + @Schema(description = "Required if href not included. the State or Province that the address is in") + @NotNull + + public String getStateOrProvince() { + return stateOrProvince; + } + + public void setStateOrProvince(String stateOrProvince) { + this.stateOrProvince = stateOrProvince; + } + + public GeographicAddressType country(String country) { + this.country = country; + return this; + } + + /** + * Required if href not included. Country that the address is in + * + * @return country + **/ + @Schema(description = "Required if href not included. Country that the address is in") + @NotNull + + public String getCountry() { + return country; + } + + public void setCountry(String country) { + this.country = country; + } + + public GeographicAddressType geographicLocation(GeographicLocationRefOrValueType geographicLocation) { + this.geographicLocation = geographicLocation; + return this; + } + + /** + * A geo location reference, allows describing through coordinate(s) a point, a + * line or a space + * + * @return geographicLocation + **/ + @Schema(description = "A geo location reference, allows describing through coordinate(s) a point, a line or a space") + + @Valid + + public GeographicLocationRefOrValueType getGeographicLocation() { + return geographicLocation; + } + + public void setGeographicLocation(GeographicLocationRefOrValueType geographicLocation) { + this.geographicLocation = geographicLocation; + } + + public GeographicAddressType geographicSubAddress(GeographicSubAddressType geographicSubAddress) { + this.geographicSubAddress = geographicSubAddress; + return this; + } + + /** + * A list of sub addresses. It is used for addressing within a property in an + * urban area (country properties are often defined differently). It may refer + * to a building, a building cluster, or a floor of a multistory building. + * + * @return geographicSubAddress + **/ + @Schema(description = "A list of sub addresses. It is used for addressing within a property in an urban area (country properties are often defined differently). It may refer to a building, a building cluster, or a floor of a multistory building.") + + @Valid + + public GeographicSubAddressType getGeographicSubAddress() { + return geographicSubAddress; + } + + public void setGeographicSubAddress(GeographicSubAddressType geographicSubAddress) { + this.geographicSubAddress = geographicSubAddress; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GeographicAddressType geographicAddressType = (GeographicAddressType) o; + return Objects.equals(this.streetNr, geographicAddressType.streetNr) + && Objects.equals(this.streetNrSuffix, geographicAddressType.streetNrSuffix) + && Objects.equals(this.streetNrLast, geographicAddressType.streetNrLast) + && Objects.equals(this.streetNrLastSuffix, geographicAddressType.streetNrLastSuffix) + && Objects.equals(this.streetName, geographicAddressType.streetName) + && Objects.equals(this.streetType, geographicAddressType.streetType) + && Objects.equals(this.streetSuffix, geographicAddressType.streetSuffix) + && Objects.equals(this.postcode, geographicAddressType.postcode) + && Objects.equals(this.locality, geographicAddressType.locality) + && Objects.equals(this.city, geographicAddressType.city) + && Objects.equals(this.stateOrProvince, geographicAddressType.stateOrProvince) + && Objects.equals(this.country, geographicAddressType.country) + && Objects.equals(this.geographicLocation, geographicAddressType.geographicLocation) + && Objects.equals(this.geographicSubAddress, geographicAddressType.geographicSubAddress) + && Objects.equals(this.type, geographicAddressType.type) + && Objects.equals(this.schemaLocation, geographicAddressType.schemaLocation); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GeographicAddressType {\n"); + + sb.append(" streetNr: ").append(toIndentedString(streetNr)).append("\n"); + sb.append(" streetNrSuffix: ").append(toIndentedString(streetNrSuffix)).append("\n"); + sb.append(" streetNrLast: ").append(toIndentedString(streetNrLast)).append("\n"); + sb.append(" streetNrLastSuffix: ").append(toIndentedString(streetNrLastSuffix)).append("\n"); + sb.append(" streetName: ").append(toIndentedString(streetName)).append("\n"); + sb.append(" streetType: ").append(toIndentedString(streetType)).append("\n"); + sb.append(" streetSuffix: ").append(toIndentedString(streetSuffix)).append("\n"); + sb.append(" postcode: ").append(toIndentedString(postcode)).append("\n"); + sb.append(" locality: ").append(toIndentedString(locality)).append("\n"); + sb.append(" city: ").append(toIndentedString(city)).append("\n"); + sb.append(" stateOrProvince: ").append(toIndentedString(stateOrProvince)).append("\n"); + sb.append(" country: ").append(toIndentedString(country)).append("\n"); + sb.append(" geographicLocation: ").append(toIndentedString(geographicLocation)).append("\n"); + sb.append(" geographicSubAddress: ").append(toIndentedString(geographicSubAddress)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/fi691/model/GeographicLocationRefOrValueType.java b/src/main/java/org/etsi/osl/tmf/fi691/model/GeographicLocationRefOrValueType.java new file mode 100644 index 0000000..d705b6b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/fi691/model/GeographicLocationRefOrValueType.java @@ -0,0 +1,156 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.fi691.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; + +/** + * GeographicLocationRefOrValueType + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-20T00:39:05.842+02:00") + +@Entity(name = "GeographicLocationRefOrValueType") +public class GeographicLocationRefOrValueType extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("geographicPoint") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(referencedColumnName = "uuid") + private GeographicPointType geographicPoint = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + public GeographicLocationRefOrValueType id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the location entity within the server + * + * @return id + **/ + @Schema(description = "Unique identifier of the location entity within the server") + + public String getId() { + return uuid; + } + + public GeographicLocationRefOrValueType geographicPoint(GeographicPointType geographicPoint) { + this.geographicPoint = geographicPoint; + return this; + } + + /** + * A list of geo points. A GeoPoint defines a geographic point through + * coordinates + * + * @return geographicPoint + **/ + @Schema(description = "A list of geo points. A GeoPoint defines a geographic point through coordinates") + + @Valid + + public GeographicPointType getGeographicPoint() { + return geographicPoint; + } + + public void setGeographicPoint(GeographicPointType geographicPoint) { + this.geographicPoint = geographicPoint; + } + + public GeographicLocationRefOrValueType schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A Link to the schema describing this REST Resource + * + * @return schemaLocation + **/ + @Schema(description = "A Link to the schema describing this REST Resource") + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GeographicLocationRefOrValueType geographicLocationRefOrValueType = (GeographicLocationRefOrValueType) o; + return Objects.equals(this.id, geographicLocationRefOrValueType.id) + && Objects.equals(this.href, geographicLocationRefOrValueType.href) + && Objects.equals(this.name, geographicLocationRefOrValueType.name) + && Objects.equals(this.type, geographicLocationRefOrValueType.type) + && Objects.equals(this.geographicPoint, geographicLocationRefOrValueType.geographicPoint) + && Objects.equals(this.type, geographicLocationRefOrValueType.type) + && Objects.equals(this.schemaLocation, geographicLocationRefOrValueType.schemaLocation); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GeographicLocationRefOrValueType {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" geographicPoint: ").append(toIndentedString(geographicPoint)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/fi691/model/GeographicPointType.java b/src/main/java/org/etsi/osl/tmf/fi691/model/GeographicPointType.java new file mode 100644 index 0000000..0cbd0e4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/fi691/model/GeographicPointType.java @@ -0,0 +1,205 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.fi691.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * GeographicPointType + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-20T00:39:05.842+02:00") + +@Entity(name = "GeographicPointType") +public class GeographicPointType extends BaseRootNamedEntity { + @JsonProperty("accuracy") + private String accuracy = null; + + @JsonProperty("spatialRef") + private String spatialRef = null; + + @JsonProperty("x") + private String x = null; + + @JsonProperty("y") + private String y = null; + + @JsonProperty("z") + private String z = null; + + public GeographicPointType accuracy(String accuracy) { + this.accuracy = accuracy; + return this; + } + + /** + * Accuracy of the coordinate specified + * @return accuracy + **/ + @Schema(description = "Accuracy of the coordinate specified") + @NotNull + + + public String getAccuracy() { + return accuracy; + } + + public void setAccuracy(String accuracy) { + this.accuracy = accuracy; + } + + public GeographicPointType spatialRef(String spatialRef) { + this.spatialRef = spatialRef; + return this; + } + + /** + * Geocoding referential + * @return spatialRef + **/ + @Schema(description = "Geocoding referential") + @NotNull + + + public String getSpatialRef() { + return spatialRef; + } + + public void setSpatialRef(String spatialRef) { + this.spatialRef = spatialRef; + } + + public GeographicPointType x(String x) { + this.x = x; + return this; + } + + /** + * . x coordinate (usually latitude) + * @return x + **/ + @Schema(description = ". x coordinate (usually latitude)") + @NotNull + + + public String getX() { + return x; + } + + public void setX(String x) { + this.x = x; + } + + public GeographicPointType y(String y) { + this.y = y; + return this; + } + + /** + * y coordinate (usually longitude) + * @return y + **/ + @Schema(description = "y coordinate (usually longitude)") + @NotNull + + + public String getY() { + return y; + } + + public void setY(String y) { + this.y = y; + } + + public GeographicPointType z(String z) { + this.z = z; + return this; + } + + /** + * z coordinate (usually elevation) + * @return z + **/ + @Schema(description = "z coordinate (usually elevation)") + + + public String getZ() { + return z; + } + + public void setZ(String z) { + this.z = z; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GeographicPointType geographicPointType = (GeographicPointType) o; + return Objects.equals(this.accuracy, geographicPointType.accuracy) && + Objects.equals(this.spatialRef, geographicPointType.spatialRef) && + Objects.equals(this.x, geographicPointType.x) && + Objects.equals(this.y, geographicPointType.y) && + Objects.equals(this.z, geographicPointType.z); + } + + @Override + public int hashCode() { + return Objects.hash(accuracy, spatialRef, x, y, z); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GeographicPointType {\n"); + + sb.append(" accuracy: ").append(toIndentedString(accuracy)).append("\n"); + sb.append(" spatialRef: ").append(toIndentedString(spatialRef)).append("\n"); + sb.append(" x: ").append(toIndentedString(x)).append("\n"); + sb.append(" y: ").append(toIndentedString(y)).append("\n"); + sb.append(" z: ").append(toIndentedString(z)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/fi691/model/GeographicSubAddressType.java b/src/main/java/org/etsi/osl/tmf/fi691/model/GeographicSubAddressType.java new file mode 100644 index 0000000..ffdee87 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/fi691/model/GeographicSubAddressType.java @@ -0,0 +1,259 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.fi691.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * GeographicSubAddressType + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-20T00:39:05.842+02:00") + +@Entity(name = "GeographicSubAddressType") +public class GeographicSubAddressType extends BaseRootNamedEntity { + + + @JsonProperty("subUnitType") + private String subUnitType = null; + + @JsonProperty("subUnitNumber") + private String subUnitNumber = null; + + @JsonProperty("levelType") + private String levelType = null; + + @JsonProperty("levelNumber") + private String levelNumber = null; + + @JsonProperty("buildingName") + private String buildingName = null; + + @JsonProperty("privateStreetName") + private String privateStreetName = null; + + @JsonProperty("privateStreetNumber") + private String privateStreetNumber = null; + + + + public GeographicSubAddressType subUnitType(String subUnitType) { + this.subUnitType = subUnitType; + return this; + } + + /** + * the type of subunit (e.g.: BERTH, FLAT, PIER, SUITE, SHOP, TOWER, UNIT, WHARF) + * @return subUnitType + **/ + @Schema(description = "the type of subunit (e.g.: BERTH, FLAT, PIER, SUITE, SHOP, TOWER, UNIT, WHARF)") + + + public String getSubUnitType() { + return subUnitType; + } + + public void setSubUnitType(String subUnitType) { + this.subUnitType = subUnitType; + } + + public GeographicSubAddressType subUnitNumber(String subUnitNumber) { + this.subUnitNumber = subUnitNumber; + return this; + } + + /** + * the discriminator used for the subunit often just a simple number (e.g.: 5 for FLAT 5), may also be a range + * @return subUnitNumber + **/ + @Schema(description = "the discriminator used for the subunit often just a simple number (e.g.: 5 for FLAT 5), may also be a range") + + + public String getSubUnitNumber() { + return subUnitNumber; + } + + public void setSubUnitNumber(String subUnitNumber) { + this.subUnitNumber = subUnitNumber; + } + + public GeographicSubAddressType levelType(String levelType) { + this.levelType = levelType; + return this; + } + + /** + * Describes level types within a building (e.g.: BASEMENT) + * @return levelType + **/ + @Schema(description = "Describes level types within a building (e.g.: BASEMENT) ") + + + public String getLevelType() { + return levelType; + } + + public void setLevelType(String levelType) { + this.levelType = levelType; + } + + public GeographicSubAddressType levelNumber(String levelNumber) { + this.levelNumber = levelNumber; + return this; + } + + /** + * used where a level type may be repeated (e.g.: BASEMENT 1, BASEMENT 2) + * @return levelNumber + **/ + @Schema(description = "used where a level type may be repeated (e.g.: BASEMENT 1, BASEMENT 2)") + + + public String getLevelNumber() { + return levelNumber; + } + + public void setLevelNumber(String levelNumber) { + this.levelNumber = levelNumber; + } + + public GeographicSubAddressType buildingName(String buildingName) { + this.buildingName = buildingName; + return this; + } + + /** + * Allows for buildings that have well-known names + * @return buildingName + **/ + @Schema(description = "Allows for buildings that have well-known names") + + + public String getBuildingName() { + return buildingName; + } + + public void setBuildingName(String buildingName) { + this.buildingName = buildingName; + } + + public GeographicSubAddressType privateStreetName(String privateStreetName) { + this.privateStreetName = privateStreetName; + return this; + } + + /** + * private streets internal to a property (e.g. a university) may have internal names that are not recorded by the land title office + * @return privateStreetName + **/ + @Schema(description = "private streets internal to a property (e.g. a university) may have internal names that are not recorded by the land title office") + + + public String getPrivateStreetName() { + return privateStreetName; + } + + public void setPrivateStreetName(String privateStreetName) { + this.privateStreetName = privateStreetName; + } + + public GeographicSubAddressType privateStreetNumber(String privateStreetNumber) { + this.privateStreetNumber = privateStreetNumber; + return this; + } + + /** + * Private streets numbers internal to a private street + * @return privateStreetNumber + **/ + @Schema(description = "Private streets numbers internal to a private street") + + + public String getPrivateStreetNumber() { + return privateStreetNumber; + } + + public void setPrivateStreetNumber(String privateStreetNumber) { + this.privateStreetNumber = privateStreetNumber; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GeographicSubAddressType geographicSubAddressType = (GeographicSubAddressType) o; + return Objects.equals(this.type, geographicSubAddressType.type) && + Objects.equals(this.name, geographicSubAddressType.name) && + Objects.equals(this.subUnitType, geographicSubAddressType.subUnitType) && + Objects.equals(this.subUnitNumber, geographicSubAddressType.subUnitNumber) && + Objects.equals(this.levelType, geographicSubAddressType.levelType) && + Objects.equals(this.levelNumber, geographicSubAddressType.levelNumber) && + Objects.equals(this.buildingName, geographicSubAddressType.buildingName) && + Objects.equals(this.privateStreetName, geographicSubAddressType.privateStreetName) && + Objects.equals(this.privateStreetNumber, geographicSubAddressType.privateStreetNumber) && + Objects.equals(this.type, geographicSubAddressType.type) && + Objects.equals(this.schemaLocation, geographicSubAddressType.schemaLocation); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GeographicSubAddressType {\n"); + + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" subUnitType: ").append(toIndentedString(subUnitType)).append("\n"); + sb.append(" subUnitNumber: ").append(toIndentedString(subUnitNumber)).append("\n"); + sb.append(" levelType: ").append(toIndentedString(levelType)).append("\n"); + sb.append(" levelNumber: ").append(toIndentedString(levelNumber)).append("\n"); + sb.append(" buildingName: ").append(toIndentedString(buildingName)).append("\n"); + sb.append(" privateStreetName: ").append(toIndentedString(privateStreetName)).append("\n"); + sb.append(" privateStreetNumber: ").append(toIndentedString(privateStreetNumber)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/fi691/model/IdentificationType.java b/src/main/java/org/etsi/osl/tmf/fi691/model/IdentificationType.java new file mode 100644 index 0000000..def627d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/fi691/model/IdentificationType.java @@ -0,0 +1,185 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.fi691.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Somebody's national ID + */ +@Schema(description = "Somebody's national ID") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-20T00:39:05.842+02:00") + +@Entity(name = "IdentificationType") +public class IdentificationType extends BaseRootEntity { + + + @JsonProperty("identificationId") + private String identificationId = null; + + @JsonProperty("country") + private String country = null; + + @JsonProperty("issuingAuthority") + private String issuingAuthority = null; + + @JsonProperty("issuingDate") + private OffsetDateTime issuingDate = null; + + + public IdentificationType identificationId(String identificationId) { + this.identificationId = identificationId; + return this; + } + + /** + * Identification number of the document + * @return identificationId + **/ + @Schema(description = "Identification number of the document") + @NotNull + + + public String getIdentificationId() { + return identificationId; + } + + public void setIdentificationId(String identificationId) { + this.identificationId = identificationId; + } + + public IdentificationType country(String country) { + this.country = country; + return this; + } + + /** + * Country that issued the document + * @return country + **/ + @Schema(description = "Country that issued the document") + @NotNull + + + public String getCountry() { + return country; + } + + public void setCountry(String country) { + this.country = country; + } + + public IdentificationType issuingAuthority(String issuingAuthority) { + this.issuingAuthority = issuingAuthority; + return this; + } + + /** + * Authority that issued the legal identification (e.g.: social security, town hall, ...) + * @return issuingAuthority + **/ + @Schema(description = "Authority that issued the legal identification (e.g.: social security, town hall, ...)") + + + public String getIssuingAuthority() { + return issuingAuthority; + } + + public void setIssuingAuthority(String issuingAuthority) { + this.issuingAuthority = issuingAuthority; + } + + public IdentificationType issuingDate(OffsetDateTime issuingDate) { + this.issuingDate = issuingDate; + return this; + } + + /** + * Date when identification was issued + * @return issuingDate + **/ + @Schema(description = "Date when identification was issued") + + @Valid + + public OffsetDateTime getIssuingDate() { + return issuingDate; + } + + public void setIssuingDate(OffsetDateTime issuingDate) { + this.issuingDate = issuingDate; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IdentificationType identificationType = (IdentificationType) o; + return Objects.equals(this.type, identificationType.type) && + Objects.equals(this.identificationId, identificationType.identificationId) && + Objects.equals(this.country, identificationType.country) && + Objects.equals(this.issuingAuthority, identificationType.issuingAuthority) && + Objects.equals(this.issuingDate, identificationType.issuingDate) && + Objects.equals(this.schemaLocation, identificationType.schemaLocation); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IdentificationType {\n"); + + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" identificationId: ").append(toIndentedString(identificationId)).append("\n"); + sb.append(" country: ").append(toIndentedString(country)).append("\n"); + sb.append(" issuingAuthority: ").append(toIndentedString(issuingAuthority)).append("\n"); + sb.append(" issuingDate: ").append(toIndentedString(issuingDate)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/fi691/model/UserAssetType.java b/src/main/java/org/etsi/osl/tmf/fi691/model/UserAssetType.java new file mode 100644 index 0000000..30ed0dd --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/fi691/model/UserAssetType.java @@ -0,0 +1,303 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.fi691.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonValue; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * UserAssetType + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-20T00:39:05.842+02:00") + +@Entity(name = "UserAssetType") +public class UserAssetType extends BaseRootEntity { + /** + * Type of managed entity (e.g.: product, resource, service, customer, account) + */ + public enum EntityTypeEnum { + CUSTOMER("customer"), + + ACCOUNT("account"), + + PRODUCT("product"), + + SERVICE("service"), + + RESOURCE("resource"); + + private String value; + + EntityTypeEnum(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static EntityTypeEnum fromValue(String text) { + for (EntityTypeEnum b : EntityTypeEnum.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } + } + + @JsonProperty("entityType") + private EntityTypeEnum entityType = null; + + /** + * Second level to define the type of managed element for + * product/service/resource managed entities (e.g.: mobile line subscription, + * video platform license, mobile equipment, etc). Allows identifying the + * specific asset within the server referenced. Supported values are + * implementation and application specific. Other values can be added if those + * listed are not enough + */ + public enum AssetTypeEnum { + MOBILE("mobile"), + + LANDLINE("landline"), + + IPTV("iptv"), + + BROADBAND("broadband"), + + EMAIL("email"), + + INVOICING("invoicing"); + + private String value; + + AssetTypeEnum(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static AssetTypeEnum fromValue(String text) { + for (AssetTypeEnum b : AssetTypeEnum.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } + } + + @JsonProperty("assetType") + private AssetTypeEnum assetType = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("role") + private String role = null; + + @JsonProperty("entitlement") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set entitlement = new HashSet<>(); + + public UserAssetType entityType(EntityTypeEnum entityType) { + this.entityType = entityType; + return this; + } + + /** + * Type of managed entity (e.g.: product, resource, service, customer, account) + * + * @return entityType + **/ + @Schema(description = "Type of managed entity (e.g.: product, resource, service, customer, account)") + @NotNull + + public EntityTypeEnum getEntityType() { + return entityType; + } + + public void setEntityType(EntityTypeEnum entityType) { + this.entityType = entityType; + } + + public UserAssetType assetType(AssetTypeEnum assetType) { + this.assetType = assetType; + return this; + } + + /** + * Second level to define the type of managed element for + * product/service/resource managed entities (e.g.: mobile line subscription, + * video platform license, mobile equipment, etc). Allows identifying the + * specific asset within the server referenced. Supported values are + * implementation and application specific. Other values can be added if those + * listed are not enough + * + * @return assetType + **/ + @Schema(description = "Second level to define the type of managed element for product/service/resource managed entities (e.g.: mobile line subscription, video platform license, mobile equipment, etc). Allows identifying the specific asset within the server referenced. Supported values are implementation and application specific. Other values can be added if those listed are not enough") + + public AssetTypeEnum getAssetType() { + return assetType; + } + + public void setAssetType(AssetTypeEnum assetType) { + this.assetType = assetType; + } + + public UserAssetType id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of referenced entity within the entity/asset pair + * (customerId, accountId, mobile line number, ...) + * + * @return id + **/ + @Schema(description = "Unique identifier of referenced entity within the entity/asset pair (customerId, accountId, mobile line number, ...)") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public UserAssetType role(String role) { + this.role = role; + return this; + } + + /** + * Represents the part played by an individual in relation to being granted a + * set of entitlements for manageable assets (e.g.: owner, user, viewer, ...) + * + * @return role + **/ + @Schema(description = "Represents the part played by an individual in relation to being granted a set of entitlements for manageable assets (e.g.: owner, user, viewer, ...)") + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public UserAssetType entitlement(Set entitlement) { + this.entitlement = entitlement; + return this; + } + + public UserAssetType addEntitlementItem(EntitlementType entitlementItem) { + if (this.entitlement == null) { + this.entitlement = new HashSet<>(); + } + this.entitlement.add(entitlementItem); + return this; + } + + /** + * information about individual entitlements to define access levels to operate + * over different functions that can be defined in an asset + * + * @return entitlement + **/ + @Schema(description = "information about individual entitlements to define access levels to operate over different functions that can be defined in an asset") + + @Valid + + public Set getEntitlement() { + return entitlement; + } + + public void setEntitlement(Set entitlement) { + this.entitlement = entitlement; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserAssetType userAssetType = (UserAssetType) o; + return Objects.equals(this.entityType, userAssetType.entityType) + && Objects.equals(this.assetType, userAssetType.assetType) && Objects.equals(this.id, userAssetType.id) + && Objects.equals(this.role, userAssetType.role) + && Objects.equals(this.entitlement, userAssetType.entitlement); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UserAssetType {\n"); + + sb.append(" entityType: ").append(toIndentedString(entityType)).append("\n"); + sb.append(" assetType: ").append(toIndentedString(assetType)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" entitlement: ").append(toIndentedString(entitlement)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/fi691/model/UserInfoType.java b/src/main/java/org/etsi/osl/tmf/fi691/model/UserInfoType.java new file mode 100644 index 0000000..2d0e82e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/fi691/model/UserInfoType.java @@ -0,0 +1,595 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.fi691.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * UserInfoType + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-20T00:39:05.842+02:00") + +@Entity(name = "UserInfoType") +public class UserInfoType extends BaseRootNamedEntity { + @JsonProperty("sub") + private String sub = null; + + @JsonProperty("given_name") + private String givenName = null; + + @JsonProperty("family_name") + private String familyName = null; + + @JsonProperty("middle_name") + private String middleName = null; + + @JsonProperty("nickname") + private String nickname = null; + + @JsonProperty("preferred_username") + private String preferredUsername = null; + + @JsonProperty("email") + private String email = null; + + @JsonProperty("phone_number") + private String phoneNumber = null; + + @JsonProperty("gender") + private String gender = null; + + @JsonProperty("birthdate") + private String birthdate = null; + + @JsonProperty("locale") + private String locale = null; + + @JsonProperty("zoneinfo") + private String zoneinfo = null; + + @JsonProperty("profile") + private String profile = null; + + @JsonProperty("picture") + private String picture = null; + + @JsonProperty("website") + private String website = null; + + @JsonProperty("address") + + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(referencedColumnName = "uuid") + private GeographicAddressType address = null; + + @JsonProperty("legalId") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set legalId = new HashSet<>(); + + @JsonProperty("userAssets") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set userAssets = new HashSet<>(); + + public UserInfoType sub(String sub) { + this.sub = sub; + return this; + } + + /** + * Subject - Unique Identifier for the End-User + * + * @return sub + **/ + @Schema(description = "Subject - Unique Identifier for the End-User") + @NotNull + + public String getSub() { + return sub; + } + + public void setSub(String sub) { + this.sub = sub; + } + + public UserInfoType givenName(String givenName) { + this.givenName = givenName; + return this; + } + + /** + * Given name(s) or first name(s) of the End-User. Note that in some cultures, + * people can have multiple given names; all can be present, with the names + * being separated by space characters + * + * @return givenName + **/ + @Schema(description = "Given name(s) or first name(s) of the End-User. Note that in some cultures, people can have multiple given names; all can be present, with the names being separated by space characters") + + public String getGivenName() { + return givenName; + } + + public void setGivenName(String givenName) { + this.givenName = givenName; + } + + public UserInfoType familyName(String familyName) { + this.familyName = familyName; + return this; + } + + /** + * Surname(s) or last name(s) of the End-User. Note that in some cultures, + * people can have multiple family names or no family name; all can be present, + * with the names being separated by space characters + * + * @return familyName + **/ + @Schema(description = "Surname(s) or last name(s) of the End-User. Note that in some cultures, people can have multiple family names or no family name; all can be present, with the names being separated by space characters") + + public String getFamilyName() { + return familyName; + } + + public void setFamilyName(String familyName) { + this.familyName = familyName; + } + + public UserInfoType middleName(String middleName) { + this.middleName = middleName; + return this; + } + + /** + * Middle name(s) of the End-User. Note that in some cultures, people can have + * multiple middle names; all can be present, with the names being separated by + * space characters. Also note that in some cultures, middle names are not used + * + * @return middleName + **/ + @Schema(description = "Middle name(s) of the End-User. Note that in some cultures, people can have multiple middle names; all can be present, with the names being separated by space characters. Also note that in some cultures, middle names are not used") + + public String getMiddleName() { + return middleName; + } + + public void setMiddleName(String middleName) { + this.middleName = middleName; + } + + public UserInfoType nickname(String nickname) { + this.nickname = nickname; + return this; + } + + /** + * Casual name of the End-User that may or may not be the same as the + * given_name. For instance, a nickname value of Mike might be returned + * alongside a given_name value of Michael + * + * @return nickname + **/ + @Schema(description = "Casual name of the End-User that may or may not be the same as the given_name. For instance, a nickname value of Mike might be returned alongside a given_name value of Michael") + + public String getNickname() { + return nickname; + } + + public void setNickname(String nickname) { + this.nickname = nickname; + } + + public UserInfoType preferredUsername(String preferredUsername) { + this.preferredUsername = preferredUsername; + return this; + } + + /** + * Shorthand name by which the End-User wishes to be referred to at the RP, such + * as janedoe or j.doe. This value MAY be any valid JSON string including + * special characters such as @, /, or whitespace + * + * @return preferredUsername + **/ + @Schema(description = "Shorthand name by which the End-User wishes to be referred to at the RP, such as janedoe or j.doe. This value MAY be any valid JSON string including special characters such as @, /, or whitespace") + + public String getPreferredUsername() { + return preferredUsername; + } + + public void setPreferredUsername(String preferredUsername) { + this.preferredUsername = preferredUsername; + } + + public UserInfoType email(String email) { + this.email = email; + return this; + } + + /** + * End-User's preferred e-mail address. Its value MUST conform to the [RFC5322] + * addr-spec syntax + * + * @return email + **/ + @Schema(description = "End-User's preferred e-mail address. Its value MUST conform to the [RFC5322] addr-spec syntax") + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public UserInfoType phoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + return this; + } + + /** + * End-User's preferred telephone number. [E.164] is RECOMMENDED as the format + * of this Claim, for example, +1 (425) 555-1212 or +56 82) 687 2400. If the + * phone number contains an extension, it is RECOMMENDED that the extension be + * represented using the [RFC3966] extension syntax, for example, +1 (604) + * 555-1234;ext=5678 + * + * @return phoneNumber + **/ + @Schema(description = "End-User's preferred telephone number. [E.164] is RECOMMENDED as the format of this Claim, for example, +1 (425) 555-1212 or +56 82) 687 2400. If the phone number contains an extension, it is RECOMMENDED that the extension be represented using the [RFC3966] extension syntax, for example, +1 (604) 555-1234;ext=5678") + + public String getPhoneNumber() { + return phoneNumber; + } + + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + + public UserInfoType gender(String gender) { + this.gender = gender; + return this; + } + + /** + * End-User's gender. Values defined by this specification are female and male. + * Other values MAY be used when neither of the defined values are applicable + * + * @return gender + **/ + @Schema(description = "End-User's gender. Values defined by this specification are female and male. Other values MAY be used when neither of the defined values are applicable") + + public String getGender() { + return gender; + } + + public void setGender(String gender) { + this.gender = gender; + } + + public UserInfoType birthdate(String birthdate) { + this.birthdate = birthdate; + return this; + } + + /** + * End-User's birthday, represented as an [ISO8601-2004] YYYY-MM-DD format. The + * year MAY be 0000, indicating that it is omitted. To represent only the year, + * YYYY format is allowed. Note that depending on the underlying platform's date + * related function, providing just year can result in varying month and day, so + * the implementers need to take this factor into account to correctly process + * the dates + * + * @return birthdate + **/ + @Schema(description = "End-User's birthday, represented as an [ISO8601-2004] YYYY-MM-DD format. The year MAY be 0000, indicating that it is omitted. To represent only the year, YYYY format is allowed. Note that depending on the underlying platform's date related function, providing just year can result in varying month and day, so the implementers need to take this factor into account to correctly process the dates") + + public String getBirthdate() { + return birthdate; + } + + public void setBirthdate(String birthdate) { + this.birthdate = birthdate; + } + + public UserInfoType locale(String locale) { + this.locale = locale; + return this; + } + + /** + * End-User's locale, represented as a [RFC5646] language tag. This is typically + * an [ISO639-1] language code in lowercase and an [ISO3166-1] country code in + * uppercase, separated by a dash. For example, en-US or fr-CA. As a + * compatibility note, some implementations have used an underscore as the + * separator rather than a dash, for example, en_US + * + * @return locale + **/ + @Schema(description = "End-User's locale, represented as a [RFC5646] language tag. This is typically an [ISO639-1] language code in lowercase and an [ISO3166-1] country code in uppercase, separated by a dash. For example, en-US or fr-CA. As a compatibility note, some implementations have used an underscore as the separator rather than a dash, for example, en_US") + + public String getLocale() { + return locale; + } + + public void setLocale(String locale) { + this.locale = locale; + } + + public UserInfoType zoneinfo(String zoneinfo) { + this.zoneinfo = zoneinfo; + return this; + } + + /** + * String from zoneinfo time zone database representing the End-User's time + * zone. For example, Europe/Paris or America/Los_Angeles + * + * @return zoneinfo + **/ + @Schema(description = "String from zoneinfo time zone database representing the End-User's time zone. For example, Europe/Paris or America/Los_Angeles") + + public String getZoneinfo() { + return zoneinfo; + } + + public void setZoneinfo(String zoneinfo) { + this.zoneinfo = zoneinfo; + } + + public UserInfoType profile(String profile) { + this.profile = profile; + return this; + } + + /** + * URL of the End-User's profile page. The contents of this Web page SHOULD be + * about the End-User + * + * @return profile + **/ + @Schema(description = "URL of the End-User's profile page. The contents of this Web page SHOULD be about the End-User") + + public String getProfile() { + return profile; + } + + public void setProfile(String profile) { + this.profile = profile; + } + + public UserInfoType picture(String picture) { + this.picture = picture; + return this; + } + + /** + * URL of the End-User's profile picture. This URL MUST refer to an image file + * (for example, a PNG, JPEG, or GIF image file), rather than to a Web page + * containing an image. Note that this URL SHOULD specifically reference a + * profile photo of the End-User suitable for displaying when describing the + * End-User, rather than an arbitrary photo taken by the End-User + * + * @return picture + **/ + @Schema(description = "URL of the End-User's profile picture. This URL MUST refer to an image file (for example, a PNG, JPEG, or GIF image file), rather than to a Web page containing an image. Note that this URL SHOULD specifically reference a profile photo of the End-User suitable for displaying when describing the End-User, rather than an arbitrary photo taken by the End-User") + + public String getPicture() { + return picture; + } + + public void setPicture(String picture) { + this.picture = picture; + } + + public UserInfoType website(String website) { + this.website = website; + return this; + } + + /** + * URL of the End-User's Web page or blog. This Web page SHOULD contain + * information published by the End-User or an organization that the End-User is + * affiliated with + * + * @return website + **/ + @Schema(description = "URL of the End-User's Web page or blog. This Web page SHOULD contain information published by the End-User or an organization that the End-User is affiliated with") + + public String getWebsite() { + return website; + } + + public void setWebsite(String website) { + this.website = website; + } + + public UserInfoType address(GeographicAddressType address) { + this.address = address; + return this; + } + + /** + * Structure including the End-User's preferred postal address + * + * @return address + **/ + @Schema(description = "Structure including the End-User's preferred postal address") + + @Valid + + public GeographicAddressType getAddress() { + return address; + } + + public void setAddress(GeographicAddressType address) { + this.address = address; + } + + public UserInfoType legalId(Set legalId) { + this.legalId = legalId; + return this; + } + + public UserInfoType addLegalIdItem(IdentificationType legalIdItem) { + if (this.legalId == null) { + this.legalId = new HashSet<>(); + } + this.legalId.add(legalIdItem); + return this; + } + + /** + * Identification documentation of the contact + * + * @return legalId + **/ + @Schema(description = "Identification documentation of the contact") + + @Valid + + public Set getLegalId() { + return legalId; + } + + public void setLegalId(Set legalId) { + this.legalId = legalId; + } + + public UserInfoType userAssets(Set userAssets) { + this.userAssets = userAssets; + return this; + } + + public UserInfoType addUserAssetsItem(UserAssetType userAssetsItem) { + if (this.userAssets == null) { + this.userAssets = new HashSet<>(); + } + this.userAssets.add(userAssetsItem); + return this; + } + + /** + * List of additional profile information + * + * @return userAssets + **/ + @Schema(description = "List of additional profile information") + + @Valid + + public Set getUserAssets() { + return userAssets; + } + + public void setUserAssets(Set userAssets) { + this.userAssets = userAssets; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserInfoType userInfoType = (UserInfoType) o; + return Objects.equals(this.sub, userInfoType.sub) && Objects.equals(this.name, userInfoType.name) + && Objects.equals(this.givenName, userInfoType.givenName) + && Objects.equals(this.familyName, userInfoType.familyName) + && Objects.equals(this.middleName, userInfoType.middleName) + && Objects.equals(this.nickname, userInfoType.nickname) + && Objects.equals(this.preferredUsername, userInfoType.preferredUsername) + && Objects.equals(this.email, userInfoType.email) + && Objects.equals(this.phoneNumber, userInfoType.phoneNumber) + && Objects.equals(this.gender, userInfoType.gender) + && Objects.equals(this.birthdate, userInfoType.birthdate) + && Objects.equals(this.locale, userInfoType.locale) + && Objects.equals(this.zoneinfo, userInfoType.zoneinfo) + && Objects.equals(this.profile, userInfoType.profile) + && Objects.equals(this.picture, userInfoType.picture) + && Objects.equals(this.website, userInfoType.website) + && Objects.equals(this.address, userInfoType.address) + && Objects.equals(this.legalId, userInfoType.legalId) + && Objects.equals(this.userAssets, userInfoType.userAssets) + && Objects.equals(this.type, userInfoType.type) && Objects.equals(this.baseType, userInfoType.baseType) + && Objects.equals(this.schemaLocation, userInfoType.schemaLocation); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UserInfoType {\n"); + + sb.append(" sub: ").append(toIndentedString(sub)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" givenName: ").append(toIndentedString(givenName)).append("\n"); + sb.append(" familyName: ").append(toIndentedString(familyName)).append("\n"); + sb.append(" middleName: ").append(toIndentedString(middleName)).append("\n"); + sb.append(" nickname: ").append(toIndentedString(nickname)).append("\n"); + sb.append(" preferredUsername: ").append(toIndentedString(preferredUsername)).append("\n"); + sb.append(" email: ").append(toIndentedString(email)).append("\n"); + sb.append(" phoneNumber: ").append(toIndentedString(phoneNumber)).append("\n"); + sb.append(" gender: ").append(toIndentedString(gender)).append("\n"); + sb.append(" birthdate: ").append(toIndentedString(birthdate)).append("\n"); + sb.append(" locale: ").append(toIndentedString(locale)).append("\n"); + sb.append(" zoneinfo: ").append(toIndentedString(zoneinfo)).append("\n"); + sb.append(" profile: ").append(toIndentedString(profile)).append("\n"); + sb.append(" picture: ").append(toIndentedString(picture)).append("\n"); + sb.append(" website: ").append(toIndentedString(website)).append("\n"); + sb.append(" address: ").append(toIndentedString(address)).append("\n"); + sb.append(" legalId: ").append(toIndentedString(legalId)).append("\n"); + sb.append(" userAssets: ").append(toIndentedString(userAssets)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/fi691/repo/IdentityRepository.java b/src/main/java/org/etsi/osl/tmf/fi691/repo/IdentityRepository.java new file mode 100644 index 0000000..986e13d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/fi691/repo/IdentityRepository.java @@ -0,0 +1,36 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.fi691.repo; + +import java.util.Optional; +import org.etsi.osl.tmf.fi691.model.UserInfoType; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + +@Repository +public interface IdentityRepository extends PagingAndSortingRepository { + + + Optional findByUuid(String id); + Iterable findByName( String name); + Iterable findByPreferredUsername( String name); + +} diff --git a/src/main/java/org/etsi/osl/tmf/fi691/service/IdentityRepoService.java b/src/main/java/org/etsi/osl/tmf/fi691/service/IdentityRepoService.java new file mode 100644 index 0000000..3e2dfc6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/fi691/service/IdentityRepoService.java @@ -0,0 +1,24 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.fi691.service; + +public class IdentityRepoService { + +} diff --git a/src/main/java/org/etsi/osl/tmf/lcm/api/LCMRuleSpecificationApi.java b/src/main/java/org/etsi/osl/tmf/lcm/api/LCMRuleSpecificationApi.java new file mode 100644 index 0000000..019b66d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/lcm/api/LCMRuleSpecificationApi.java @@ -0,0 +1,168 @@ +package org.etsi.osl.tmf.lcm.api; + +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.lcm.model.LCMRuleSpecification; +import org.etsi.osl.tmf.lcm.model.LCMRuleSpecificationCreate; +import org.etsi.osl.tmf.lcm.model.LCMRuleSpecificationUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; + + +@Tag(name = "lcmRuleSpecification") +public interface LCMRuleSpecificationApi { + + + Logger log = LoggerFactory.getLogger(LCMRuleSpecificationApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a LCM RuleSpecification", operationId = "createLCMRuleSpecification", description = "This operation creates a LCM RuleSpecification entity." , tags = { + "lcmRuleSpecification", }) + @ApiResponses(value = { @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/lcmRuleSpecification", produces = { "application/json;charset=utf-8" }, consumes = { + "application/json;charset=utf-8" }, method = RequestMethod.POST) + default ResponseEntity createLCMRuleSpecification( + @Parameter(description = "The RuleSpecification to be created", required = true) @Valid @RequestBody LCMRuleSpecificationCreate body) { + + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "Deletes a LCM RuleSpecification", operationId = "deleteLCMRuleSpecification", description = "This operation deletes a LCM RuleSpecification entity.", tags = { + "lcmRuleSpecification", }) + @ApiResponses(value = { @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/lcmRuleSpecification/{id}", produces = { + "application/json;charset=utf-8" }, method = RequestMethod.DELETE) + default ResponseEntity deleteLCMRuleSpecification( + @Parameter(description = "Identifier of the RuleSpecification", required = true) @PathVariable("id") String id) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default LCM RuleSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "List or find LCM RuleSpecification objects", operationId = "listLCMRuleSpecification", description = "This operation list or find LCM RuleSpecification entities" , tags = { + "lcmRuleSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/lcmRuleSpecification", produces = { + "application/json;charset=utf-8" }, method = RequestMethod.GET) + ResponseEntity> listLCMRuleSpecification( + @Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit, + @Parameter(hidden = true) @Valid @RequestParam Map allParams); + + + @Operation(summary = "List or find LCM RuleSpecification objects by Service Specification ID", operationId = "listLCMRuleSpecificationsByServiceSpecID", description = "This operation list or find LCM RuleSpecification entities by SpecID" , tags = { + "lcmRuleSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/lcmRuleSpecification/serviceSpec/{id}", produces = { + "application/json;charset=utf-8" }, method = RequestMethod.GET) + ResponseEntity> listLCMRuleSpecificationBySpecID( + @Parameter(description = "Identifier of the ServiceSpecification Id", required = true) @PathVariable("id") String id, + @Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit, + @Parameter(hidden = true) @Valid @RequestParam Map allParams); + + + + @Operation(summary = "Updates partially a LCM RuleSpecification", operationId = "patchLCMRuleSpecification", description = "This operation updates partially a LCM RuleSpecification entity." , tags = { + "lcmRuleSpecification", }) + @ApiResponses(value = { @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/lcmRuleSpecification/{id}", produces = { + "application/json;charset=utf-8" }, consumes = { + "application/json;charset=utf-8" }, method = RequestMethod.PATCH) + default ResponseEntity patchLCMRuleSpecification( + @Parameter(description = "The LCM RuleSpecification to be updated", required = true) @Valid @RequestBody LCMRuleSpecificationUpdate body, + @Parameter(description = "Identifier of the LCM RuleSpecification", required = true) @PathVariable("id") String id) { + + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "Retrieves a LCM RuleSpecification by ID", operationId = "retrieveLCMRuleSpecification", description = "This operation retrieves a LCM RuleSpecification entity. Attribute selection is enabled for all first level attributes." , tags = { + "lcmRuleSpecification", }) + @ApiResponses(value = { @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/lcmRuleSpecification/{id}", produces = { + "application/json;charset=utf-8" }, method = RequestMethod.GET) + default ResponseEntity retrieveLCMRuleSpecification( + @Parameter(description = "Identifier of the LCM RuleSpecification", required = true) @PathVariable("id") String id, + @Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} + diff --git a/src/main/java/org/etsi/osl/tmf/lcm/api/LCMRuleSpecificationApiController.java b/src/main/java/org/etsi/osl/tmf/lcm/api/LCMRuleSpecificationApiController.java new file mode 100644 index 0000000..1abb365 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/lcm/api/LCMRuleSpecificationApiController.java @@ -0,0 +1,159 @@ +package org.etsi.osl.tmf.lcm.api; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.lcm.model.LCMRuleSpecification; +import org.etsi.osl.tmf.lcm.model.LCMRuleSpecificationCreate; +import org.etsi.osl.tmf.lcm.model.LCMRuleSpecificationUpdate; +import org.etsi.osl.tmf.lcm.reposervices.LCMRuleSpecificationRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; + + +@Controller +@RequestMapping("/lcmrulesmanagement/v1/") +public class LCMRuleSpecificationApiController implements LCMRuleSpecificationApi { + + private static final Logger log = LoggerFactory.getLogger(LCMRuleSpecificationApiController.class); + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @Autowired + LCMRuleSpecificationRepoService lcmRuleSpecificationRepoService; + + @Value("${spring.application.name}") + private String compname; + + @org.springframework.beans.factory.annotation.Autowired + public LCMRuleSpecificationApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity createLCMRuleSpecification(@Valid LCMRuleSpecificationCreate body) { + try { + + LCMRuleSpecification c = lcmRuleSpecificationRepoService.addLCMRuleSpecification( body ); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity deleteLCMRuleSpecification(String id) { + try { + + return new ResponseEntity( lcmRuleSpecificationRepoService.deleteById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity retrieveLCMRuleSpecification(String id, @Valid String fields) { + try { + + return new ResponseEntity( lcmRuleSpecificationRepoService.findById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity patchLCMRuleSpecification(@Valid LCMRuleSpecificationUpdate body, String id) { + LCMRuleSpecification c = lcmRuleSpecificationRepoService.updateLCMRuleSpecification( id, body ); + + return new ResponseEntity(c, HttpStatus.OK); + } + + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity> listLCMRuleSpecification(@Valid String fields, + @Valid Integer offset, @Valid Integer limit, @Valid Map allParams) { + try { + if (allParams != null) { + allParams.remove("fields"); + allParams.remove("offset"); + allParams.remove("limit"); + } else { + allParams = new HashMap<>(); + } + if ((fields == null) && (allParams.size() == 0)) { + + String myfields = null; + return new ResponseEntity>( + lcmRuleSpecificationRepoService.findAll( myfields, allParams), HttpStatus.OK); + + + } else { + + + return new ResponseEntity>( + lcmRuleSpecificationRepoService.findAll(fields, allParams), HttpStatus.OK); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity> listLCMRuleSpecificationBySpecID(String id, @Valid String fields, + @Valid Integer offset, @Valid Integer limit, @Valid Map allParams) { + try { + + + return new ResponseEntity>( + lcmRuleSpecificationRepoService.findByServiceSpecificationRefId(id) , HttpStatus.OK); + + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } +} diff --git a/src/main/java/org/etsi/osl/tmf/lcm/api/LCMRuleSpecificationApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/lcm/api/LCMRuleSpecificationApiRouteBuilder.java new file mode 100644 index 0000000..ba24c90 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/lcm/api/LCMRuleSpecificationApiRouteBuilder.java @@ -0,0 +1,52 @@ +package org.etsi.osl.tmf.lcm.api; + +import org.apache.camel.LoggingLevel; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.model.dataformat.JsonLibrary; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.lcm.reposervices.LCMRuleSpecificationRepoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +/** + * @author ctranoris + * + */ +@Configuration +@Component +public class LCMRuleSpecificationApiRouteBuilder extends RouteBuilder { + + private static final transient Log logger = LogFactory.getLog( LCMRuleSpecificationApiRouteBuilder.class.getName()); + + @Value("${CATALOG_GET_LCMRULE_BY_ID}") + private String CATALOG_GET_LCMRULE_BY_ID = ""; + + @Value("${CATALOG_GET_LCMRULES_BY_SPECID_PHASE}") + private String CATALOG_GET_LCMRULES_BY_SPECID_PHASE = ""; + + + @Autowired + LCMRuleSpecificationRepoService lcmRuleSpecificationRepoService; + + @Override + public void configure() throws Exception { + + from( CATALOG_GET_LCMRULE_BY_ID ) + .log(LoggingLevel.INFO, log, CATALOG_GET_LCMRULE_BY_ID + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean( lcmRuleSpecificationRepoService, "findByUuidEager") + .marshal().json( JsonLibrary.Jackson, String.class) + .convertBodyTo( String.class ); + + from( CATALOG_GET_LCMRULES_BY_SPECID_PHASE ) + .log(LoggingLevel.INFO, log, CATALOG_GET_LCMRULES_BY_SPECID_PHASE + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean( lcmRuleSpecificationRepoService, "findByServiceSpecificationRefIdAndPhase(${header.servicespecid}, ${header.phasename})") + .marshal().json( JsonLibrary.Jackson, String.class) + .convertBodyTo( String.class ); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/lcm/model/ELCMRulePhase.java b/src/main/java/org/etsi/osl/tmf/lcm/model/ELCMRulePhase.java new file mode 100644 index 0000000..8497aff --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/lcm/model/ELCMRulePhase.java @@ -0,0 +1,32 @@ +package org.etsi.osl.tmf.lcm.model; + + +public enum ELCMRulePhase { + + PRE_PROVISION("PRE_PROVISION"), + AFTER_ACTIVATION("AFTER_ACTIVATION"), + SUPERVISION("SUPERVISION"), + AFTER_DEACTIVATION("AFTER_DEACTIVATION"), + CREATION("CREATION"); + + private String value; + + ELCMRulePhase(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return this.getValue(); + } + + public static ELCMRulePhase getEnum(String value) { + for(ELCMRulePhase v : values()) + if(v.getValue().equalsIgnoreCase(value)) return v; + throw new IllegalArgumentException(); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/lcm/model/LCMRuleSpecification.java b/src/main/java/org/etsi/osl/tmf/lcm/model/LCMRuleSpecification.java new file mode 100644 index 0000000..11d70b6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/lcm/model/LCMRuleSpecification.java @@ -0,0 +1,210 @@ +package org.etsi.osl.tmf.lcm.model; + +import java.util.HashSet; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Lob; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Transient; +import jakarta.validation.Valid; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author ctranoris + * + * A LCM RuleSpecification is an entity that describes a LCM rule to apply during the LCM of a service + * + */ +@Schema(description = "A LCM RuleSpecification is an entity that describes a LCM rule to apply during the LCM of a service.") +@Validated +@Entity(name = "LCMRuleSpec") +@EqualsAndHashCode(callSuper=true) +public class LCMRuleSpecification extends BaseEntity{ + + + @JsonProperty("id") + protected String id = null; + + + @JsonProperty("lcmrulephase") + protected String lcmrulephase = ELCMRulePhase.PRE_PROVISION.getValue(); + + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.DETACH, CascadeType.REFRESH }) + @JsonIgnore + private Set serviceSpecs = new HashSet<>(); + + + @Lob + @Column(name = "LCONTENT", columnDefinition = "LONGTEXT") + @JsonProperty("content") + protected String content = null; + + + @Lob + @Column(name = "LCODE", columnDefinition = "LONGTEXT") + @JsonProperty("code") + protected String code = null; + + @JsonProperty("priority") + protected int priority = 0; + + /** + * @return the id + */ + public String getId() { + if ( uuid != null ) { + id = uuid; + } + return id; + } + + public void setId(String id) { + id = uuid; + } + + +// @Override +// public String toString() { +// StringBuilder sb = new StringBuilder(); +// sb.append("class Entity {\n"); +// +// sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); +// sb.append(" href: ").append(toIndentedString(href)).append("\n"); +// sb.append(" description: ").append(toIndentedString(description)).append("\n"); +// sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); +// sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); +// sb.append(" name: ").append(toIndentedString(name)).append("\n"); +// sb.append(" version: ").append(toIndentedString(version)).append("\n"); +// sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); +// sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); +// sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); +// sb.append(" type: ").append(toIndentedString(type)).append("\n"); +// sb.append("}"); +// return sb.toString(); +// } + + + + /** + * List of service categories associated with this catalog + * + * @return category + **/ + @Schema(description = "List of service specs associated with this rule") + @Transient + @JsonProperty("serviceSpecs") + @Valid + public Set getServiceSpecs() { + + return this.serviceSpecs; + } + + public void addServiceSpecificationRef(ServiceSpecificationRef s) { + if (!this.serviceSpecs.contains(s) ) { + this.serviceSpecs.add(s); + } + + } + + + + /** + * @param serviceSpecs the serviceSpecs to set + */ + public void setServiceSpecs(Set serviceSpecs) { + this.serviceSpecs = serviceSpecs; + } + + public void copyFromObj(BaseEntity be) { + super.copyFromObj(be); + } + + + + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + /** + * @return the lcmrulephase + */ + public String getLcmrulephase() { + return lcmrulephase; + } + + + /** + * @param lcmrulephase the lcmrulephase to set + */ + public void setLcmrulephase(String lcmrulephase) { + this.lcmrulephase = lcmrulephase; + } + + public void setLcmrulephase(ELCMRulePhase lcmrulephase) { + this.lcmrulephase = lcmrulephase.getValue(); + } + + /** + * @return the content + */ + public String getContent() { + return content; + } + + /** + * @param content the content to set + */ + public void setContent(String content) { + this.content = content; + } + + /** + * @return the code + */ + public String getCode() { + return code; + } + + /** + * @param code the code to set + */ + public void setCode(String code) { + this.code = code; + } + + /** + * @return the priority + */ + public int getPriority() { + return priority; + } + + /** + * @param priority the priority to set + */ + public void setPriority(int priority) { + this.priority = priority; + } + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/lcm/model/LCMRuleSpecificationCreate.java b/src/main/java/org/etsi/osl/tmf/lcm/model/LCMRuleSpecificationCreate.java new file mode 100644 index 0000000..ada9b5b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/lcm/model/LCMRuleSpecificationCreate.java @@ -0,0 +1,24 @@ +package org.etsi.osl.tmf.lcm.model; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author ctranoris + * + * A LCM RuleSpecification is an entity that describes a LCM rule to apply during the LCM of a service + * + */ +@Schema(description = "A LCM RuleSpecification is an entity that describes a LCM rule to apply during the LCM of a service.") +@Validated +@Data +@EqualsAndHashCode(callSuper=true) +public class LCMRuleSpecificationCreate extends LCMRuleSpecificationUpdate { + + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/lcm/model/LCMRuleSpecificationUpdate.java b/src/main/java/org/etsi/osl/tmf/lcm/model/LCMRuleSpecificationUpdate.java new file mode 100644 index 0000000..eb4b90a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/lcm/model/LCMRuleSpecificationUpdate.java @@ -0,0 +1,60 @@ +package org.etsi.osl.tmf.lcm.model; + +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author ctranoris + * + * A LCM RuleSpecification is an entity that describes a LCM rule to + * apply during the LCM of a service + * + */ +@Schema(description = "A LCM RuleSpecification is an entity that describes a LCM rule to apply during the LCM of a service.") +@Validated +@Data +public class LCMRuleSpecificationUpdate { + + @JsonProperty("name") + protected String name = null; + + @JsonProperty("description") + protected String description = null; + + @JsonProperty("priority") + protected int priority = 0; + + protected String lcmrulephase = ELCMRulePhase.PRE_PROVISION.getValue(); + + private List serviceSpecs = null; + + @JsonProperty("content") + protected String content = null; + + @JsonProperty("code") + protected String code = null; + + @JsonProperty("lifecycleStatus") + protected String lifecycleStatus = null; + + @JsonProperty("version") + protected String version = null; + + @JsonProperty("validFor") + protected TimePeriod validFor = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@type") + protected String type = null; +} diff --git a/src/main/java/org/etsi/osl/tmf/lcm/repo/LCMRuleSpecificationRepository.java b/src/main/java/org/etsi/osl/tmf/lcm/repo/LCMRuleSpecificationRepository.java new file mode 100644 index 0000000..4cdca99 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/lcm/repo/LCMRuleSpecificationRepository.java @@ -0,0 +1,42 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.lcm.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.lcm.model.LCMRuleSpecification; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + +@Repository(value = "lcmRuleSpecificationRepository") +public interface LCMRuleSpecificationRepository extends CrudRepository, PagingAndSortingRepository { + + Optional findByUuid(String id); + + @Query("SELECT sc FROM LCMRuleSpec sc JOIN FETCH sc.serviceSpecs spec WHERE spec.id = ?1 ORDER BY sc.priority") + List findByServiceSpecificationRef(String id); + + @Query("SELECT sc FROM LCMRuleSpec sc JOIN FETCH sc.serviceSpecs spec WHERE spec.id = ?1 AND sc.lcmrulephase LIKE ?2 ORDER BY sc.priority") + List findByServiceSpecificationRefAndPhase(String id, String phaseName); + +} diff --git a/src/main/java/org/etsi/osl/tmf/lcm/reposervices/LCMRuleSpecificationRepoService.java b/src/main/java/org/etsi/osl/tmf/lcm/reposervices/LCMRuleSpecificationRepoService.java new file mode 100644 index 0000000..895fd1b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/lcm/reposervices/LCMRuleSpecificationRepoService.java @@ -0,0 +1,352 @@ +package org.etsi.osl.tmf.lcm.reposervices; + +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.etsi.osl.tmf.lcm.model.LCMRuleSpecification; +import org.etsi.osl.tmf.lcm.model.LCMRuleSpecificationCreate; +import org.etsi.osl.tmf.lcm.model.LCMRuleSpecificationUpdate; +import org.etsi.osl.tmf.lcm.repo.LCMRuleSpecificationRepository; +import org.etsi.osl.tmf.scm633.model.ServiceSpecification; +import org.hibernate.Hibernate; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.transform.ResultTransformer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + + + +@Service(value = "lcmRuleSpecificationRepoService") +public class LCMRuleSpecificationRepoService { + + + @Autowired + LCMRuleSpecificationRepository lcmRuleSpecificationRepository; + + + private SessionFactory sessionFactory; + + @Autowired + public LCMRuleSpecificationRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + + + @Transactional + public LCMRuleSpecification addLCMRuleSpecification(@Valid LCMRuleSpecificationCreate ruleSpecificationCreate) { + + LCMRuleSpecification as = new LCMRuleSpecification(); + as = updateLCMRuleSpecificationFromAPICall( as, ruleSpecificationCreate); + as = this.lcmRuleSpecificationRepository.save(as); + return as; + } + + + + public List findAll() { + return (List) this.lcmRuleSpecificationRepository.findAll(); + } + + + public Void deleteById(String id) { + Optional optionalCat = this.lcmRuleSpecificationRepository.findByUuid(id); + this.lcmRuleSpecificationRepository.delete(optionalCat.get()); + return null; + } + + + @Transactional + public LCMRuleSpecification updateLCMRuleSpecification(String id, @Valid LCMRuleSpecificationUpdate body) { + + LCMRuleSpecification s = this.findByUuid(id); + if (s == null) { + return null; + } + LCMRuleSpecification alm = s; + alm = this.updateLCMRuleSpecificationFromAPICall(alm, body); + + alm = this.lcmRuleSpecificationRepository.save(alm); + return alm; + } + + + @Transactional + public LCMRuleSpecification findByUuid(String id) { + Optional optionalCat = this.lcmRuleSpecificationRepository.findByUuid(id); + return optionalCat.orElse(null); + } + + public List findAll(String myfields, @Valid Map allParams) + throws UnsupportedEncodingException { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + List alist = null; + try { +// String sql = "SELECT s FROM ServiceSpecification s"; + String sql = "SELECT " + + "s.uuid as uuid," + + "s.uuid as id," + + "s.name as name," + + "s.description as description," + + "s.priority as priority," + + "s.lcmrulephase as lcmrulephase"; + + if (myfields != null) { + String[] field = myfields.split(","); + for (String f : field) { + sql += ", s." + f + " as " + f ; + } + + } + sql += " FROM LCMRuleSpec s"; + if (allParams.size() > 0) { + sql += " WHERE "; + for (String pname : allParams.keySet()) { + sql += " " + pname + " LIKE "; + String pval = URLDecoder.decode(allParams.get(pname), StandardCharsets.UTF_8.toString()); + sql += "'" + pval + "'"; + } + + } + sql += " ORDER BY s.priority, s.name"; + + + + List mapaEntity = session + .createQuery(sql ) + .setResultTransformer( new ResultTransformer() { + + @Override + public Object transformTuple(Object[] tuple, String[] aliases) { + Map result = new LinkedHashMap(tuple.length); + for (int i = 0; i < tuple.length; i++) { + String alias = aliases[i]; + if (alias.equals("type")) { + alias = "@type"; + } + if (alias != null) { + result.put(alias, tuple[i]); + } + } + + return result; + } + + @Override + public List transformList(List collection) { + return collection; + } + } ) + .list(); + +// //this will fetch the whole object fields +// if ( (( allParams!= null) && ( allParams.size()>0)) ) { +// List resultlist = new ArrayList<>(); +// for (ServiceSpecification s : alist) { +// resultlist.add( findByUuid( s.getUuid() )); +// } +// return resultlist; +// } + + + + return mapaEntity; + + + + + } finally { + tx.commit(); + session.close(); + } + } + + + @Transactional + public LCMRuleSpecification findById(String id) { + Optional optionalCat = this.lcmRuleSpecificationRepository.findByUuid(id); + return optionalCat.orElse(null); + } + + + @Transactional + public LCMRuleSpecification findByUuidEager(String id) { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); // instead of begin transaction, is it possible to continue? + LCMRuleSpecification ls = null; + try { + ls = session.get(LCMRuleSpecification.class, id); + if ( ls == null) { + return this.findByUuid(id);// last resort + } + Hibernate.initialize(ls.getServiceSpecs() ); + tx.commit(); + } finally { + session.close(); + } + + return ls; + } + + @Transactional + public List findByServiceSpecificationRefId(String serviceSpecId) { + //return this.lcmRuleSpecificationRepository.findByServiceSpecificationRef( serviceSpecId ); + + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + List alist = null; + try { +// String sql = "SELECT s FROM ServiceSpecification s"; + String sql = "SELECT " + + "s.uuid as uuid," + + "s.uuid as id," //this is correct + + "s.name as name," + + "s.description as description," + + "s.priority as priority," + + "s.lcmrulephase as lcmrulephase"; + + + sql += " FROM LCMRuleSpec s JOIN s.serviceSpecs spec WHERE spec.id LIKE '" + serviceSpecId+"'"; + //sql += " FROM LCMRuleSpec s JOIN s.serviceSpecs spec"; + + sql += " ORDER BY s.priority, s.name"; + + + + List mapaEntity = session + .createQuery(sql ) + .setResultTransformer( new ResultTransformer() { + + @Override + public Object transformTuple(Object[] tuple, String[] aliases) { + Map result = new LinkedHashMap(tuple.length); + for (int i = 0; i < tuple.length; i++) { + String alias = aliases[i]; + if (alias.equals("type")) { + alias = "@type"; + } + if (alias != null) { + result.put(alias, tuple[i]); + } + } + + return result; + } + + @Override + public List transformList(List collection) { + return collection; + } + } ) + .list(); + + + return mapaEntity; + + + + + } finally { + tx.commit(); + session.close(); + } + } + + @Transactional + public List findByServiceSpecificationRefIdAndPhase(String serviceSpecId, String phaseName) { + + + return this.lcmRuleSpecificationRepository.findByServiceSpecificationRefAndPhase( serviceSpecId, phaseName ); + } + + + private LCMRuleSpecification updateLCMRuleSpecificationFromAPICall(LCMRuleSpecification as, + @Valid LCMRuleSpecificationUpdate ruleSpecificationUpdate) { + + if ( ruleSpecificationUpdate.getName() != null) { + as.setName( ruleSpecificationUpdate.getName() ); + } + + if ( ruleSpecificationUpdate.getDescription() != null) { + as.setDescription( ruleSpecificationUpdate.getDescription() ); + } + + if ( ruleSpecificationUpdate.getLcmrulephase() != null) { + as.setLcmrulephase( ruleSpecificationUpdate.getLcmrulephase() ); + + } + + if ( ruleSpecificationUpdate.getPriority() != 0) { + as.setPriority( ruleSpecificationUpdate.getPriority() ); + } + + + + if ( ruleSpecificationUpdate.getLifecycleStatus() != null) { + as.setLifecycleStatus( ruleSpecificationUpdate.getLifecycleStatus() ); + } + + if ( ruleSpecificationUpdate.getContent() != null) { + as.setContent( ruleSpecificationUpdate.getContent() ); + } + if ( ruleSpecificationUpdate.getCode() != null) { + as.setCode( ruleSpecificationUpdate.getCode() ); + } + + if ( ruleSpecificationUpdate.getServiceSpecs() != null) { + Map idAddedUpdated = new HashMap<>(); + + for (ServiceSpecificationRef ar : ruleSpecificationUpdate.getServiceSpecs()) { + // find by id and reload it here. + + boolean idexists = false; + for (ServiceSpecificationRef orinalCom : as.getServiceSpecs()) { + if (ar.getId()!=null && orinalCom.getId().equals(ar.getId())) { + idexists = true; + idAddedUpdated.put(orinalCom.getId(), true); + break; + } + } + + if (!idexists) { + as.getServiceSpecs().add(ar); + idAddedUpdated.put(ar.getId(), true); + } + } + + List toRemove = new ArrayList<>(); + for (ServiceSpecificationRef ss : as.getServiceSpecs()) { + if (idAddedUpdated.get(ss.getId()) == null) { + toRemove.add(ss); + } + } + + for (ServiceSpecificationRef ar : toRemove) { + as.getServiceSpecs().remove(ar); + } + + } + + return as; + } + + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/ApiException.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/ApiException.java new file mode 100644 index 0000000..16a8ace --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/ApiException.java @@ -0,0 +1,30 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/ApiOriginFilter.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/ApiOriginFilter.java new file mode 100644 index 0000000..987cce6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/ApiOriginFilter.java @@ -0,0 +1,51 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.io.IOException; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ApiOriginFilter implements jakarta.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/ApiResponseMessage.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/ApiResponseMessage.java new file mode 100644 index 0000000..cef90ec --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/ApiResponseMessage.java @@ -0,0 +1,89 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.api; + +import jakarta.xml.bind.annotation.XmlTransient; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@jakarta.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/CatalogApi.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/CatalogApi.java new file mode 100644 index 0000000..ef1430e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/CatalogApi.java @@ -0,0 +1,212 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pcm620.model.Catalog; +import org.etsi.osl.tmf.pcm620.model.CatalogCreate; +import org.etsi.osl.tmf.pcm620.model.CatalogUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Tag(name = "catalog", description = "the catalog API") +public interface CatalogApi { + + Logger log = LoggerFactory.getLogger(CatalogApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a Catalog", operationId = "createCatalog", description = "This operation creates a Catalog entity.", tags={ "catalog", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/catalog", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createCatalog(@Parameter(description = "The Catalog to be created" ,required=true ) @Valid @RequestBody CatalogCreate catalog) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"catalogType\" : \"catalogType\", \"lifecycleStatus\" : \"lifecycleStatus\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"version\" : \"version\", \"@baseType\" : \"@baseType\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"category\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\"}", Catalog.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CatalogApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a Catalog", operationId = "deleteCatalog", description = "This operation deletes a Catalog entity.", tags={ "catalog", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/catalog/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteCatalog(@Parameter(description = "Identifier of the Catalog",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CatalogApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find Catalog objects", operationId = "listCatalog", description = "This operation list or find Catalog entities" , tags={ "catalog", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/catalog", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listCatalog(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"catalogType\" : \"catalogType\", \"lifecycleStatus\" : \"lifecycleStatus\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"version\" : \"version\", \"@baseType\" : \"@baseType\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"category\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\"}, { \"catalogType\" : \"catalogType\", \"lifecycleStatus\" : \"lifecycleStatus\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"version\" : \"version\", \"@baseType\" : \"@baseType\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"category\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CatalogApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a Catalog", operationId = "patchCatalog", description = "This operation updates partially a Catalog entity.", tags={ "catalog", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/catalog/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchCatalog(@Parameter(description = "Identifier of the Catalog",required=true) @PathVariable("id") String id,@Parameter(description = "The Catalog to be updated" ,required=true ) @Valid @RequestBody CatalogUpdate catalog) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"catalogType\" : \"catalogType\", \"lifecycleStatus\" : \"lifecycleStatus\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"version\" : \"version\", \"@baseType\" : \"@baseType\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"category\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\"}", Catalog.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CatalogApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a Catalog by ID", operationId = "retrieveCatalog", description = "This operation retrieves a Catalog entity. Attribute selection is enabled for all first level attributes.", tags={ "catalog", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/catalog/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveCatalog(@Parameter(description = "Identifier of the Catalog",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"catalogType\" : \"catalogType\", \"lifecycleStatus\" : \"lifecycleStatus\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"version\" : \"version\", \"@baseType\" : \"@baseType\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"category\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\"}", Catalog.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CatalogApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/CatalogApiController.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/CatalogApiController.java new file mode 100644 index 0000000..a2952a6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/CatalogApiController.java @@ -0,0 +1,114 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.util.List; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pcm620.model.Catalog; +import org.etsi.osl.tmf.pcm620.model.CatalogCreate; +import org.etsi.osl.tmf.pcm620.model.CatalogUpdate; +import org.etsi.osl.tmf.pcm620.reposervices.ProductCatalogRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Controller +@RequestMapping("/productCatalogManagement/v4/") +public class CatalogApiController implements CatalogApi { + + private static final Logger log = LoggerFactory.getLogger(CatalogApiController.class); + + @Autowired + ProductCatalogRepoService catalogRepoService; + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @Autowired + public CatalogApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public ResponseEntity createCatalog(@Valid CatalogCreate catalog) { + try { + + Catalog c = catalogRepoService.addCatalog(catalog); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity deleteCatalog(String id) { + try { + + return new ResponseEntity( catalogRepoService.deleteById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity> listCatalog(@Valid String fields, @Valid Integer offset, + @Valid Integer limit) { + try { + return new ResponseEntity>( catalogRepoService.findAll() , HttpStatus.OK); + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity patchCatalog(String id, @Valid CatalogUpdate catalog) { + Catalog c = catalogRepoService.updateCatalog( id, catalog ); + + return new ResponseEntity< Catalog>(c, HttpStatus.OK); + } + + @Override + public ResponseEntity retrieveCatalog(String id, @Valid String fields) { + try { + + return new ResponseEntity( catalogRepoService.findById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/CategoryApi.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/CategoryApi.java new file mode 100644 index 0000000..ebae861 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/CategoryApi.java @@ -0,0 +1,212 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pcm620.model.Category; +import org.etsi.osl.tmf.pcm620.model.CategoryCreate; +import org.etsi.osl.tmf.pcm620.model.CategoryUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Tag(name = "category", description = "the category API") +public interface CategoryApi { + + Logger log = LoggerFactory.getLogger(CategoryApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a Category", operationId = "createCategory", description = "This operation creates a Category entity.", tags={ "category", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/category", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createCategory(@Parameter(description = "The Category to be created" ,required=true ) @Valid @RequestBody CategoryCreate category) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"subCategory\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"isRoot\" : true, \"lifecycleStatus\" : \"lifecycleStatus\", \"productOffering\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"version\" : \"version\", \"parentId\" : \"parentId\", \"@baseType\" : \"@baseType\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"}", Category.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CategoryApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a Category", operationId = "deleteCategory", description = "This operation deletes a Category entity.", tags={ "category", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/category/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteCategory(@Parameter(description = "Identifier of the Category",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CategoryApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find Category objects", operationId = "listCategory", description = "This operation list or find Category entities" , tags={ "category", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/category", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listCategory(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"subCategory\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"isRoot\" : true, \"lifecycleStatus\" : \"lifecycleStatus\", \"productOffering\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"version\" : \"version\", \"parentId\" : \"parentId\", \"@baseType\" : \"@baseType\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"}, { \"subCategory\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"isRoot\" : true, \"lifecycleStatus\" : \"lifecycleStatus\", \"productOffering\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"version\" : \"version\", \"parentId\" : \"parentId\", \"@baseType\" : \"@baseType\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CategoryApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a Category", operationId = "patchCategory", description = "This operation updates partially a Category entity.", tags={ "category", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/category/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchCategory(@Parameter(description = "Identifier of the Category",required=true) @PathVariable("id") String id,@Parameter(description = "The Category to be updated" ,required=true ) @Valid @RequestBody CategoryUpdate category) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"subCategory\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"isRoot\" : true, \"lifecycleStatus\" : \"lifecycleStatus\", \"productOffering\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"version\" : \"version\", \"parentId\" : \"parentId\", \"@baseType\" : \"@baseType\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"}", Category.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CategoryApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a Category by ID", operationId = "retrieveCategory", description = "This operation retrieves a Category entity. Attribute selection is enabled for all first level attributes.", tags={ "category", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/category/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveCategory(@Parameter(description = "Identifier of the Category",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"subCategory\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"isRoot\" : true, \"lifecycleStatus\" : \"lifecycleStatus\", \"productOffering\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"version\" : \"version\", \"parentId\" : \"parentId\", \"@baseType\" : \"@baseType\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\"}", Category.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CategoryApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/CategoryApiController.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/CategoryApiController.java new file mode 100644 index 0000000..6c51fb7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/CategoryApiController.java @@ -0,0 +1,124 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.util.List; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pcm620.model.Category; +import org.etsi.osl.tmf.pcm620.model.CategoryCreate; +import org.etsi.osl.tmf.pcm620.model.CategoryUpdate; +import org.etsi.osl.tmf.pcm620.reposervices.ProductCategoryRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Controller +@RequestMapping("/productCatalogManagement/v4/") +public class CategoryApiController implements CategoryApi { + + + private static final Logger log = LoggerFactory.getLogger( CategoryApiController.class); + + @Autowired + ProductCategoryRepoService categoryRepoService; + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public CategoryApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public ResponseEntity createCategory(@Valid CategoryCreate category) { + try { + + Category c = categoryRepoService.addCategory( category ); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + @Override + public ResponseEntity deleteCategory(String id) { + try { + if ( categoryRepoService.deleteById(id) ) { + return new ResponseEntity(HttpStatus.OK); + + } else { + return new ResponseEntity(HttpStatus.NOT_MODIFIED ); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity> listCategory(@Valid String fields, @Valid Integer offset, + @Valid Integer limit) { + + try { + return new ResponseEntity>(categoryRepoService.findAll(), HttpStatus.OK); + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + @Override + public ResponseEntity patchCategory(String id, @Valid CategoryUpdate category) { + Category c = categoryRepoService.updateCategory(id, category); + + return new ResponseEntity(c, HttpStatus.OK); + } + + @Override + public ResponseEntity retrieveCategory(String id, @Valid String fields) { + try { + + return new ResponseEntity(categoryRepoService.findByUuid(id), HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/ExportJobApi.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/ExportJobApi.java new file mode 100644 index 0000000..3c2581d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/ExportJobApi.java @@ -0,0 +1,183 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pcm620.model.ExportJob; +import org.etsi.osl.tmf.pcm620.model.ExportJobCreate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Tag(name = "exportJob", description = "the exportJob API") +public interface ExportJobApi { + + Logger log = LoggerFactory.getLogger(ExportJobApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a ExportJob", operationId = "createExportJob", description = "This operation creates a ExportJob entity.", tags={ "exportJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/exportJob", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createExportJob(@Parameter(description = "The ExportJob to be created" ,required=true ) @Valid @RequestBody ExportJobCreate exportJob) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"@type\" : \"@type\", \"query\" : \"query\", \"errorLog\" : \"errorLog\", \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\", \"url\" : \"url\", \"path\" : \"path\", \"@baseType\" : \"@baseType\", \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"contentType\" : \"contentType\", \"status\" : { }}", ExportJob.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ExportJobApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a ExportJob", operationId = "deleteExportJob", description = "This operation deletes a ExportJob entity.", tags={ "exportJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/exportJob/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteExportJob(@Parameter(description = "Identifier of the ExportJob",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ExportJobApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find ExportJob objects", operationId = "listExportJob", description = "This operation list or find ExportJob entities" , tags={ "exportJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/exportJob", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listExportJob(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"@type\" : \"@type\", \"query\" : \"query\", \"errorLog\" : \"errorLog\", \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\", \"url\" : \"url\", \"path\" : \"path\", \"@baseType\" : \"@baseType\", \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"contentType\" : \"contentType\", \"status\" : { }}, { \"@type\" : \"@type\", \"query\" : \"query\", \"errorLog\" : \"errorLog\", \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\", \"url\" : \"url\", \"path\" : \"path\", \"@baseType\" : \"@baseType\", \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"contentType\" : \"contentType\", \"status\" : { }} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ExportJobApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a ExportJob by ID", operationId = "retrieveExportJob", description = "This operation retrieves a ExportJob entity. Attribute selection is enabled for all first level attributes.", tags={ "exportJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/exportJob/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveExportJob(@Parameter(description = "Identifier of the ExportJob",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"@type\" : \"@type\", \"query\" : \"query\", \"errorLog\" : \"errorLog\", \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\", \"url\" : \"url\", \"path\" : \"path\", \"@baseType\" : \"@baseType\", \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"contentType\" : \"contentType\", \"status\" : { }}", ExportJob.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ExportJobApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/ExportJobApiController.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/ExportJobApiController.java new file mode 100644 index 0000000..1107adb --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/ExportJobApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Controller( "ExportJobApiController620" ) +@RequestMapping("/productCatalogManagement/v4/") +public class ExportJobApiController implements ExportJobApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ExportJobApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/HubApi.java new file mode 100644 index 0000000..2de2610 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/HubApi.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pcm620.model.EventSubscription; +import org.etsi.osl.tmf.pcm620.model.EventSubscriptionInput; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Tag(name = "hub", description = "the hub API") +public interface HubApi { + + Logger log = LoggerFactory.getLogger(HubApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Register a listener", operationId = "registerListener", description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Subscribed" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Unregister a listener", operationId = "unregisterListener", description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method not allowed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/HubApiController.java new file mode 100644 index 0000000..5517743 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/HubApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Controller("HubApiController620") +@RequestMapping("/productCatalogManagement/v4/") +public class HubApiController implements HubApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public HubApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/ImportJobApi.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/ImportJobApi.java new file mode 100644 index 0000000..3bcde9b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/ImportJobApi.java @@ -0,0 +1,183 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pcm620.model.ImportJob; +import org.etsi.osl.tmf.pcm620.model.ImportJobCreate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Tag(name = "importJob", description = "the importJob API") +public interface ImportJobApi { + + Logger log = LoggerFactory.getLogger(ImportJobApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a ImportJob", operationId = "createImportJob", description = "This operation creates a ImportJob entity.", tags={ "importJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/importJob", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createImportJob(@Parameter(description = "The ImportJob to be created" ,required=true ) @Valid @RequestBody ImportJobCreate importJob) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"path\" : \"path\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\", \"errorLog\" : \"errorLog\", \"id\" : \"id\", \"href\" : \"href\", \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"contentType\" : \"contentType\", \"url\" : \"url\", \"status\" : { }}", ImportJob.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ImportJobApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a ImportJob", operationId = "deleteImportJob", description = "This operation deletes a ImportJob entity.", tags={ "importJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/importJob/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteImportJob(@Parameter(description = "Identifier of the ImportJob",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ImportJobApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find ImportJob objects", operationId = "listImportJob", description = "This operation list or find ImportJob entities" , tags={ "importJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/importJob", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listImportJob(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"path\" : \"path\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\", \"errorLog\" : \"errorLog\", \"id\" : \"id\", \"href\" : \"href\", \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"contentType\" : \"contentType\", \"url\" : \"url\", \"status\" : { }}, { \"path\" : \"path\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\", \"errorLog\" : \"errorLog\", \"id\" : \"id\", \"href\" : \"href\", \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"contentType\" : \"contentType\", \"url\" : \"url\", \"status\" : { }} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ImportJobApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a ImportJob by ID", operationId = "retrieveImportJob", description = "This operation retrieves a ImportJob entity. Attribute selection is enabled for all first level attributes.", tags={ "importJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/importJob/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveImportJob(@Parameter(description = "Identifier of the ImportJob",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"path\" : \"path\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\", \"errorLog\" : \"errorLog\", \"id\" : \"id\", \"href\" : \"href\", \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"contentType\" : \"contentType\", \"url\" : \"url\", \"status\" : { }}", ImportJob.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ImportJobApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/ImportJobApiController.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/ImportJobApiController.java new file mode 100644 index 0000000..1fc0c78 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/ImportJobApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Controller("ImportJobApiController620") +@RequestMapping("/productCatalogManagement/v4/") +public class ImportJobApiController implements ImportJobApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ImportJobApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/ListenerApi.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/ListenerApi.java new file mode 100644 index 0000000..200f4bb --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/ListenerApi.java @@ -0,0 +1,544 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pcm620.model.CatalogBatchEvent; +import org.etsi.osl.tmf.pcm620.model.CatalogCreateEvent; +import org.etsi.osl.tmf.pcm620.model.CatalogDeleteEvent; +import org.etsi.osl.tmf.pcm620.model.CategoryCreateEvent; +import org.etsi.osl.tmf.pcm620.model.CategoryDeleteEvent; +import org.etsi.osl.tmf.pcm620.model.EventSubscription; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingAttributeValueChangeEvent; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingCreateEvent; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingDeleteEvent; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingPriceAttributeValueChangeEvent; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingPriceCreateEvent; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingPriceDeleteEvent; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingPriceStateChangeEvent; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingStateChangeEvent; +import org.etsi.osl.tmf.pcm620.model.ProductSpecificationCreateEvent; +import org.etsi.osl.tmf.pcm620.model.ProductSpecificationDeleteEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Tag(name = "listener", description = "the listener API") +public interface ListenerApi { + + Logger log = LoggerFactory.getLogger(ListenerApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Client listener for entity CatalogBatchEvent", operationId = "listenToCatalogBatchEvent", description = "Example of a client listener for receiving the notification CatalogBatchEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/catalogBatchEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToCatalogBatchEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody CatalogBatchEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity CatalogCreateEvent", operationId = "listenToCatalogCreateEvent", description = "Example of a client listener for receiving the notification CatalogCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/catalogCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToCatalogCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody CatalogCreateEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity CatalogDeleteEvent", operationId = "listenToCatalogDeleteEvent", description = "Example of a client listener for receiving the notification CatalogDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/catalogDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToCatalogDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody CatalogDeleteEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity CategoryCreateEvent", operationId = "listenToCategoryCreateEvent", description = "Example of a client listener for receiving the notification CategoryCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/categoryCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToCategoryCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody CategoryCreateEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity CategoryDeleteEvent", operationId = "listenToCategoryDeleteEvent", description = "Example of a client listener for receiving the notification CategoryDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/categoryDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToCategoryDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody CategoryDeleteEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ProductOfferingAttributeValueChangeEvent", operationId = "listenToProductOfferingAttributeValueChangeEvent", description = "Example of a client listener for receiving the notification ProductOfferingAttributeValueChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/productOfferingAttributeValueChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToProductOfferingAttributeValueChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ProductOfferingAttributeValueChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ProductOfferingCreateEvent", operationId = "listenToProductOfferingCreateEvent", description = "Example of a client listener for receiving the notification ProductOfferingCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/productOfferingCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToProductOfferingCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ProductOfferingCreateEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ProductOfferingDeleteEvent", operationId = "listenToProductOfferingDeleteEvent", description = "Example of a client listener for receiving the notification ProductOfferingDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/productOfferingDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToProductOfferingDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ProductOfferingDeleteEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ProductOfferingPriceAttributeValueChangeEvent", operationId = "listenToProductOfferingPriceAttributeValueChangeEvent", description = "Example of a client listener for receiving the notification ProductOfferingPriceAttributeValueChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/productOfferingPriceAttributeValueChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToProductOfferingPriceAttributeValueChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ProductOfferingPriceAttributeValueChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ProductOfferingPriceCreateEvent", operationId = "listenToProductOfferingPriceCreateEvent", description = "Example of a client listener for receiving the notification ProductOfferingPriceCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/productOfferingPriceCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToProductOfferingPriceCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ProductOfferingPriceCreateEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ProductOfferingPriceDeleteEvent", operationId = "listenToProductOfferingPriceDeleteEvent", description = "Example of a client listener for receiving the notification ProductOfferingPriceDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/productOfferingPriceDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToProductOfferingPriceDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ProductOfferingPriceDeleteEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ProductOfferingPriceStateChangeEvent", operationId = "listenToProductOfferingPriceStateChangeEvent", description = "Example of a client listener for receiving the notification ProductOfferingPriceStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/productOfferingPriceStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToProductOfferingPriceStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ProductOfferingPriceStateChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ProductOfferingStateChangeEvent", operationId = "listenToProductOfferingStateChangeEvent", description = "Example of a client listener for receiving the notification ProductOfferingStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/productOfferingStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToProductOfferingStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ProductOfferingStateChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ProductSpecificationCreateEvent", operationId = "listenToProductSpecificationCreateEvent", description = "Example of a client listener for receiving the notification ProductSpecificationCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/productSpecificationCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToProductSpecificationCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ProductSpecificationCreateEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ProductSpecificationDeleteEvent", operationId = "listenToProductSpecificationDeleteEvent", description = "Example of a client listener for receiving the notification ProductSpecificationDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/productSpecificationDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToProductSpecificationDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ProductSpecificationDeleteEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/ListenerApiController.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/ListenerApiController.java new file mode 100644 index 0000000..77f66db --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/ListenerApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Controller("ListenerApiController620") +@RequestMapping("/productCatalogManagement/v4/") +public class ListenerApiController implements ListenerApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ListenerApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/NotFoundException.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/NotFoundException.java new file mode 100644 index 0000000..93493d5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/NotFoundException.java @@ -0,0 +1,30 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class NotFoundException extends ApiException { + private int code; + public NotFoundException (int code, String msg) { + super(code, msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/ProductOfferingApi.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/ProductOfferingApi.java new file mode 100644 index 0000000..3b0eacf --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/ProductOfferingApi.java @@ -0,0 +1,227 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pcm620.model.ProductOffering; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingCreate; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Tag(name = "productOffering", description = "the productOffering API") +public interface ProductOfferingApi { + + Logger log = LoggerFactory.getLogger(ProductOfferingApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a ProductOffering", operationId = "createProductOffering", description = "This operation creates a ProductOffering entity." , tags = { + "productOffering", }) + @ApiResponses(value = { @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productOffering", produces = { "application/json;charset=utf-8" }, consumes = { + "application/json;charset=utf-8" }, method = RequestMethod.POST) + default ResponseEntity createProductOffering( + @Parameter(description = "The ProductOffering to be created", required = true) @Valid @RequestBody ProductOfferingCreate productOffering) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue( + "{ \"isBundle\" : true, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"lifecycleStatus\" : \"lifecycleStatus\", \"serviceCandidate\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@type\" : \"@type\", \"channel\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"description\" : \"description\", \"productOfferingPrice\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"resourceCandidate\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"statusReason\" : \"statusReason\", \"bundledProductOffering\" : [ { \"bundledProductOfferingOption\" : { \"@baseType\" : \"@baseType\", \"numberRelOfferDefault\" : 6, \"numberRelOfferLowerLimit\" : 1, \"@type\" : \"@type\", \"numberRelOfferUpperLimit\" : 5, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"bundledProductOfferingOption\" : { \"@baseType\" : \"@baseType\", \"numberRelOfferDefault\" : 6, \"numberRelOfferLowerLimit\" : 1, \"@type\" : \"@type\", \"numberRelOfferUpperLimit\" : 5, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"attachment\" : [ { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"id\" : \"id\", \"href\" : \"href\", \"place\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"productOfferingTerm\" : [ { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"marketSegment\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"prodSpecCharValueUse\" : [ { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 }, { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 } ], \"agreement\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"isSellable\" : true, \"serviceLevelAgreement\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"version\" : \"version\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"category\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ]}", + ProductOffering.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default ProductOfferingApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "Deletes a ProductOffering", operationId = "deleteProductOffering", description = "This operation deletes a ProductOffering entity.", tags = { + "productOffering", }) + @ApiResponses(value = { @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productOffering/{id}", produces = { + "application/json;charset=utf-8" }, method = RequestMethod.DELETE) + default ResponseEntity deleteProductOffering( + @Parameter(description = "Identifier of the ProductOffering", required = true) @PathVariable("id") String id) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default ProductOfferingApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "List or find ProductOffering objects", operationId = "listProductOffering", description = "This operation list or find ProductOffering entities" , tags = { + "productOffering", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productOffering", produces = { + "application/json;charset=utf-8" }, method = RequestMethod.GET) + default ResponseEntity> listProductOffering( + @Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit, + @Parameter(hidden = true) @Valid @RequestParam Map allParams) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue( + "[ { \"isBundle\" : true, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"lifecycleStatus\" : \"lifecycleStatus\", \"serviceCandidate\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@type\" : \"@type\", \"channel\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"description\" : \"description\", \"productOfferingPrice\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"resourceCandidate\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"statusReason\" : \"statusReason\", \"bundledProductOffering\" : [ { \"bundledProductOfferingOption\" : { \"@baseType\" : \"@baseType\", \"numberRelOfferDefault\" : 6, \"numberRelOfferLowerLimit\" : 1, \"@type\" : \"@type\", \"numberRelOfferUpperLimit\" : 5, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"bundledProductOfferingOption\" : { \"@baseType\" : \"@baseType\", \"numberRelOfferDefault\" : 6, \"numberRelOfferLowerLimit\" : 1, \"@type\" : \"@type\", \"numberRelOfferUpperLimit\" : 5, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"attachment\" : [ { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"id\" : \"id\", \"href\" : \"href\", \"place\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"productOfferingTerm\" : [ { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"marketSegment\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"prodSpecCharValueUse\" : [ { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 }, { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 } ], \"agreement\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"isSellable\" : true, \"serviceLevelAgreement\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"version\" : \"version\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"category\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ]}, { \"isBundle\" : true, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"lifecycleStatus\" : \"lifecycleStatus\", \"serviceCandidate\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@type\" : \"@type\", \"channel\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"description\" : \"description\", \"productOfferingPrice\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"resourceCandidate\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"statusReason\" : \"statusReason\", \"bundledProductOffering\" : [ { \"bundledProductOfferingOption\" : { \"@baseType\" : \"@baseType\", \"numberRelOfferDefault\" : 6, \"numberRelOfferLowerLimit\" : 1, \"@type\" : \"@type\", \"numberRelOfferUpperLimit\" : 5, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"bundledProductOfferingOption\" : { \"@baseType\" : \"@baseType\", \"numberRelOfferDefault\" : 6, \"numberRelOfferLowerLimit\" : 1, \"@type\" : \"@type\", \"numberRelOfferUpperLimit\" : 5, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"attachment\" : [ { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"id\" : \"id\", \"href\" : \"href\", \"place\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"productOfferingTerm\" : [ { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"marketSegment\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"prodSpecCharValueUse\" : [ { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 }, { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 } ], \"agreement\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"isSellable\" : true, \"serviceLevelAgreement\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"version\" : \"version\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"category\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ]} ]", + List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default ProductOfferingApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "Updates partially a ProductOffering", operationId = "patchProductOffering", description = "This operation updates partially a ProductOffering entity." , tags = { + "productOffering", }) + @ApiResponses(value = { @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productOffering/{id}", produces = { "application/json;charset=utf-8" }, consumes = { + "application/json;charset=utf-8" }, method = RequestMethod.PATCH) + default ResponseEntity patchProductOffering( + @Parameter(description = "Identifier of the ProductOffering", required = true) @PathVariable("id") String id, + @Parameter(description = "The ProductOffering to be updated", required = true) @Valid @RequestBody ProductOfferingUpdate productOffering) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue( + "{ \"isBundle\" : true, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"lifecycleStatus\" : \"lifecycleStatus\", \"serviceCandidate\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@type\" : \"@type\", \"channel\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"description\" : \"description\", \"productOfferingPrice\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"resourceCandidate\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"statusReason\" : \"statusReason\", \"bundledProductOffering\" : [ { \"bundledProductOfferingOption\" : { \"@baseType\" : \"@baseType\", \"numberRelOfferDefault\" : 6, \"numberRelOfferLowerLimit\" : 1, \"@type\" : \"@type\", \"numberRelOfferUpperLimit\" : 5, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"bundledProductOfferingOption\" : { \"@baseType\" : \"@baseType\", \"numberRelOfferDefault\" : 6, \"numberRelOfferLowerLimit\" : 1, \"@type\" : \"@type\", \"numberRelOfferUpperLimit\" : 5, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"attachment\" : [ { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"id\" : \"id\", \"href\" : \"href\", \"place\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"productOfferingTerm\" : [ { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"marketSegment\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"prodSpecCharValueUse\" : [ { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 }, { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 } ], \"agreement\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"isSellable\" : true, \"serviceLevelAgreement\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"version\" : \"version\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"category\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ]}", + ProductOffering.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default ProductOfferingApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "Retrieves a ProductOffering by ID", operationId = "retrieveProductOffering", description = "This operation retrieves a ProductOffering entity. Attribute selection is enabled for all first level attributes." , tags = { + "productOffering", }) + @ApiResponses(value = { @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productOffering/{id}", produces = { + "application/json;charset=utf-8" }, method = RequestMethod.GET) + default ResponseEntity retrieveProductOffering( + @Parameter(description = "Identifier of the ProductOffering", required = true) @PathVariable("id") String id, + @Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue( + "{ \"isBundle\" : true, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"lifecycleStatus\" : \"lifecycleStatus\", \"serviceCandidate\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@type\" : \"@type\", \"channel\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"description\" : \"description\", \"productOfferingPrice\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"resourceCandidate\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"statusReason\" : \"statusReason\", \"bundledProductOffering\" : [ { \"bundledProductOfferingOption\" : { \"@baseType\" : \"@baseType\", \"numberRelOfferDefault\" : 6, \"numberRelOfferLowerLimit\" : 1, \"@type\" : \"@type\", \"numberRelOfferUpperLimit\" : 5, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"bundledProductOfferingOption\" : { \"@baseType\" : \"@baseType\", \"numberRelOfferDefault\" : 6, \"numberRelOfferLowerLimit\" : 1, \"@type\" : \"@type\", \"numberRelOfferUpperLimit\" : 5, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"attachment\" : [ { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"id\" : \"id\", \"href\" : \"href\", \"place\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"productOfferingTerm\" : [ { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"marketSegment\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"prodSpecCharValueUse\" : [ { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 }, { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 } ], \"agreement\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"isSellable\" : true, \"serviceLevelAgreement\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"version\" : \"version\", \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"category\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ]}", + ProductOffering.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default ProductOfferingApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/ProductOfferingApiController.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/ProductOfferingApiController.java new file mode 100644 index 0000000..c22b53e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/ProductOfferingApiController.java @@ -0,0 +1,171 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.centrallog.client.CLevel; +import org.etsi.osl.centrallog.client.CentralLogger; +import org.etsi.osl.tmf.pcm620.model.ProductOffering; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingCreate; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingUpdate; +import org.etsi.osl.tmf.pcm620.reposervices.ProductOfferingRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Controller +@RequestMapping("/productCatalogManagement/v4/") +public class ProductOfferingApiController implements ProductOfferingApi { + + Logger log = LoggerFactory.getLogger(ProductOfferingApiController.class); + + + private final ObjectMapper objectMapper; + private final HttpServletRequest request; + + @Autowired + ProductOfferingRepoService productOfferingRepoService; + + + @Value("${spring.application.name}") + private String compname; + + + @Autowired + private CentralLogger centralLogger; + + @org.springframework.beans.factory.annotation.Autowired + public ProductOfferingApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity createProductOffering(@Valid ProductOfferingCreate productOffering) { + try { + + ProductOffering c = productOfferingRepoService.addProductOffering(productOffering); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity deleteProductOffering(String id) { + try { + + return new ResponseEntity(productOfferingRepoService.deleteByUuid(id), HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity> listProductOffering(@Valid String fields, @Valid Integer offset, + @Valid Integer limit, + @Valid Map allParams) { + try { + if (allParams != null) { + allParams.remove("fields"); + allParams.remove("offset"); + allParams.remove("limit"); + } else { + allParams = new HashMap<>(); + } + if ((fields == null) && (allParams.size() == 0)) { + + String myfields = "lastUpdate,lifecycleStatus"; + return new ResponseEntity>( + productOfferingRepoService.findAll( myfields, allParams), HttpStatus.OK); +// return new ResponseEntity>(serviceSpecificationRepoService.findAll(), +// HttpStatus.OK); + + + } else { + + + return new ResponseEntity>( + productOfferingRepoService.findAll(fields, allParams), HttpStatus.OK); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity patchProductOffering(String id, + @Valid ProductOfferingUpdate productOffering) { + ProductOffering c = productOfferingRepoService.updateProductOffering(id, productOffering); + + return new ResponseEntity(c, HttpStatus.OK); + } + + @Override + public ResponseEntity retrieveProductOffering(String id, @Valid String fields) { + try { + + Object attr = request.getSession().getAttribute("SPRING_SECURITY_CONTEXT"); + + if ( attr!=null) { + SecurityContextHolder.setContext( (SecurityContext) attr ); + } + if ( SecurityContextHolder.getContext().getAuthentication() != null ) { + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + centralLogger.log( CLevel.INFO, "User " + authentication.getName() + " retrieve spec id: "+ id , compname ); + } else { + centralLogger.log( CLevel.INFO, "Anonymous retrieve spec id: "+ id, compname ); + } + + return new ResponseEntity(productOfferingRepoService.findByUuid(id), + HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/ProductOfferingPriceApi.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/ProductOfferingPriceApi.java new file mode 100644 index 0000000..81f9748 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/ProductOfferingPriceApi.java @@ -0,0 +1,214 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingPrice; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingPriceCreate; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingPriceUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Tag(name = "productOfferingPrice", description = "the productOfferingPrice API") +public interface ProductOfferingPriceApi { + + Logger log = LoggerFactory.getLogger(ProductOfferingPriceApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a ProductOfferingPrice", operationId = "createProductOfferingPrice", description = "This operation creates a ProductOfferingPrice entity.", tags={ "productOfferingPrice", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productOfferingPrice", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createProductOfferingPrice(@Parameter(description = "The ProductOfferingPrice to be created" ,required=true ) @Valid @RequestBody ProductOfferingPriceCreate productOfferingPrice) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"isBundle\" : true, \"popRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"lifecycleStatus\" : \"lifecycleStatus\", \"@type\" : \"@type\", \"description\" : \"description\", \"recurringChargePeriodType\" : \"recurringChargePeriodType\", \"recurringChargePeriodLength\" : 6, \"@baseType\" : \"@baseType\", \"price\" : { \"unit\" : \"unit\", \"value\" : 1.4658129 }, \"percentage\" : 0.8008282, \"id\" : \"id\", \"href\" : \"href\", \"place\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"@schemaLocation\", \"bundledPopRelationship\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"productOfferingTerm\" : [ { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"prodSpecCharValueUse\" : [ { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 }, { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 } ], \"unitOfMeasure\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"priceType\" : \"priceType\", \"tax\" : [ { \"taxRate\" : 5.962134, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"taxAmount\" : { \"unit\" : \"unit\", \"value\" : 1.4658129 }, \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxCategory\" : \"taxCategory\" }, { \"taxRate\" : 5.962134, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"taxAmount\" : { \"unit\" : \"unit\", \"value\" : 1.4658129 }, \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxCategory\" : \"taxCategory\" } ], \"version\" : \"version\", \"pricingLogicAlgorithm\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"plaSpecId\" : \"plaSpecId\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"plaSpecId\" : \"plaSpecId\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"constraint\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ]}", ProductOfferingPrice.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ProductOfferingPriceApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a ProductOfferingPrice", operationId = "deleteProductOfferingPrice", description = "This operation deletes a ProductOfferingPrice entity.", tags={ "productOfferingPrice", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productOfferingPrice/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteProductOfferingPrice(@Parameter(description = "Identifier of the ProductOfferingPrice",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ProductOfferingPriceApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find ProductOfferingPrice objects", operationId = "listProductOfferingPrice", description = "This operation list or find ProductOfferingPrice entities" , tags={ "productOfferingPrice", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productOfferingPrice", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listProductOfferingPrice(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit, + @Valid Map allParams) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"isBundle\" : true, \"popRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"lifecycleStatus\" : \"lifecycleStatus\", \"@type\" : \"@type\", \"description\" : \"description\", \"recurringChargePeriodType\" : \"recurringChargePeriodType\", \"recurringChargePeriodLength\" : 6, \"@baseType\" : \"@baseType\", \"price\" : { \"unit\" : \"unit\", \"value\" : 1.4658129 }, \"percentage\" : 0.8008282, \"id\" : \"id\", \"href\" : \"href\", \"place\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"@schemaLocation\", \"bundledPopRelationship\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"productOfferingTerm\" : [ { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"prodSpecCharValueUse\" : [ { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 }, { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 } ], \"unitOfMeasure\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"priceType\" : \"priceType\", \"tax\" : [ { \"taxRate\" : 5.962134, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"taxAmount\" : { \"unit\" : \"unit\", \"value\" : 1.4658129 }, \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxCategory\" : \"taxCategory\" }, { \"taxRate\" : 5.962134, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"taxAmount\" : { \"unit\" : \"unit\", \"value\" : 1.4658129 }, \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxCategory\" : \"taxCategory\" } ], \"version\" : \"version\", \"pricingLogicAlgorithm\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"plaSpecId\" : \"plaSpecId\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"plaSpecId\" : \"plaSpecId\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"constraint\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ]}, { \"isBundle\" : true, \"popRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"lifecycleStatus\" : \"lifecycleStatus\", \"@type\" : \"@type\", \"description\" : \"description\", \"recurringChargePeriodType\" : \"recurringChargePeriodType\", \"recurringChargePeriodLength\" : 6, \"@baseType\" : \"@baseType\", \"price\" : { \"unit\" : \"unit\", \"value\" : 1.4658129 }, \"percentage\" : 0.8008282, \"id\" : \"id\", \"href\" : \"href\", \"place\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"@schemaLocation\", \"bundledPopRelationship\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"productOfferingTerm\" : [ { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"prodSpecCharValueUse\" : [ { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 }, { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 } ], \"unitOfMeasure\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"priceType\" : \"priceType\", \"tax\" : [ { \"taxRate\" : 5.962134, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"taxAmount\" : { \"unit\" : \"unit\", \"value\" : 1.4658129 }, \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxCategory\" : \"taxCategory\" }, { \"taxRate\" : 5.962134, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"taxAmount\" : { \"unit\" : \"unit\", \"value\" : 1.4658129 }, \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxCategory\" : \"taxCategory\" } ], \"version\" : \"version\", \"pricingLogicAlgorithm\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"plaSpecId\" : \"plaSpecId\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"plaSpecId\" : \"plaSpecId\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"constraint\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ]} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ProductOfferingPriceApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a ProductOfferingPrice", operationId = "patchProductOfferingPrice", description = "This operation updates partially a ProductOfferingPrice entity.", tags={ "productOfferingPrice", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productOfferingPrice/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchProductOfferingPrice(@Parameter(description = "Identifier of the ProductOfferingPrice",required=true) @PathVariable("id") String id,@Parameter(description = "The ProductOfferingPrice to be updated" ,required=true ) @Valid @RequestBody ProductOfferingPriceUpdate productOfferingPrice) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"isBundle\" : true, \"popRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"lifecycleStatus\" : \"lifecycleStatus\", \"@type\" : \"@type\", \"description\" : \"description\", \"recurringChargePeriodType\" : \"recurringChargePeriodType\", \"recurringChargePeriodLength\" : 6, \"@baseType\" : \"@baseType\", \"price\" : { \"unit\" : \"unit\", \"value\" : 1.4658129 }, \"percentage\" : 0.8008282, \"id\" : \"id\", \"href\" : \"href\", \"place\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"@schemaLocation\", \"bundledPopRelationship\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"productOfferingTerm\" : [ { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"prodSpecCharValueUse\" : [ { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 }, { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 } ], \"unitOfMeasure\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"priceType\" : \"priceType\", \"tax\" : [ { \"taxRate\" : 5.962134, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"taxAmount\" : { \"unit\" : \"unit\", \"value\" : 1.4658129 }, \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxCategory\" : \"taxCategory\" }, { \"taxRate\" : 5.962134, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"taxAmount\" : { \"unit\" : \"unit\", \"value\" : 1.4658129 }, \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxCategory\" : \"taxCategory\" } ], \"version\" : \"version\", \"pricingLogicAlgorithm\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"plaSpecId\" : \"plaSpecId\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"plaSpecId\" : \"plaSpecId\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"constraint\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ]}", ProductOfferingPrice.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ProductOfferingPriceApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a ProductOfferingPrice by ID", operationId = "retrieveProductOfferingPrice", description = "This operation retrieves a ProductOfferingPrice entity. Attribute selection is enabled for all first level attributes.", tags={ "productOfferingPrice", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productOfferingPrice/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveProductOfferingPrice(@Parameter(description = "Identifier of the ProductOfferingPrice",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"isBundle\" : true, \"popRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"lifecycleStatus\" : \"lifecycleStatus\", \"@type\" : \"@type\", \"description\" : \"description\", \"recurringChargePeriodType\" : \"recurringChargePeriodType\", \"recurringChargePeriodLength\" : 6, \"@baseType\" : \"@baseType\", \"price\" : { \"unit\" : \"unit\", \"value\" : 1.4658129 }, \"percentage\" : 0.8008282, \"id\" : \"id\", \"href\" : \"href\", \"place\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@schemaLocation\" : \"@schemaLocation\", \"bundledPopRelationship\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"productOfferingTerm\" : [ { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"duration\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"prodSpecCharValueUse\" : [ { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 }, { \"minCardinality\" : 2, \"productSpecification\" : { \"@referredType\" : \"@referredType\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"description\" : \"description\", \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"maxCardinality\" : 5 } ], \"unitOfMeasure\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"priceType\" : \"priceType\", \"tax\" : [ { \"taxRate\" : 5.962134, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"taxAmount\" : { \"unit\" : \"unit\", \"value\" : 1.4658129 }, \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxCategory\" : \"taxCategory\" }, { \"taxRate\" : 5.962134, \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"taxAmount\" : { \"unit\" : \"unit\", \"value\" : 1.4658129 }, \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxCategory\" : \"taxCategory\" } ], \"version\" : \"version\", \"pricingLogicAlgorithm\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"plaSpecId\" : \"plaSpecId\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"plaSpecId\" : \"plaSpecId\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"constraint\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ]}", ProductOfferingPrice.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ProductOfferingPriceApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/ProductOfferingPriceApiController.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/ProductOfferingPriceApiController.java new file mode 100644 index 0000000..80a9d37 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/ProductOfferingPriceApiController.java @@ -0,0 +1,188 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.centrallog.client.CLevel; +import org.etsi.osl.centrallog.client.CentralLogger; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingPrice; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingPriceCreate; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingPriceUpdate; +import org.etsi.osl.tmf.pcm620.reposervices.ProductOfferingPriceRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Controller +@RequestMapping("/productCatalogManagement/v4/") +public class ProductOfferingPriceApiController implements ProductOfferingPriceApi { + + + Logger log = LoggerFactory.getLogger(ProductOfferingPriceApiController.class); + + + @Autowired + ProductOfferingPriceRepoService productOfferingPriceRepoService; + + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + + @Value("${spring.application.name}") + private String compname; + + + @Autowired + private CentralLogger centralLogger; + + + @org.springframework.beans.factory.annotation.Autowired + public ProductOfferingPriceApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity createProductOfferingPrice( + @Valid ProductOfferingPriceCreate productOfferingPrice) { + try { + + ProductOfferingPrice c = productOfferingPriceRepoService.addProductOfferingPrice( productOfferingPrice); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity deleteProductOfferingPrice(String id) { + try { + + return new ResponseEntity(productOfferingPriceRepoService.deleteByUuid(id), HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity> listProductOfferingPrice(@Valid String fields, + @Valid Integer offset, @Valid Integer limit, + @Valid Map allParams) { + try { + if (allParams != null) { + allParams.remove("fields"); + allParams.remove("offset"); + allParams.remove("limit"); + } else { + allParams = new HashMap<>(); + } + if ((fields == null) && (allParams.size() == 0)) { + + String myfields = "lastUpdate,lifecycleStatus"; + return new ResponseEntity>( + productOfferingPriceRepoService.findAll( myfields, allParams), HttpStatus.OK); +// return new ResponseEntity>(serviceSpecificationRepoService.findAll(), +// HttpStatus.OK); + + + } else { + + + return new ResponseEntity>( + productOfferingPriceRepoService.findAll(fields, allParams), HttpStatus.OK); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity patchProductOfferingPrice(String id, + @Valid ProductOfferingPriceUpdate productOfferingPrice) { + ProductOfferingPrice c = productOfferingPriceRepoService.updateProductOfferingPrice(id, productOfferingPrice); + + return new ResponseEntity(c, HttpStatus.OK); + } + + @Override + public ResponseEntity retrieveProductOfferingPrice(String id, @Valid String fields) { + try { + + Object attr = request.getSession().getAttribute("SPRING_SECURITY_CONTEXT"); + + if ( attr!=null) { + SecurityContextHolder.setContext( (SecurityContext) attr ); + } + if ( SecurityContextHolder.getContext().getAuthentication() != null ) { + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + centralLogger.log( CLevel.INFO, "User " + authentication.getName() + " retrieve spec id: "+ id , compname ); + } else { + centralLogger.log( CLevel.INFO, "Anonymous retrieve spec id: "+ id, compname ); + } + + return new ResponseEntity(productOfferingPriceRepoService.findByUuid(id), + HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/ProductSpecificationApi.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/ProductSpecificationApi.java new file mode 100644 index 0000000..ba318d1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/ProductSpecificationApi.java @@ -0,0 +1,214 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pcm620.model.ProductSpecification; +import org.etsi.osl.tmf.pcm620.model.ProductSpecificationCreate; +import org.etsi.osl.tmf.pcm620.model.ProductSpecificationUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Tag(name = "productSpecification", description = "the productSpecification API") +public interface ProductSpecificationApi { + + Logger log = LoggerFactory.getLogger(ProductSpecificationApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a ProductSpecification", operationId = "createProductSpecification", description = "This operation creates a ProductSpecification entity.", tags={ "productSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productSpecification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createProductSpecification(@Parameter(description = "The ProductSpecification to be created" ,required=true ) @Valid @RequestBody ProductSpecificationCreate productSpecification) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"isBundle\" : true, \"productSpecCharacteristic\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isUnique\" : true, \"description\" : \"description\", \"maxCardinality\" : 0, \"minCardinality\" : 6, \"regex\" : \"regex\", \"@baseType\" : \"@baseType\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"productSpecCharRelationship\" : [ { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"extensible\" : true, \"configurable\" : true }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isUnique\" : true, \"description\" : \"description\", \"maxCardinality\" : 0, \"minCardinality\" : 6, \"regex\" : \"regex\", \"@baseType\" : \"@baseType\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"productSpecCharRelationship\" : [ { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"extensible\" : true, \"configurable\" : true } ], \"lifecycleStatus\" : \"lifecycleStatus\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"resourceSpecification\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"serviceSpecification\" : [ { \"targetServiceSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"targetServiceSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"description\" : \"description\", \"productNumber\" : \"productNumber\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"version\" : \"version\", \"attachment\" : [ { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"bundledProductSpecification\" : [ { \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"productSpecificationRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"brand\" : \"brand\"}", ProductSpecification.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ProductSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a ProductSpecification", operationId = "deleteProductSpecification", description = "This operation deletes a ProductSpecification entity.", tags={ "productSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productSpecification/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteProductSpecification(@Parameter(description = "Identifier of the ProductSpecification",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ProductSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find ProductSpecification objects", operationId = "listProductSpecification", description = "This operation list or find ProductSpecification entities" , tags={ "productSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productSpecification", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listProductSpecification(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit, + @Valid Map allParams) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"isBundle\" : true, \"productSpecCharacteristic\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isUnique\" : true, \"description\" : \"description\", \"maxCardinality\" : 0, \"minCardinality\" : 6, \"regex\" : \"regex\", \"@baseType\" : \"@baseType\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"productSpecCharRelationship\" : [ { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"extensible\" : true, \"configurable\" : true }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isUnique\" : true, \"description\" : \"description\", \"maxCardinality\" : 0, \"minCardinality\" : 6, \"regex\" : \"regex\", \"@baseType\" : \"@baseType\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"productSpecCharRelationship\" : [ { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"extensible\" : true, \"configurable\" : true } ], \"lifecycleStatus\" : \"lifecycleStatus\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"resourceSpecification\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"serviceSpecification\" : [ { \"targetServiceSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"targetServiceSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"description\" : \"description\", \"productNumber\" : \"productNumber\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"version\" : \"version\", \"attachment\" : [ { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"bundledProductSpecification\" : [ { \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"productSpecificationRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"brand\" : \"brand\"}, { \"isBundle\" : true, \"productSpecCharacteristic\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isUnique\" : true, \"description\" : \"description\", \"maxCardinality\" : 0, \"minCardinality\" : 6, \"regex\" : \"regex\", \"@baseType\" : \"@baseType\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"productSpecCharRelationship\" : [ { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"extensible\" : true, \"configurable\" : true }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isUnique\" : true, \"description\" : \"description\", \"maxCardinality\" : 0, \"minCardinality\" : 6, \"regex\" : \"regex\", \"@baseType\" : \"@baseType\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"productSpecCharRelationship\" : [ { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"extensible\" : true, \"configurable\" : true } ], \"lifecycleStatus\" : \"lifecycleStatus\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"resourceSpecification\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"serviceSpecification\" : [ { \"targetServiceSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"targetServiceSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"description\" : \"description\", \"productNumber\" : \"productNumber\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"version\" : \"version\", \"attachment\" : [ { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"bundledProductSpecification\" : [ { \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"productSpecificationRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"brand\" : \"brand\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ProductSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a ProductSpecification", operationId = "patchProductSpecification", description = "This operation updates partially a ProductSpecification entity.", tags={ "productSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productSpecification/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchProductSpecification(@Parameter(description = "Identifier of the ProductSpecification",required=true) @PathVariable("id") String id,@Parameter(description = "The ProductSpecification to be updated" ,required=true ) @Valid @RequestBody ProductSpecificationUpdate productSpecification) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"isBundle\" : true, \"productSpecCharacteristic\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isUnique\" : true, \"description\" : \"description\", \"maxCardinality\" : 0, \"minCardinality\" : 6, \"regex\" : \"regex\", \"@baseType\" : \"@baseType\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"productSpecCharRelationship\" : [ { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"extensible\" : true, \"configurable\" : true }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isUnique\" : true, \"description\" : \"description\", \"maxCardinality\" : 0, \"minCardinality\" : 6, \"regex\" : \"regex\", \"@baseType\" : \"@baseType\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"productSpecCharRelationship\" : [ { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"extensible\" : true, \"configurable\" : true } ], \"lifecycleStatus\" : \"lifecycleStatus\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"resourceSpecification\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"serviceSpecification\" : [ { \"targetServiceSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"targetServiceSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"description\" : \"description\", \"productNumber\" : \"productNumber\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"version\" : \"version\", \"attachment\" : [ { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"bundledProductSpecification\" : [ { \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"productSpecificationRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"brand\" : \"brand\"}", ProductSpecification.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ProductSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a ProductSpecification by ID", operationId = "retrieveProductSpecification", description = "This operation retrieves a ProductSpecification entity. Attribute selection is enabled for all first level attributes.", tags={ "productSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productSpecification/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveProductSpecification(@Parameter(description = "Identifier of the ProductSpecification",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"isBundle\" : true, \"productSpecCharacteristic\" : [ { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isUnique\" : true, \"description\" : \"description\", \"maxCardinality\" : 0, \"minCardinality\" : 6, \"regex\" : \"regex\", \"@baseType\" : \"@baseType\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"productSpecCharRelationship\" : [ { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"extensible\" : true, \"configurable\" : true }, { \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isUnique\" : true, \"description\" : \"description\", \"maxCardinality\" : 0, \"minCardinality\" : 6, \"regex\" : \"regex\", \"@baseType\" : \"@baseType\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"productSpecCharRelationship\" : [ { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"charSpecSeq\" : 1, \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"productSpecCharacteristicValue\" : [ { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" }, { \"rangeInterval\" : \"rangeInterval\", \"isDefault\" : true, \"regex\" : \"regex\", \"valueTo\" : \"valueTo\", \"unitOfMeasure\" : \"unitOfMeasure\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { }, \"valueFrom\" : \"valueFrom\" } ], \"@schemaLocation\" : \"http://example.com/aeiou\", \"extensible\" : true, \"configurable\" : true } ], \"lifecycleStatus\" : \"lifecycleStatus\", \"targetProductSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"resourceSpecification\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"serviceSpecification\" : [ { \"targetServiceSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" }, { \"targetServiceSchema\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"version\" : \"version\" } ], \"description\" : \"description\", \"productNumber\" : \"productNumber\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"version\" : \"version\", \"attachment\" : [ { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 0.8008282, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"bundledProductSpecification\" : [ { \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"lifecycleStatus\" : \"lifecycleStatus\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\", \"name\" : \"name\", \"productSpecificationRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"brand\" : \"brand\"}", ProductSpecification.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ProductSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/ProductSpecificationApiController.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/ProductSpecificationApiController.java new file mode 100644 index 0000000..48b5f47 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/ProductSpecificationApiController.java @@ -0,0 +1,171 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.centrallog.client.CLevel; +import org.etsi.osl.centrallog.client.CentralLogger; +import org.etsi.osl.tmf.pcm620.model.ProductSpecification; +import org.etsi.osl.tmf.pcm620.model.ProductSpecificationCreate; +import org.etsi.osl.tmf.pcm620.model.ProductSpecificationUpdate; +import org.etsi.osl.tmf.pcm620.reposervices.ProductSpecificationRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Parameter; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Controller +@RequestMapping("/productCatalogManagement/v4/") +public class ProductSpecificationApiController implements ProductSpecificationApi { + + Logger log = LoggerFactory.getLogger(ProductSpecificationApiController.class); + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @Value("${spring.application.name}") + private String compname; + + @Autowired + ProductSpecificationRepoService productSpecificationRepoService; + + @Autowired + private CentralLogger centralLogger; + + @org.springframework.beans.factory.annotation.Autowired + public ProductSpecificationApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity createProductSpecification( + @Valid ProductSpecificationCreate productSpecification) { + try { + + ProductSpecification c = productSpecificationRepoService.addProductSpecification(productSpecification); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity deleteProductSpecification(String id) { + try { + + return new ResponseEntity(productSpecificationRepoService.deleteByUuid(id), HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity> listProductSpecification(@Valid String fields, + @Valid Integer offset, @Valid Integer limit, + @Parameter(hidden = true) @Valid @RequestParam Map allParams) { + try { + if (allParams != null) { + allParams.remove("fields"); + allParams.remove("offset"); + allParams.remove("limit"); + } else { + allParams = new HashMap<>(); + } + if ((fields == null) && (allParams.size() == 0)) { + + String myfields = "lastUpdate,lifecycleStatus"; + return new ResponseEntity>( + productSpecificationRepoService.findAll( myfields, allParams), HttpStatus.OK); +// return new ResponseEntity>(serviceSpecificationRepoService.findAll(), +// HttpStatus.OK); + + + } else { + + + return new ResponseEntity>( + productSpecificationRepoService.findAll(fields, allParams), HttpStatus.OK); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity patchProductSpecification(String id, + @Valid ProductSpecificationUpdate productSpecification) { + ProductSpecification c = productSpecificationRepoService.updateProductSpecification(id, productSpecification); + + return new ResponseEntity(c, HttpStatus.OK); + } + + @Override + public ResponseEntity retrieveProductSpecification(String id, @Valid String fields) { + try { + + Object attr = request.getSession().getAttribute("SPRING_SECURITY_CONTEXT"); + + if ( attr!=null) { + SecurityContextHolder.setContext( (SecurityContext) attr ); + } + if ( SecurityContextHolder.getContext().getAuthentication() != null ) { + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + centralLogger.log( CLevel.INFO, "User " + authentication.getName() + " retrieve spec id: "+ id , compname ); + } else { + centralLogger.log( CLevel.INFO, "Anonymous retrieve spec id: "+ id, compname ); + } + + return new ResponseEntity( productSpecificationRepoService.findByUuid(id), + HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/api/RFC3339DateFormat.java b/src/main/java/org/etsi/osl/tmf/pcm620/api/RFC3339DateFormat.java new file mode 100644 index 0000000..fc86830 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/api/RFC3339DateFormat.java @@ -0,0 +1,41 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.api; + +import java.text.FieldPosition; +import java.util.Date; + +import com.fasterxml.jackson.databind.util.ISO8601DateFormat; +import com.fasterxml.jackson.databind.util.ISO8601Utils; + + +public class RFC3339DateFormat extends ISO8601DateFormat { + + private static final long serialVersionUID = 1L; + + // Same as ISO8601DateFormat but serializing milliseconds. + @Override + public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) { + String value = ISO8601Utils.format(date, true); + toAppendTo.append(value); + return toAppendTo; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/BundledProductOffering.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/BundledProductOffering.java new file mode 100644 index 0000000..de172b7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/BundledProductOffering.java @@ -0,0 +1,269 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * A type of ProductOffering that belongs to a grouping of ProductOfferings made + * available to the market. It inherits of all attributes of ProductOffering. + */ +@Schema(description = "A type of ProductOffering that belongs to a grouping of ProductOfferings made available to the market. It inherits of all attributes of ProductOffering.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") +@Entity(name = "BundledProductOffering") +public class BundledProductOffering extends BaseEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("bundledProductOfferingOption") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.DETACH }) + @JoinColumn(referencedColumnName = "uuid") + private BundledProductOfferingOption bundledProductOfferingOption = null; + + /** + * Unique identifier of a related entity. + * + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + /** + * @return the id + */ + public String getId() { + return id; + } + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + /** + * Unique reference of the BundledProductOffering + * + * @return href + **/ + @Schema(description = "Unique reference of the BundledProductOffering") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public BundledProductOffering lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Used to indicate the current lifecycle status + * + * @return lifecycleStatus + **/ + @Schema(description = "Used to indicate the current lifecycle status") + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public BundledProductOffering name(String name) { + this.name = name; + return this; + } + + /** + * Name of the BundledProductOffering + * + * @return name + **/ + @Schema(description = "Name of the BundledProductOffering") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BundledProductOffering bundledProductOfferingOption( + BundledProductOfferingOption bundledProductOfferingOption) { + this.bundledProductOfferingOption = bundledProductOfferingOption; + return this; + } + + /** + * A set of numbers that specifies the lower and upper limits for a + * ProductOffering that can be procured as part of the related + * BundledProductOffering. Values can range from 0 to unbounded. + * + * @return bundledProductOfferingOption + **/ + @Schema(description = "A set of numbers that specifies the lower and upper limits for a ProductOffering that can be procured as part of the related BundledProductOffering. Values can range from 0 to unbounded.") + + @Valid + + public BundledProductOfferingOption getBundledProductOfferingOption() { + return bundledProductOfferingOption; + } + + public void setBundledProductOfferingOption(BundledProductOfferingOption bundledProductOfferingOption) { + this.bundledProductOfferingOption = bundledProductOfferingOption; + } + + public BundledProductOffering baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BundledProductOffering schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BundledProductOffering type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BundledProductOffering bundledProductOffering = (BundledProductOffering) o; + return Objects.equals(this.id, bundledProductOffering.id) + && Objects.equals(this.href, bundledProductOffering.href) + && Objects.equals(this.lifecycleStatus, bundledProductOffering.lifecycleStatus) + && Objects.equals(this.name, bundledProductOffering.name) + && Objects.equals(this.bundledProductOfferingOption, + bundledProductOffering.bundledProductOfferingOption) + && Objects.equals(this.baseType, bundledProductOffering.baseType) + && Objects.equals(this.schemaLocation, bundledProductOffering.schemaLocation) + && Objects.equals(this.type, bundledProductOffering.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, lifecycleStatus, name, bundledProductOfferingOption, baseType, schemaLocation, +// type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BundledProductOffering {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" bundledProductOfferingOption: ").append(toIndentedString(bundledProductOfferingOption)) + .append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/BundledProductOfferingOption.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/BundledProductOfferingOption.java new file mode 100644 index 0000000..35d7796 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/BundledProductOfferingOption.java @@ -0,0 +1,160 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * A set of numbers that specifies the lower and upper limits for a + * ProductOffering that can be procured as part of the related + * BundledProductOffering. Values can range from 0 to unbounded + */ +@Schema(description = "A set of numbers that specifies the lower and upper limits for a ProductOffering that can be procured as part of the related BundledProductOffering. Values can range from 0 to unbounded") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity(name = "BundledProductOfferingOption") +public class BundledProductOfferingOption extends BaseRootEntity { + @JsonProperty("numberRelOfferDefault") + private Integer numberRelOfferDefault = null; + + @JsonProperty("numberRelOfferLowerLimit") + private Integer numberRelOfferLowerLimit = null; + + @JsonProperty("numberRelOfferUpperLimit") + private Integer numberRelOfferUpperLimit = null; + + public BundledProductOfferingOption numberRelOfferDefault(Integer numberRelOfferDefault) { + this.numberRelOfferDefault = numberRelOfferDefault; + return this; + } + + /** + * Default number of produc offereings that should be procured as part of the + * related BundledProductOffering + * + * @return numberRelOfferDefault + **/ + @Schema(description = "Default number of produc offereings that should be procured as part of the related BundledProductOffering") + + public Integer getNumberRelOfferDefault() { + return numberRelOfferDefault; + } + + public void setNumberRelOfferDefault(Integer numberRelOfferDefault) { + this.numberRelOfferDefault = numberRelOfferDefault; + } + + public BundledProductOfferingOption numberRelOfferLowerLimit(Integer numberRelOfferLowerLimit) { + this.numberRelOfferLowerLimit = numberRelOfferLowerLimit; + return this; + } + + /** + * lower limit for a product offering that can be procured as part of the + * related BundledProductOffering + * + * @return numberRelOfferLowerLimit + **/ + @Schema(description = "lower limit for a product offering that can be procured as part of the related BundledProductOffering") + + public Integer getNumberRelOfferLowerLimit() { + return numberRelOfferLowerLimit; + } + + public void setNumberRelOfferLowerLimit(Integer numberRelOfferLowerLimit) { + this.numberRelOfferLowerLimit = numberRelOfferLowerLimit; + } + + public BundledProductOfferingOption numberRelOfferUpperLimit(Integer numberRelOfferUpperLimit) { + this.numberRelOfferUpperLimit = numberRelOfferUpperLimit; + return this; + } + + /** + * upper limit for a product offering that can be procured as part of the + * related BundledProductOffering + * + * @return numberRelOfferUpperLimit + **/ + @Schema(description = "upper limit for a product offering that can be procured as part of the related BundledProductOffering") + + public Integer getNumberRelOfferUpperLimit() { + return numberRelOfferUpperLimit; + } + + public void setNumberRelOfferUpperLimit(Integer numberRelOfferUpperLimit) { + this.numberRelOfferUpperLimit = numberRelOfferUpperLimit; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BundledProductOfferingOption bundledProductOfferingOption = (BundledProductOfferingOption) o; + return Objects.equals(this.numberRelOfferDefault, bundledProductOfferingOption.numberRelOfferDefault) + && Objects.equals(this.numberRelOfferLowerLimit, bundledProductOfferingOption.numberRelOfferLowerLimit) + && Objects.equals(this.numberRelOfferUpperLimit, bundledProductOfferingOption.numberRelOfferUpperLimit) + && Objects.equals(this.baseType, bundledProductOfferingOption.baseType) + && Objects.equals(this.schemaLocation, bundledProductOfferingOption.schemaLocation) + && Objects.equals(this.type, bundledProductOfferingOption.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(numberRelOfferDefault, numberRelOfferLowerLimit, numberRelOfferUpperLimit, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BundledProductOfferingOption {\n"); + + sb.append(" numberRelOfferDefault: ").append(toIndentedString(numberRelOfferDefault)).append("\n"); + sb.append(" numberRelOfferLowerLimit: ").append(toIndentedString(numberRelOfferLowerLimit)).append("\n"); + sb.append(" numberRelOfferUpperLimit: ").append(toIndentedString(numberRelOfferUpperLimit)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/BundledProductOfferingPriceRelationship.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/BundledProductOfferingPriceRelationship.java new file mode 100644 index 0000000..e6e7566 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/BundledProductOfferingPriceRelationship.java @@ -0,0 +1,113 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * This represents a bundling pricing relationship, allowing a price to be composed of multiple other prices (e.g. a recurring charge and a onetime charge). + */ +@Schema(description = "This represents a bundling pricing relationship, allowing a price to be composed of multiple other prices (e.g. a recurring charge and a onetime charge).") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") +@Entity +public class BundledProductOfferingPriceRelationship extends BaseEntity { + @JsonProperty("id") + private String id = null; + + + + public BundledProductOfferingPriceRelationship id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the bundled product offering price + * @return id + **/ + @Schema(description = "Unique identifier of the bundled product offering price") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BundledProductOfferingPriceRelationship bundledProductOfferingPriceRelationship = (BundledProductOfferingPriceRelationship) o; + return Objects.equals(this.id, bundledProductOfferingPriceRelationship.id) && + Objects.equals(this.href, bundledProductOfferingPriceRelationship.href) && + Objects.equals(this.name, bundledProductOfferingPriceRelationship.name) && + Objects.equals(this.baseType, bundledProductOfferingPriceRelationship.baseType) && + Objects.equals(this.schemaLocation, bundledProductOfferingPriceRelationship.schemaLocation) && + Objects.equals(this.type, bundledProductOfferingPriceRelationship.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BundledProductOfferingPriceRelationship {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/BundledProductSpecification.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/BundledProductSpecification.java new file mode 100644 index 0000000..ea63ae5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/BundledProductSpecification.java @@ -0,0 +1,255 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * A type of ProductSpecification that belongs to a grouping of + * ProductSpecifications made available to the market. It inherits of all + * attributes of ProductSpecification. + */ +@Schema(description = "A type of ProductSpecification that belongs to a grouping of ProductSpecifications made available to the market. It inherits of all attributes of ProductSpecification.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity +public class BundledProductSpecification extends BaseEntity { + @JsonProperty("id") + private String id = null; + + + @JsonProperty("lifecycleStatus") + private String lifecycleStatus = null; + + public BundledProductSpecification() { + super(); + } + + + public BundledProductSpecification(BundledProductSpecification bundledProdSpec) { + this(); + this.name = bundledProdSpec.getName(); + this.lifecycleStatus = bundledProdSpec.getLifecycleStatus(); + } + + public BundledProductSpecification id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the product specification + * + * @return id + **/ + @Schema(description = "Unique identifier of the product specification") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public BundledProductSpecification href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the product specification + * + * @return href + **/ + @Schema(description = "Reference of the product specification") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public BundledProductSpecification lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Used to indicate the current lifecycle status + * + * @return lifecycleStatus + **/ + @Schema(description = "Used to indicate the current lifecycle status") + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public BundledProductSpecification name(String name) { + this.name = name; + return this; + } + + /** + * Name of the product specification + * + * @return name + **/ + @Schema(description = "Name of the product specification") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BundledProductSpecification baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public BundledProductSpecification schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BundledProductSpecification type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BundledProductSpecification bundledProductSpecification = (BundledProductSpecification) o; + return Objects.equals(this.id, bundledProductSpecification.id) + && Objects.equals(this.href, bundledProductSpecification.href) + && Objects.equals(this.lifecycleStatus, bundledProductSpecification.lifecycleStatus) + && Objects.equals(this.name, bundledProductSpecification.name) + && Objects.equals(this.baseType, bundledProductSpecification.baseType) + && Objects.equals(this.schemaLocation, bundledProductSpecification.schemaLocation) + && Objects.equals(this.type, bundledProductSpecification.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, lifecycleStatus, name, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BundledProductSpecification {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public void updateWith(BundledProductSpecification src) { + this.name = src.getName(); + this.lifecycleStatus = src.getLifecycleStatus(); + + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/Catalog.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/Catalog.java new file mode 100644 index 0000000..3ce243b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/Catalog.java @@ -0,0 +1,268 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinTable; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.Table; +import jakarta.persistence.Transient; +import jakarta.validation.Valid; + +/** + * A collection of Product Offerings, intended for a specific + * DistributionChannel, enhanced with additional information such as SLA + * parameters, invoicing and shipping details + */ +@Schema(description = "A collection of Product Offerings, intended for a specific DistributionChannel, enhanced with additional information such as SLA parameters, invoicing and shipping details") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity(name = "ProductCatalog") +@Table(name = "ProductCatalog") +public class Catalog extends BaseEntity { + + @JsonProperty("id") + protected String id = null; + + @JsonProperty("catalogType") + private String catalogType = null; + + + + + @ManyToMany(cascade = { CascadeType.DETACH } ) + @JoinTable() + @JsonIgnore + private Set categoryObj = new HashSet<>(); + + + @Transient + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + public Catalog id(String id) { + this.id = id; + return this; + } + + /** + * List of service categories associated with this catalog + * + * @return category + **/ + @Schema(description = "List of categories associated with this catalog") + @Transient + @JsonProperty("category") + @Valid + public List getCategoryRefs() { + + List category = new ArrayList<>(); + + for (Category Category : categoryObj) { + CategoryRef scr = new CategoryRef(); + scr.setId( Category.getId()); + scr.setName( Category.getName()); + scr.setBaseType( CategoryRef.class.getName() ); + category.add(scr); + + } + + return category; + } + + /** + * @param crefs + */ + public void setCategoryRefs( List crefs){ + for (CategoryRef CategoryRef : crefs) { + Category e = new Category(); + e.setUuid( CategoryRef.getId() ); + e.setName(CategoryRef.getName()); + categoryObj.add(e ); + } + } + + /** + * @return the categoryObj + */ + public Set getCategoryObj() { + return categoryObj; + } + + /** + * @param categoryObj the categoryObj to set + */ + public void setCategoryObj(Set categoryObj) { + this.categoryObj = categoryObj; + } + + /** + * Unique identifier of the Catalog + * + * @return id + **/ + @Schema(description = "Unique identifier of the Catalog") + + public String getId() { + return uuid; + } + + + public Catalog catalogType(String catalogType) { + this.catalogType = catalogType; + return this; + } + + /** + * Indicates if the catalog is a product, service or resource catalog + * + * @return catalogType + **/ + @Schema(description = "Indicates if the catalog is a product, service or resource catalog") + + public String getCatalogType() { + return catalogType; + } + + public void setCatalogType(String catalogType) { + this.catalogType = catalogType; + } + + + + + + public Catalog relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public Catalog addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * List of parties involved in this catalog + * + * @return relatedParty + **/ + @Schema(description = "List of parties involved in this catalog") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Catalog catalog = (Catalog) o; + return Objects.equals(this.id, catalog.id) && Objects.equals(this.href, catalog.href) + && Objects.equals(this.catalogType, catalog.catalogType) + && Objects.equals(this.description, catalog.description) + && Objects.equals(this.lastUpdate, catalog.lastUpdate) + && Objects.equals(this.lifecycleStatus, catalog.lifecycleStatus) + && Objects.equals(this.name, catalog.name) && Objects.equals(this.version, catalog.version) + && Objects.equals(this.getCategoryRefs(), catalog.getCategoryRefs()) + && Objects.equals(this.relatedParty, catalog.relatedParty) + && Objects.equals(this.validFor, catalog.validFor) && Objects.equals(this.baseType, catalog.baseType) + && Objects.equals(this.schemaLocation, catalog.schemaLocation) + && Objects.equals(this.type, catalog.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, catalogType, description, lastUpdate, lifecycleStatus, name, version, category, +// relatedParty, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Catalog {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" catalogType: ").append(toIndentedString(catalogType)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" category: ").append(toIndentedString(this.getCategoryRefs())).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public void addCategory(Category servcat) { + if (!categoryObj.contains(servcat) ) { + categoryObj.add(servcat); + } + + + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogBatchEvent.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogBatchEvent.java new file mode 100644 index 0000000..374e6dd --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogBatchEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class CatalogBatchEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private CatalogBatchEventPayload event = null; + + public CatalogBatchEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CatalogBatchEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CatalogBatchEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public CatalogBatchEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public CatalogBatchEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public CatalogBatchEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public CatalogBatchEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public CatalogBatchEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public CatalogBatchEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CatalogBatchEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public CatalogBatchEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public CatalogBatchEvent event(CatalogBatchEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public CatalogBatchEventPayload getEvent() { + return event; + } + + public void setEvent(CatalogBatchEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CatalogBatchEvent catalogBatchEvent = (CatalogBatchEvent) o; + return Objects.equals(this.id, catalogBatchEvent.id) && + Objects.equals(this.href, catalogBatchEvent.href) && + Objects.equals(this.eventId, catalogBatchEvent.eventId) && + Objects.equals(this.eventTime, catalogBatchEvent.eventTime) && + Objects.equals(this.eventType, catalogBatchEvent.eventType) && + Objects.equals(this.correlationId, catalogBatchEvent.correlationId) && + Objects.equals(this.domain, catalogBatchEvent.domain) && + Objects.equals(this.title, catalogBatchEvent.title) && + Objects.equals(this.description, catalogBatchEvent.description) && + Objects.equals(this.priority, catalogBatchEvent.priority) && + Objects.equals(this.timeOcurred, catalogBatchEvent.timeOcurred) && + Objects.equals(this.event, catalogBatchEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CatalogBatchEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogBatchEventPayload.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogBatchEventPayload.java new file mode 100644 index 0000000..4fab481 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogBatchEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class CatalogBatchEventPayload { + @JsonProperty("catalog") + private Catalog catalog = null; + + public CatalogBatchEventPayload catalog(Catalog catalog) { + this.catalog = catalog; + return this; + } + + /** + * The involved resource data for the event + * @return catalog + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Catalog getCatalog() { + return catalog; + } + + public void setCatalog(Catalog catalog) { + this.catalog = catalog; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CatalogBatchEventPayload catalogBatchEventPayload = (CatalogBatchEventPayload) o; + return Objects.equals(this.catalog, catalogBatchEventPayload.catalog); + } + + @Override + public int hashCode() { + return Objects.hash(catalog); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CatalogBatchEventPayload {\n"); + + sb.append(" catalog: ").append(toIndentedString(catalog)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogCreate.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogCreate.java new file mode 100644 index 0000000..722f76b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogCreate.java @@ -0,0 +1,125 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * A collection of Product Offerings, intended for a specific DistributionChannel, enhanced with additional information such as SLA parameters, invoicing and shipping details Skipped properties: id,href + */ +@Schema(description = "A collection of Product Offerings, intended for a specific DistributionChannel, enhanced with additional information such as SLA parameters, invoicing and shipping details Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class CatalogCreate extends CatalogUpdate { + + @JsonProperty("lastUpdate") + private OffsetDateTime lastUpdate = null; + + + + /** + * Date and time of the last update + * @return lastUpdate + **/ + @Schema(description = "Date and time of the last update") + + @Valid + + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CatalogCreate catalogCreate = (CatalogCreate) o; + return Objects.equals(this.catalogType, catalogCreate.catalogType) && + Objects.equals(this.description, catalogCreate.description) && + Objects.equals(this.lastUpdate, catalogCreate.lastUpdate) && + Objects.equals(this.lifecycleStatus, catalogCreate.lifecycleStatus) && + Objects.equals(this.name, catalogCreate.name) && + Objects.equals(this.version, catalogCreate.version) && + Objects.equals(this.category, catalogCreate.category) && + Objects.equals(this.relatedParty, catalogCreate.relatedParty) && + Objects.equals(this.validFor, catalogCreate.validFor) && + Objects.equals(this.baseType, catalogCreate.baseType) && + Objects.equals(this.schemaLocation, catalogCreate.schemaLocation) && + Objects.equals(this.type, catalogCreate.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(catalogType, description, lastUpdate, lifecycleStatus, name, version, category, relatedParty, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CatalogCreate {\n"); + + sb.append(" catalogType: ").append(toIndentedString(catalogType)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogCreateEvent.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogCreateEvent.java new file mode 100644 index 0000000..25f8164 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogCreateEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class CatalogCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private CatalogCreateEventPayload event = null; + + public CatalogCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CatalogCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CatalogCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public CatalogCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public CatalogCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public CatalogCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public CatalogCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public CatalogCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public CatalogCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CatalogCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public CatalogCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public CatalogCreateEvent event(CatalogCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public CatalogCreateEventPayload getEvent() { + return event; + } + + public void setEvent(CatalogCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CatalogCreateEvent catalogCreateEvent = (CatalogCreateEvent) o; + return Objects.equals(this.id, catalogCreateEvent.id) && + Objects.equals(this.href, catalogCreateEvent.href) && + Objects.equals(this.eventId, catalogCreateEvent.eventId) && + Objects.equals(this.eventTime, catalogCreateEvent.eventTime) && + Objects.equals(this.eventType, catalogCreateEvent.eventType) && + Objects.equals(this.correlationId, catalogCreateEvent.correlationId) && + Objects.equals(this.domain, catalogCreateEvent.domain) && + Objects.equals(this.title, catalogCreateEvent.title) && + Objects.equals(this.description, catalogCreateEvent.description) && + Objects.equals(this.priority, catalogCreateEvent.priority) && + Objects.equals(this.timeOcurred, catalogCreateEvent.timeOcurred) && + Objects.equals(this.event, catalogCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CatalogCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogCreateEventPayload.java new file mode 100644 index 0000000..c571ed9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogCreateEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class CatalogCreateEventPayload { + @JsonProperty("catalog") + private Catalog catalog = null; + + public CatalogCreateEventPayload catalog(Catalog catalog) { + this.catalog = catalog; + return this; + } + + /** + * The involved resource data for the event + * @return catalog + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Catalog getCatalog() { + return catalog; + } + + public void setCatalog(Catalog catalog) { + this.catalog = catalog; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CatalogCreateEventPayload catalogCreateEventPayload = (CatalogCreateEventPayload) o; + return Objects.equals(this.catalog, catalogCreateEventPayload.catalog); + } + + @Override + public int hashCode() { + return Objects.hash(catalog); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CatalogCreateEventPayload {\n"); + + sb.append(" catalog: ").append(toIndentedString(catalog)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogDeleteEvent.java new file mode 100644 index 0000000..fe87616 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogDeleteEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class CatalogDeleteEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private CatalogDeleteEventPayload event = null; + + public CatalogDeleteEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CatalogDeleteEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CatalogDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public CatalogDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public CatalogDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public CatalogDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public CatalogDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public CatalogDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public CatalogDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CatalogDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public CatalogDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public CatalogDeleteEvent event(CatalogDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public CatalogDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(CatalogDeleteEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CatalogDeleteEvent catalogDeleteEvent = (CatalogDeleteEvent) o; + return Objects.equals(this.id, catalogDeleteEvent.id) && + Objects.equals(this.href, catalogDeleteEvent.href) && + Objects.equals(this.eventId, catalogDeleteEvent.eventId) && + Objects.equals(this.eventTime, catalogDeleteEvent.eventTime) && + Objects.equals(this.eventType, catalogDeleteEvent.eventType) && + Objects.equals(this.correlationId, catalogDeleteEvent.correlationId) && + Objects.equals(this.domain, catalogDeleteEvent.domain) && + Objects.equals(this.title, catalogDeleteEvent.title) && + Objects.equals(this.description, catalogDeleteEvent.description) && + Objects.equals(this.priority, catalogDeleteEvent.priority) && + Objects.equals(this.timeOcurred, catalogDeleteEvent.timeOcurred) && + Objects.equals(this.event, catalogDeleteEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CatalogDeleteEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogDeleteEventPayload.java new file mode 100644 index 0000000..ec5f079 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogDeleteEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class CatalogDeleteEventPayload { + @JsonProperty("catalog") + private Catalog catalog = null; + + public CatalogDeleteEventPayload catalog(Catalog catalog) { + this.catalog = catalog; + return this; + } + + /** + * The involved resource data for the event + * @return catalog + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Catalog getCatalog() { + return catalog; + } + + public void setCatalog(Catalog catalog) { + this.catalog = catalog; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CatalogDeleteEventPayload catalogDeleteEventPayload = (CatalogDeleteEventPayload) o; + return Objects.equals(this.catalog, catalogDeleteEventPayload.catalog); + } + + @Override + public int hashCode() { + return Objects.hash(catalog); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CatalogDeleteEventPayload {\n"); + + sb.append(" catalog: ").append(toIndentedString(catalog)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogUpdate.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogUpdate.java new file mode 100644 index 0000000..d7de402 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CatalogUpdate.java @@ -0,0 +1,374 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * A collection of Product Offerings, intended for a specific DistributionChannel, enhanced with additional information such as SLA parameters, invoicing and shipping details Skipped properties: id,href,lastUpdate + */ +@Schema(description = "A collection of Product Offerings, intended for a specific DistributionChannel, enhanced with additional information such as SLA parameters, invoicing and shipping details Skipped properties: id,href,lastUpdate") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class CatalogUpdate { + @JsonProperty("catalogType") + protected String catalogType = null; + + @JsonProperty("description") + protected String description = null; + + @JsonProperty("lifecycleStatus") + protected String lifecycleStatus = null; + + @JsonProperty("name") + protected String name = null; + + @JsonProperty("version") + protected String version = null; + + @JsonProperty("category") + @Valid + protected List category = null; + + @JsonProperty("relatedParty") + @Valid + protected List relatedParty = null; + + @JsonProperty("validFor") + protected TimePeriod validFor = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@type") + protected String type = null; + + protected CatalogUpdate catalogType(String catalogType) { + this.catalogType = catalogType; + return this; + } + + /** + * Indicates if the catalog is a product, service or resource catalog + * @return catalogType + **/ + @Schema(description = "Indicates if the catalog is a product, service or resource catalog") + + + public String getCatalogType() { + return catalogType; + } + + public void setCatalogType(String catalogType) { + this.catalogType = catalogType; + } + + public CatalogUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Description of this catalog + * @return description + **/ + @Schema(description = "Description of this catalog") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CatalogUpdate lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Used to indicate the current lifecycle status + * @return lifecycleStatus + **/ + @Schema(description = "Used to indicate the current lifecycle status") + + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public CatalogUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the catalog + * @return name + **/ + @Schema(description = "Name of the catalog") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public CatalogUpdate version(String version) { + this.version = version; + return this; + } + + /** + * Catalog version + * @return version + **/ + @Schema(description = "Catalog version") + + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public CatalogUpdate category(List category) { + this.category = category; + return this; + } + + public CatalogUpdate addCategoryItem(CategoryRef categoryItem) { + if (this.category == null) { + this.category = new ArrayList<>(); + } + this.category.add(categoryItem); + return this; + } + + /** + * List of root categories contained in this catalog + * @return category + **/ + @Schema(description = "List of root categories contained in this catalog") + + @Valid + + public List getCategory() { + return category; + } + + public void setCategory(List category) { + this.category = category; + } + + public CatalogUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public CatalogUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * List of parties involved in this catalog + * @return relatedParty + **/ + @Schema(description = "List of parties involved in this catalog") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public CatalogUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the catalog is valid + * @return validFor + **/ + @Schema(description = "The period for which the catalog is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public CatalogUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public CatalogUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public CatalogUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CatalogUpdate catalogUpdate = (CatalogUpdate) o; + return Objects.equals(this.catalogType, catalogUpdate.catalogType) && + Objects.equals(this.description, catalogUpdate.description) && + Objects.equals(this.lifecycleStatus, catalogUpdate.lifecycleStatus) && + Objects.equals(this.name, catalogUpdate.name) && + Objects.equals(this.version, catalogUpdate.version) && + Objects.equals(this.category, catalogUpdate.category) && + Objects.equals(this.relatedParty, catalogUpdate.relatedParty) && + Objects.equals(this.validFor, catalogUpdate.validFor) && + Objects.equals(this.baseType, catalogUpdate.baseType) && + Objects.equals(this.schemaLocation, catalogUpdate.schemaLocation) && + Objects.equals(this.type, catalogUpdate.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(catalogType, description, lifecycleStatus, name, version, category, relatedParty, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CatalogUpdate {\n"); + + sb.append(" catalogType: ").append(toIndentedString(catalogType)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/Category.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/Category.java new file mode 100644 index 0000000..8ad60cb --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/Category.java @@ -0,0 +1,304 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinTable; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import jakarta.persistence.Transient; +import jakarta.validation.Valid; + +/** + * The category resource is used to group product offerings, service and + * resource candidates in logical containers. Categories can contain other + * categories and/or product offerings, resource or service candidates. + */ +@Schema(description = "The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity(name = "ProductCategory") +@Table(name = "ProductCategory") +public class Category extends BaseEntity { + + @JsonProperty("id") + private String id = null; + + @JsonProperty("isRoot") + private Boolean isRoot = null; + + @JsonProperty("parentId") + private String parentId = null; + +// @JsonProperty("productOffering") +// @Valid +// private List productOffering = null; + + + @ManyToMany(cascade = { CascadeType.MERGE, CascadeType.DETACH } ) + @JoinTable() + @JsonIgnore + private Set productOffObj = new HashSet<>(); + + + + + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.DETACH }) + @JoinTable() + @JsonIgnore + private Set subCategoryObj = new HashSet<>(); + + +// @JsonProperty("subCategory") +// @Valid +// private List subCategory = null; + + + public Category id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the category + * + * @return id + **/ + @Schema(description = "Unique identifier of the category") + + /** + * @return the id + */ + public String getId() { + id = uuid; + return uuid; + } + + public Category isRoot(Boolean isRoot) { + this.isRoot = isRoot; + return this; + } + + /** + * If true, this Boolean indicates that the category is a root of categories + * + * @return isRoot + **/ + @Schema(description = "If true, this Boolean indicates that the category is a root of categories") + + public Boolean isIsRoot() { + return isRoot; + } + + public void setIsRoot(Boolean isRoot) { + this.isRoot = isRoot; + } + + public Category parentId(String parentId) { + this.parentId = parentId; + return this; + } + + /** + * Unique identifier of the parent category + * + * @return parentId + **/ + @Schema(description = "Unique identifier of the parent category") + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + + + /** + * A product offering represents entities that are orderable from the provider + * of the catalog, this resource includes pricing information. + * + * @return productOffering + **/ + @Schema(description = "A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information.") + + @Valid + @JsonProperty("productOffering") + + public List getProductOfferingRefs() { + + List scref = new ArrayList<>(); + + for (ProductOffering sc : productOffObj) { + ProductOfferingRef scr = new ProductOfferingRef(); + scr.setId( sc.getId()); + scr.setName( sc.getName()); + scr.setBaseType( ProductOfferingRef.class.getName() ); + scref.add(scr); + } + + + return scref; + } + + + + @JsonIgnore + public Set getProductOfferingObj(){ + return this.productOffObj; + } + + + + + /** + * List of child categories in the tree for in this category + * + * @return category + **/ + @Schema(description = "List of child categories in the tree for in this category") + @Transient + @JsonProperty("subCategory") + @Valid + public List getCategoryRefs() { + + List category = new ArrayList<>(); + + for (Category sCategory : subCategoryObj) { + CategoryRef scr = new CategoryRef(); + scr.setId( sCategory.getId()); + scr.setName( sCategory.getName()); + scr.setBaseType( CategoryRef.class.getName() ); + category.add(scr); + + } + + return category; + } + + + /** + * @param categoryObj the categoryObj to set + */ + @JsonProperty("subCategory") + public void setCategoryObj(List alist) { + this.subCategoryObj.clear(); + for (CategoryRef categoryRef : alist) { + Category sc = new Category(); + sc.setUuid( categoryRef.getId()); + sc.setName(categoryRef.getName()); + sc.setBaseType(categoryRef.getBaseType()); + this.subCategoryObj.add(sc); + } + } + + /** + * @return the categoryObj + */ + public Set getCategoryObj() { + return subCategoryObj; + } + + /** + * @param categoryObj the categoryObj to set + */ + public void setCategoryObj(Set< Category> categoryObj) { + this.subCategoryObj = categoryObj; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Category category = (Category) o; + return Objects.equals(this.id, category.id) && Objects.equals(this.href, category.href) + && Objects.equals(this.description, category.description) + && Objects.equals(this.isRoot, category.isRoot) && Objects.equals(this.lastUpdate, category.lastUpdate) + && Objects.equals(this.lifecycleStatus, category.lifecycleStatus) + && Objects.equals(this.name, category.name) && Objects.equals(this.parentId, category.parentId) + && Objects.equals(this.version, category.version) + && Objects.equals(this.productOffObj , category.productOffObj) + && Objects.equals(this.subCategoryObj, category.subCategoryObj) + && Objects.equals(this.validFor, category.validFor) && Objects.equals(this.baseType, category.baseType) + && Objects.equals(this.schemaLocation, category.schemaLocation) + && Objects.equals(this.type, category.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, description, isRoot, lastUpdate, lifecycleStatus, name, parentId, version, +// productOffering, subCategory, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Category {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isRoot: ").append(toIndentedString(isRoot)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" parentId: ").append(toIndentedString(parentId)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" productOffering: ").append(toIndentedString(productOffObj)).append("\n"); + sb.append(" subCategory: ").append(toIndentedString(subCategoryObj)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryCreate.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryCreate.java new file mode 100644 index 0000000..6a2329d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryCreate.java @@ -0,0 +1,135 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates. Skipped properties: id,href + */ +@Schema(description = "The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class CategoryCreate extends CategoryUpdate { + + + @JsonProperty("lastUpdate") + private OffsetDateTime lastUpdate = null; + + + + + public CategoryCreate lastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + /** + * Date and time of the last update + * @return lastUpdate + **/ + @Schema(description = "Date and time of the last update") + + @Valid + + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CategoryCreate categoryCreate = (CategoryCreate) o; + return Objects.equals(this.description, categoryCreate.description) && + Objects.equals(this.isRoot, categoryCreate.isRoot) && + Objects.equals(this.lastUpdate, categoryCreate.lastUpdate) && + Objects.equals(this.lifecycleStatus, categoryCreate.lifecycleStatus) && + Objects.equals(this.name, categoryCreate.name) && + Objects.equals(this.parentId, categoryCreate.parentId) && + Objects.equals(this.version, categoryCreate.version) && + Objects.equals(this.productOffering, categoryCreate.productOffering) && + Objects.equals(this.subCategory, categoryCreate.subCategory) && + Objects.equals(this.validFor, categoryCreate.validFor) && + Objects.equals(this.baseType, categoryCreate.baseType) && + Objects.equals(this.schemaLocation, categoryCreate.schemaLocation) && + Objects.equals(this.type, categoryCreate.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(description, isRoot, lastUpdate, lifecycleStatus, name, parentId, version, productOffering, subCategory, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CategoryCreate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isRoot: ").append(toIndentedString(isRoot)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" parentId: ").append(toIndentedString(parentId)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" productOffering: ").append(toIndentedString(productOffering)).append("\n"); + sb.append(" subCategory: ").append(toIndentedString(subCategory)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryCreateEvent.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryCreateEvent.java new file mode 100644 index 0000000..8d444a4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryCreateEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class CategoryCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private CategoryCreateEventPayload event = null; + + public CategoryCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CategoryCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CategoryCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public CategoryCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public CategoryCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public CategoryCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public CategoryCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public CategoryCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public CategoryCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CategoryCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public CategoryCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public CategoryCreateEvent event(CategoryCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public CategoryCreateEventPayload getEvent() { + return event; + } + + public void setEvent(CategoryCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CategoryCreateEvent categoryCreateEvent = (CategoryCreateEvent) o; + return Objects.equals(this.id, categoryCreateEvent.id) && + Objects.equals(this.href, categoryCreateEvent.href) && + Objects.equals(this.eventId, categoryCreateEvent.eventId) && + Objects.equals(this.eventTime, categoryCreateEvent.eventTime) && + Objects.equals(this.eventType, categoryCreateEvent.eventType) && + Objects.equals(this.correlationId, categoryCreateEvent.correlationId) && + Objects.equals(this.domain, categoryCreateEvent.domain) && + Objects.equals(this.title, categoryCreateEvent.title) && + Objects.equals(this.description, categoryCreateEvent.description) && + Objects.equals(this.priority, categoryCreateEvent.priority) && + Objects.equals(this.timeOcurred, categoryCreateEvent.timeOcurred) && + Objects.equals(this.event, categoryCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CategoryCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryCreateEventPayload.java new file mode 100644 index 0000000..e9c941d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryCreateEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class CategoryCreateEventPayload { + @JsonProperty("category") + private Category category = null; + + public CategoryCreateEventPayload category(Category category) { + this.category = category; + return this; + } + + /** + * The involved resource data for the event + * @return category + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Category getCategory() { + return category; + } + + public void setCategory(Category category) { + this.category = category; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CategoryCreateEventPayload categoryCreateEventPayload = (CategoryCreateEventPayload) o; + return Objects.equals(this.category, categoryCreateEventPayload.category); + } + + @Override + public int hashCode() { + return Objects.hash(category); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CategoryCreateEventPayload {\n"); + + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryDeleteEvent.java new file mode 100644 index 0000000..5e6a138 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryDeleteEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class CategoryDeleteEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private CategoryDeleteEventPayload event = null; + + public CategoryDeleteEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CategoryDeleteEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CategoryDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public CategoryDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public CategoryDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public CategoryDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public CategoryDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public CategoryDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public CategoryDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CategoryDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public CategoryDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public CategoryDeleteEvent event(CategoryDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public CategoryDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(CategoryDeleteEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CategoryDeleteEvent categoryDeleteEvent = (CategoryDeleteEvent) o; + return Objects.equals(this.id, categoryDeleteEvent.id) && + Objects.equals(this.href, categoryDeleteEvent.href) && + Objects.equals(this.eventId, categoryDeleteEvent.eventId) && + Objects.equals(this.eventTime, categoryDeleteEvent.eventTime) && + Objects.equals(this.eventType, categoryDeleteEvent.eventType) && + Objects.equals(this.correlationId, categoryDeleteEvent.correlationId) && + Objects.equals(this.domain, categoryDeleteEvent.domain) && + Objects.equals(this.title, categoryDeleteEvent.title) && + Objects.equals(this.description, categoryDeleteEvent.description) && + Objects.equals(this.priority, categoryDeleteEvent.priority) && + Objects.equals(this.timeOcurred, categoryDeleteEvent.timeOcurred) && + Objects.equals(this.event, categoryDeleteEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CategoryDeleteEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryDeleteEventPayload.java new file mode 100644 index 0000000..3f3fa9c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryDeleteEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class CategoryDeleteEventPayload { + @JsonProperty("category") + private Category category = null; + + public CategoryDeleteEventPayload category(Category category) { + this.category = category; + return this; + } + + /** + * The involved resource data for the event + * @return category + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Category getCategory() { + return category; + } + + public void setCategory(Category category) { + this.category = category; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CategoryDeleteEventPayload categoryDeleteEventPayload = (CategoryDeleteEventPayload) o; + return Objects.equals(this.category, categoryDeleteEventPayload.category); + } + + @Override + public int hashCode() { + return Objects.hash(category); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CategoryDeleteEventPayload {\n"); + + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryRef.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryRef.java new file mode 100644 index 0000000..4734101 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryRef.java @@ -0,0 +1,146 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * The category for grouping recommendations + */ +@Schema(description = "The category for grouping recommendations") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") +@JsonIgnoreProperties({ "uuid" }) +@Entity(name = "CategoryRef") +public class CategoryRef extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("version") + private String version = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public CategoryRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + /** + * @return the id + */ + public String getId() { + return id; + } + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + public CategoryRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CategoryRef categoryRef = (CategoryRef) o; + return Objects.equals(this.id, categoryRef.id) && Objects.equals(this.href, categoryRef.href) + && Objects.equals(this.name, categoryRef.name) && Objects.equals(this.version, categoryRef.version) + && Objects.equals(this.baseType, categoryRef.baseType) + && Objects.equals(this.schemaLocation, categoryRef.schemaLocation) + && Objects.equals(this.type, categoryRef.type) + && Objects.equals(this.referredType, categoryRef.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, version, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CategoryRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryUpdate.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryUpdate.java new file mode 100644 index 0000000..fa75560 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/CategoryUpdate.java @@ -0,0 +1,398 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates. Skipped properties: id,href,lastUpdate + */ +@Schema(description = "The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates. Skipped properties: id,href,lastUpdate") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class CategoryUpdate { + @JsonProperty("description") + protected String description = null; + + @JsonProperty("isRoot") + protected Boolean isRoot = null; + + @JsonProperty("lifecycleStatus") + protected String lifecycleStatus = null; + + @JsonProperty("name") + protected String name = null; + + @JsonProperty("parentId") + protected String parentId = null; + + @JsonProperty("version") + protected String version = null; + + @JsonProperty("productOffering") + @Valid + protected List productOffering = null; + + @JsonProperty("subCategory") + @Valid + protected List subCategory = null; + + @JsonProperty("validFor") + protected TimePeriod validFor = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@type") + protected String type = null; + + public CategoryUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Description of the category + * @return description + **/ + @Schema(description = "Description of the category") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CategoryUpdate isRoot(Boolean isRoot) { + this.isRoot = isRoot; + return this; + } + + /** + * If true, this Boolean indicates that the category is a root of categories + * @return isRoot + **/ + @Schema(description = "If true, this Boolean indicates that the category is a root of categories") + + + public Boolean isIsRoot() { + return isRoot; + } + + public void setIsRoot(Boolean isRoot) { + this.isRoot = isRoot; + } + + public CategoryUpdate lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Used to indicate the current lifecycle status + * @return lifecycleStatus + **/ + @Schema(description = "Used to indicate the current lifecycle status") + + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public CategoryUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the category + * @return name + **/ + @Schema(description = "Name of the category") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public CategoryUpdate parentId(String parentId) { + this.parentId = parentId; + return this; + } + + /** + * Unique identifier of the parent category + * @return parentId + **/ + @Schema(description = "Unique identifier of the parent category") + + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public CategoryUpdate version(String version) { + this.version = version; + return this; + } + + /** + * Category version + * @return version + **/ + @Schema(description = "Category version") + + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public CategoryUpdate productOffering(List productOffering) { + this.productOffering = productOffering; + return this; + } + + public CategoryUpdate addProductOfferingItem(ProductOfferingRef productOfferingItem) { + if (this.productOffering == null) { + this.productOffering = new ArrayList<>(); + } + this.productOffering.add(productOfferingItem); + return this; + } + + /** + * A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information. + * @return productOffering + **/ + @Schema(description = "A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information.") + + @Valid + + public List getProductOffering() { + return productOffering; + } + + public void setProductOffering(List productOffering) { + this.productOffering = productOffering; + } + + public CategoryUpdate subCategory(List subCategory) { + this.subCategory = subCategory; + return this; + } + + public CategoryUpdate addSubCategoryItem(CategoryRef subCategoryItem) { + if (this.subCategory == null) { + this.subCategory = new ArrayList<>(); + } + this.subCategory.add(subCategoryItem); + return this; + } + + /** + * The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other (sub-)categories and/or product offerings. + * @return subCategory + **/ + @Schema(description = "The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other (sub-)categories and/or product offerings.") + + @Valid + + public List getSubCategory() { + return subCategory; + } + + public void setSubCategory(List subCategory) { + this.subCategory = subCategory; + } + + public CategoryUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the category is valid + * @return validFor + **/ + @Schema(description = "The period for which the category is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public CategoryUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public CategoryUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public CategoryUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CategoryUpdate categoryUpdate = (CategoryUpdate) o; + return Objects.equals(this.description, categoryUpdate.description) && + Objects.equals(this.isRoot, categoryUpdate.isRoot) && + Objects.equals(this.lifecycleStatus, categoryUpdate.lifecycleStatus) && + Objects.equals(this.name, categoryUpdate.name) && + Objects.equals(this.parentId, categoryUpdate.parentId) && + Objects.equals(this.version, categoryUpdate.version) && + Objects.equals(this.productOffering, categoryUpdate.productOffering) && + Objects.equals(this.subCategory, categoryUpdate.subCategory) && + Objects.equals(this.validFor, categoryUpdate.validFor) && + Objects.equals(this.baseType, categoryUpdate.baseType) && + Objects.equals(this.schemaLocation, categoryUpdate.schemaLocation) && + Objects.equals(this.type, categoryUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, isRoot, lifecycleStatus, name, parentId, version, productOffering, subCategory, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CategoryUpdate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isRoot: ").append(toIndentedString(isRoot)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" parentId: ").append(toIndentedString(parentId)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" productOffering: ").append(toIndentedString(productOffering)).append("\n"); + sb.append(" subCategory: ").append(toIndentedString(subCategory)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ChannelRef.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ChannelRef.java new file mode 100644 index 0000000..01e10af --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ChannelRef.java @@ -0,0 +1,142 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * The channel to which the resource reference to. e.g. channel for selling product offerings, channel for opening a trouble ticket etc.. + */ +@Schema(description = "The channel to which the resource reference to. e.g. channel for selling product offerings, channel for opening a trouble ticket etc..") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity(name = "ChannelRef") +public class ChannelRef extends BaseEntity { + @JsonProperty("id") + private String id = null; + + + @JsonProperty("@referredType") + private String referredType = null; + + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + + public ChannelRef href(String href) { + this.href = href; + return this; + } + + + + public ChannelRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ChannelRef channelRef = (ChannelRef) o; + return Objects.equals(this.id, channelRef.id) && + Objects.equals(this.href, channelRef.href) && + Objects.equals(this.name, channelRef.name) && + Objects.equals(this.baseType, channelRef.baseType) && + Objects.equals(this.schemaLocation, channelRef.schemaLocation) && + Objects.equals(this.type, channelRef.type) && + Objects.equals(this.referredType, channelRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ChannelRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ConstraintRef.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ConstraintRef.java new file mode 100644 index 0000000..b3f4c8e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ConstraintRef.java @@ -0,0 +1,143 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * Constraint reference. The Constraint resource represents a policy/rule applied to an entity or entity spec. + */ +@Schema(description = "Constraint reference. The Constraint resource represents a policy/rule applied to an entity or entity spec.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity +public class ConstraintRef extends BaseEntity { + @JsonProperty("id") + private String id = null; + + + + @JsonProperty("@referredType") + private String referredType = null; + + public ConstraintRef id(String id) { + this.id = id; + return this; + } + + /** + * reference id to the target constraint + * @return id + **/ + @Schema(description = "reference id to the target constraint") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + + public ConstraintRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The (class) type of the referred constraint + * @return referredType + **/ + @Schema(description = "The (class) type of the referred constraint") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ConstraintRef constraintRef = (ConstraintRef) o; + return Objects.equals(this.id, constraintRef.id) && + Objects.equals(this.href, constraintRef.href) && + Objects.equals(this.name, constraintRef.name) && + Objects.equals(this.version, constraintRef.version) && + Objects.equals(this.baseType, constraintRef.baseType) && + Objects.equals(this.schemaLocation, constraintRef.schemaLocation) && + Objects.equals(this.type, constraintRef.type) && + Objects.equals(this.referredType, constraintRef.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, version, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ConstraintRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/EntityRef.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/EntityRef.java new file mode 100644 index 0000000..e37f948 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/EntityRef.java @@ -0,0 +1,252 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Entity reference schema to be use for all entityRef class. + */ +@Schema(description = "Entity reference schema to be use for all entityRef class.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class EntityRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public EntityRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EntityRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public EntityRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public EntityRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public EntityRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public EntityRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public EntityRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntityRef entityRef = (EntityRef) o; + return Objects.equals(this.id, entityRef.id) && + Objects.equals(this.href, entityRef.href) && + Objects.equals(this.name, entityRef.name) && + Objects.equals(this.baseType, entityRef.baseType) && + Objects.equals(this.schemaLocation, entityRef.schemaLocation) && + Objects.equals(this.type, entityRef.type) && + Objects.equals(this.referredType, entityRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntityRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/Error.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/Error.java new file mode 100644 index 0000000..9093e7d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/Error.java @@ -0,0 +1,278 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx) + */ +@Schema(description = "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class Error { + @JsonProperty("code") + private String code = null; + + @JsonProperty("reason") + private String reason = null; + + @JsonProperty("message") + private String message = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("referenceError") + private String referenceError = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Error code(String code) { + this.code = code; + return this; + } + + /** + * Application relevant detail, defined in the API or a common list. + * @return code + **/ + @Schema(description = "Application relevant detail, defined in the API or a common list.") + @NotNull + + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public Error reason(String reason) { + this.reason = reason; + return this; + } + + /** + * Explanation of the reason for the error which can be shown to a client user. + * @return reason + **/ + @Schema(description = "Explanation of the reason for the error which can be shown to a client user.") + @NotNull + + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public Error message(String message) { + this.message = message; + return this; + } + + /** + * More details and corrective actions related to the error which can be shown to a client user. + * @return message + **/ + @Schema(description = "More details and corrective actions related to the error which can be shown to a client user.") + + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Error status(String status) { + this.status = status; + return this; + } + + /** + * HTTP Error code extension + * @return status + **/ + @Schema(description = "HTTP Error code extension") + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Error referenceError(String referenceError) { + this.referenceError = referenceError; + return this; + } + + /** + * URI of documentation describing the error. + * @return referenceError + **/ + @Schema(description = "URI of documentation describing the error.") + + + public String getReferenceError() { + return referenceError; + } + + public void setReferenceError(String referenceError) { + this.referenceError = referenceError; + } + + public Error baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class. + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class.") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public Error schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Error type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name. + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name.") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Error error = (Error) o; + return Objects.equals(this.code, error.code) && + Objects.equals(this.reason, error.reason) && + Objects.equals(this.message, error.message) && + Objects.equals(this.status, error.status) && + Objects.equals(this.referenceError, error.referenceError) && + Objects.equals(this.baseType, error.baseType) && + Objects.equals(this.schemaLocation, error.schemaLocation) && + Objects.equals(this.type, error.type); + } + + @Override + public int hashCode() { + return Objects.hash(code, reason, message, status, referenceError, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Error {\n"); + + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" referenceError: ").append(toIndentedString(referenceError)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/EventSubscription.java new file mode 100644 index 0000000..aa61f7b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/EventSubscription.java @@ -0,0 +1,153 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class EventSubscription { + @JsonProperty("id") + private String id = null; + + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscription id(String id) { + this.id = id; + return this; + } + + /** + * Id of the listener + * @return id + **/ + @Schema(description = "Id of the listener") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EventSubscription callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscription query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscription eventSubscription = (EventSubscription) o; + return Objects.equals(this.id, eventSubscription.id) && + Objects.equals(this.callback, eventSubscription.callback) && + Objects.equals(this.query, eventSubscription.query); + } + + @Override + public int hashCode() { + return Objects.hash(id, callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscription {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/EventSubscriptionInput.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/EventSubscriptionInput.java new file mode 100644 index 0000000..5dd3bc2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/EventSubscriptionInput.java @@ -0,0 +1,127 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class EventSubscriptionInput { + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscriptionInput callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscriptionInput query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscriptionInput eventSubscriptionInput = (EventSubscriptionInput) o; + return Objects.equals(this.callback, eventSubscriptionInput.callback) && + Objects.equals(this.query, eventSubscriptionInput.query); + } + + @Override + public int hashCode() { + return Objects.hash(callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscriptionInput {\n"); + + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ExportJob.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ExportJob.java new file mode 100644 index 0000000..ec28870 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ExportJob.java @@ -0,0 +1,405 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Represents a task used to export resources to a file + */ +@Schema(description = "Represents a task used to export resources to a file") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ExportJob { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("completionDate") + private OffsetDateTime completionDate = null; + + @JsonProperty("contentType") + private String contentType = null; + + @JsonProperty("creationDate") + private OffsetDateTime creationDate = null; + + @JsonProperty("errorLog") + private String errorLog = null; + + @JsonProperty("path") + private String path = null; + + @JsonProperty("query") + private String query = null; + + @JsonProperty("url") + private String url = null; + + @JsonProperty("status") + private JobStateType status = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ExportJob id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the export job + * @return id + **/ + @Schema(description = "Identifier of the export job") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ExportJob href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the export job + * @return href + **/ + @Schema(description = "Reference of the export job") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ExportJob completionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Data at which the job was completed + * @return completionDate + **/ + @Schema(description = "Data at which the job was completed") + + @Valid + + public OffsetDateTime getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + } + + public ExportJob contentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * The format of the exported data + * @return contentType + **/ + @Schema(description = "The format of the exported data") + + + public String getContentType() { + return contentType; + } + + public void setContentType(String contentType) { + this.contentType = contentType; + } + + public ExportJob creationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + return this; + } + + /** + * Date at which the job was created + * @return creationDate + **/ + @Schema(description = "Date at which the job was created") + + @Valid + + public OffsetDateTime getCreationDate() { + return creationDate; + } + + public void setCreationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + } + + public ExportJob errorLog(String errorLog) { + this.errorLog = errorLog; + return this; + } + + /** + * Reason for failure + * @return errorLog + **/ + @Schema(description = "Reason for failure") + + + public String getErrorLog() { + return errorLog; + } + + public void setErrorLog(String errorLog) { + this.errorLog = errorLog; + } + + public ExportJob path(String path) { + this.path = path; + return this; + } + + /** + * URL of the root resource acting as the source for streaming content to the file specified by the export job + * @return path + **/ + @Schema(description = "URL of the root resource acting as the source for streaming content to the file specified by the export job") + + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public ExportJob query(String query) { + this.query = query; + return this; + } + + /** + * Used to scope the exported data + * @return query + **/ + @Schema(description = "Used to scope the exported data") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + public ExportJob url(String url) { + this.url = url; + return this; + } + + /** + * URL of the file containing the data to be exported + * @return url + **/ + @Schema(description = "URL of the file containing the data to be exported") + + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public ExportJob status(JobStateType status) { + this.status = status; + return this; + } + + /** + * Status of the export job (not started, running, succeeded, failed) + * @return status + **/ + @Schema(description = "Status of the export job (not started, running, succeeded, failed)") + + @Valid + + public JobStateType getStatus() { + return status; + } + + public void setStatus(JobStateType status) { + this.status = status; + } + + public ExportJob baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ExportJob schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ExportJob type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExportJob exportJob = (ExportJob) o; + return Objects.equals(this.id, exportJob.id) && + Objects.equals(this.href, exportJob.href) && + Objects.equals(this.completionDate, exportJob.completionDate) && + Objects.equals(this.contentType, exportJob.contentType) && + Objects.equals(this.creationDate, exportJob.creationDate) && + Objects.equals(this.errorLog, exportJob.errorLog) && + Objects.equals(this.path, exportJob.path) && + Objects.equals(this.query, exportJob.query) && + Objects.equals(this.url, exportJob.url) && + Objects.equals(this.status, exportJob.status) && + Objects.equals(this.baseType, exportJob.baseType) && + Objects.equals(this.schemaLocation, exportJob.schemaLocation) && + Objects.equals(this.type, exportJob.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, completionDate, contentType, creationDate, errorLog, path, query, url, status, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ExportJob {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" contentType: ").append(toIndentedString(contentType)).append("\n"); + sb.append(" creationDate: ").append(toIndentedString(creationDate)).append("\n"); + sb.append(" errorLog: ").append(toIndentedString(errorLog)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ExportJobCreate.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ExportJobCreate.java new file mode 100644 index 0000000..3af6f09 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ExportJobCreate.java @@ -0,0 +1,357 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Represents a task used to export resources to a file Skipped properties: id,href + */ +@Schema(description = "Represents a task used to export resources to a file Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ExportJobCreate { + @JsonProperty("completionDate") + private OffsetDateTime completionDate = null; + + @JsonProperty("contentType") + private String contentType = null; + + @JsonProperty("creationDate") + private OffsetDateTime creationDate = null; + + @JsonProperty("errorLog") + private String errorLog = null; + + @JsonProperty("path") + private String path = null; + + @JsonProperty("query") + private String query = null; + + @JsonProperty("url") + private String url = null; + + @JsonProperty("status") + private JobStateType status = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ExportJobCreate completionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Data at which the job was completed + * @return completionDate + **/ + @Schema(description = "Data at which the job was completed") + + @Valid + + public OffsetDateTime getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + } + + public ExportJobCreate contentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * The format of the exported data + * @return contentType + **/ + @Schema(description = "The format of the exported data") + + + public String getContentType() { + return contentType; + } + + public void setContentType(String contentType) { + this.contentType = contentType; + } + + public ExportJobCreate creationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + return this; + } + + /** + * Date at which the job was created + * @return creationDate + **/ + @Schema(description = "Date at which the job was created") + + @Valid + + public OffsetDateTime getCreationDate() { + return creationDate; + } + + public void setCreationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + } + + public ExportJobCreate errorLog(String errorLog) { + this.errorLog = errorLog; + return this; + } + + /** + * Reason for failure + * @return errorLog + **/ + @Schema(description = "Reason for failure") + + + public String getErrorLog() { + return errorLog; + } + + public void setErrorLog(String errorLog) { + this.errorLog = errorLog; + } + + public ExportJobCreate path(String path) { + this.path = path; + return this; + } + + /** + * URL of the root resource acting as the source for streaming content to the file specified by the export job + * @return path + **/ + @Schema(description = "URL of the root resource acting as the source for streaming content to the file specified by the export job") + + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public ExportJobCreate query(String query) { + this.query = query; + return this; + } + + /** + * Used to scope the exported data + * @return query + **/ + @Schema(description = "Used to scope the exported data") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + public ExportJobCreate url(String url) { + this.url = url; + return this; + } + + /** + * URL of the file containing the data to be exported + * @return url + **/ + @Schema(description = "URL of the file containing the data to be exported") + @NotNull + + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public ExportJobCreate status(JobStateType status) { + this.status = status; + return this; + } + + /** + * Status of the export job (not started, running, succeeded, failed) + * @return status + **/ + @Schema(description = "Status of the export job (not started, running, succeeded, failed)") + + @Valid + + public JobStateType getStatus() { + return status; + } + + public void setStatus(JobStateType status) { + this.status = status; + } + + public ExportJobCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ExportJobCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ExportJobCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExportJobCreate exportJobCreate = (ExportJobCreate) o; + return Objects.equals(this.completionDate, exportJobCreate.completionDate) && + Objects.equals(this.contentType, exportJobCreate.contentType) && + Objects.equals(this.creationDate, exportJobCreate.creationDate) && + Objects.equals(this.errorLog, exportJobCreate.errorLog) && + Objects.equals(this.path, exportJobCreate.path) && + Objects.equals(this.query, exportJobCreate.query) && + Objects.equals(this.url, exportJobCreate.url) && + Objects.equals(this.status, exportJobCreate.status) && + Objects.equals(this.baseType, exportJobCreate.baseType) && + Objects.equals(this.schemaLocation, exportJobCreate.schemaLocation) && + Objects.equals(this.type, exportJobCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(completionDate, contentType, creationDate, errorLog, path, query, url, status, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ExportJobCreate {\n"); + + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" contentType: ").append(toIndentedString(contentType)).append("\n"); + sb.append(" creationDate: ").append(toIndentedString(creationDate)).append("\n"); + sb.append(" errorLog: ").append(toIndentedString(errorLog)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ImportJob.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ImportJob.java new file mode 100644 index 0000000..a0193ac --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ImportJob.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Represents a task used to import resources from a file + */ +@Schema(description = "Represents a task used to import resources from a file") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ImportJob { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("completionDate") + private OffsetDateTime completionDate = null; + + @JsonProperty("contentType") + private String contentType = null; + + @JsonProperty("creationDate") + private OffsetDateTime creationDate = null; + + @JsonProperty("errorLog") + private String errorLog = null; + + @JsonProperty("path") + private String path = null; + + @JsonProperty("url") + private String url = null; + + @JsonProperty("status") + private JobStateType status = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ImportJob id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the import job + * @return id + **/ + @Schema(description = "Identifier of the import job") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ImportJob href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the import job + * @return href + **/ + @Schema(description = "Reference of the import job") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ImportJob completionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Date at which the job was completed + * @return completionDate + **/ + @Schema(description = "Date at which the job was completed") + + @Valid + + public OffsetDateTime getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + } + + public ImportJob contentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * Indicates the format of the imported data + * @return contentType + **/ + @Schema(description = "Indicates the format of the imported data") + + + public String getContentType() { + return contentType; + } + + public void setContentType(String contentType) { + this.contentType = contentType; + } + + public ImportJob creationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + return this; + } + + /** + * Date at which the job was created + * @return creationDate + **/ + @Schema(description = "Date at which the job was created") + + @Valid + + public OffsetDateTime getCreationDate() { + return creationDate; + } + + public void setCreationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + } + + public ImportJob errorLog(String errorLog) { + this.errorLog = errorLog; + return this; + } + + /** + * Reason for failure if status is failed + * @return errorLog + **/ + @Schema(description = "Reason for failure if status is failed") + + + public String getErrorLog() { + return errorLog; + } + + public void setErrorLog(String errorLog) { + this.errorLog = errorLog; + } + + public ImportJob path(String path) { + this.path = path; + return this; + } + + /** + * URL of the root resource where the content of the file specified by the import job must be applied + * @return path + **/ + @Schema(description = "URL of the root resource where the content of the file specified by the import job must be applied") + + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public ImportJob url(String url) { + this.url = url; + return this; + } + + /** + * URL of the file containing the data to be imported + * @return url + **/ + @Schema(description = "URL of the file containing the data to be imported") + + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public ImportJob status(JobStateType status) { + this.status = status; + return this; + } + + /** + * Status of the import job (not started, running, succeeded, failed) + * @return status + **/ + @Schema(description = "Status of the import job (not started, running, succeeded, failed)") + + @Valid + + public JobStateType getStatus() { + return status; + } + + public void setStatus(JobStateType status) { + this.status = status; + } + + public ImportJob baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ImportJob schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ImportJob type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImportJob importJob = (ImportJob) o; + return Objects.equals(this.id, importJob.id) && + Objects.equals(this.href, importJob.href) && + Objects.equals(this.completionDate, importJob.completionDate) && + Objects.equals(this.contentType, importJob.contentType) && + Objects.equals(this.creationDate, importJob.creationDate) && + Objects.equals(this.errorLog, importJob.errorLog) && + Objects.equals(this.path, importJob.path) && + Objects.equals(this.url, importJob.url) && + Objects.equals(this.status, importJob.status) && + Objects.equals(this.baseType, importJob.baseType) && + Objects.equals(this.schemaLocation, importJob.schemaLocation) && + Objects.equals(this.type, importJob.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, completionDate, contentType, creationDate, errorLog, path, url, status, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImportJob {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" contentType: ").append(toIndentedString(contentType)).append("\n"); + sb.append(" creationDate: ").append(toIndentedString(creationDate)).append("\n"); + sb.append(" errorLog: ").append(toIndentedString(errorLog)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ImportJobCreate.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ImportJobCreate.java new file mode 100644 index 0000000..3ab2dcd --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ImportJobCreate.java @@ -0,0 +1,332 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Represents a task used to import resources from a file Skipped properties: id,href + */ +@Schema(description = "Represents a task used to import resources from a file Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ImportJobCreate { + @JsonProperty("completionDate") + private OffsetDateTime completionDate = null; + + @JsonProperty("contentType") + private String contentType = null; + + @JsonProperty("creationDate") + private OffsetDateTime creationDate = null; + + @JsonProperty("errorLog") + private String errorLog = null; + + @JsonProperty("path") + private String path = null; + + @JsonProperty("url") + private String url = null; + + @JsonProperty("status") + private JobStateType status = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ImportJobCreate completionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Date at which the job was completed + * @return completionDate + **/ + @Schema(description = "Date at which the job was completed") + + @Valid + + public OffsetDateTime getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + } + + public ImportJobCreate contentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * Indicates the format of the imported data + * @return contentType + **/ + @Schema(description = "Indicates the format of the imported data") + + + public String getContentType() { + return contentType; + } + + public void setContentType(String contentType) { + this.contentType = contentType; + } + + public ImportJobCreate creationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + return this; + } + + /** + * Date at which the job was created + * @return creationDate + **/ + @Schema(description = "Date at which the job was created") + + @Valid + + public OffsetDateTime getCreationDate() { + return creationDate; + } + + public void setCreationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + } + + public ImportJobCreate errorLog(String errorLog) { + this.errorLog = errorLog; + return this; + } + + /** + * Reason for failure if status is failed + * @return errorLog + **/ + @Schema(description = "Reason for failure if status is failed") + + + public String getErrorLog() { + return errorLog; + } + + public void setErrorLog(String errorLog) { + this.errorLog = errorLog; + } + + public ImportJobCreate path(String path) { + this.path = path; + return this; + } + + /** + * URL of the root resource where the content of the file specified by the import job must be applied + * @return path + **/ + @Schema(description = "URL of the root resource where the content of the file specified by the import job must be applied") + + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public ImportJobCreate url(String url) { + this.url = url; + return this; + } + + /** + * URL of the file containing the data to be imported + * @return url + **/ + @Schema(description = "URL of the file containing the data to be imported") + @NotNull + + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public ImportJobCreate status(JobStateType status) { + this.status = status; + return this; + } + + /** + * Status of the import job (not started, running, succeeded, failed) + * @return status + **/ + @Schema(description = "Status of the import job (not started, running, succeeded, failed)") + + @Valid + + public JobStateType getStatus() { + return status; + } + + public void setStatus(JobStateType status) { + this.status = status; + } + + public ImportJobCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ImportJobCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ImportJobCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImportJobCreate importJobCreate = (ImportJobCreate) o; + return Objects.equals(this.completionDate, importJobCreate.completionDate) && + Objects.equals(this.contentType, importJobCreate.contentType) && + Objects.equals(this.creationDate, importJobCreate.creationDate) && + Objects.equals(this.errorLog, importJobCreate.errorLog) && + Objects.equals(this.path, importJobCreate.path) && + Objects.equals(this.url, importJobCreate.url) && + Objects.equals(this.status, importJobCreate.status) && + Objects.equals(this.baseType, importJobCreate.baseType) && + Objects.equals(this.schemaLocation, importJobCreate.schemaLocation) && + Objects.equals(this.type, importJobCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(completionDate, contentType, creationDate, errorLog, path, url, status, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImportJobCreate {\n"); + + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" contentType: ").append(toIndentedString(contentType)).append("\n"); + sb.append(" creationDate: ").append(toIndentedString(creationDate)).append("\n"); + sb.append(" errorLog: ").append(toIndentedString(errorLog)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/JobStateType.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/JobStateType.java new file mode 100644 index 0000000..9a6baf8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/JobStateType.java @@ -0,0 +1,60 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Valid values for the state of a batch job (e.g. catalog import) + */ +public enum JobStateType { + + NOT_STARTED("Not Started"), + + RUNNING("Running"), + + SUCCEEDED("Succeeded"), + + FAILED("Failed"); + + private String value; + + JobStateType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static JobStateType fromValue(String text) { + for (JobStateType b : JobStateType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/MarketSegmentRef.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/MarketSegmentRef.java new file mode 100644 index 0000000..6292dcd --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/MarketSegmentRef.java @@ -0,0 +1,139 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * provides references to the corresponding market segment as target of product offerings. A market segment is grouping of Parties, GeographicAreas, SalesChannels, and so forth. + */ +@Schema(description = "provides references to the corresponding market segment as target of product offerings. A market segment is grouping of Parties, GeographicAreas, SalesChannels, and so forth.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") +@Entity(name = "MarketSegmentRef") +public class MarketSegmentRef extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + + @JsonProperty("@referredType") + private String referredType = null; + + public MarketSegmentRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the market segment + * @return id + **/ + @Schema(description = "Unique identifier of the market segment") + @NotNull + + + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + + + public MarketSegmentRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * (Class) type of the referred market segment + * @return referredType + **/ + @Schema(description = "(Class) type of the referred market segment") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MarketSegmentRef marketSegmentRef = (MarketSegmentRef) o; + return Objects.equals(this.id, marketSegmentRef.id) && + Objects.equals(this.href, marketSegmentRef.href) && + Objects.equals(this.name, marketSegmentRef.name) && + Objects.equals(this.baseType, marketSegmentRef.baseType) && + Objects.equals(this.schemaLocation, marketSegmentRef.schemaLocation) && + Objects.equals(this.type, marketSegmentRef.type) && + Objects.equals(this.referredType, marketSegmentRef.referredType); + } +// +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MarketSegmentRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/Money.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/Money.java new file mode 100644 index 0000000..30abe3b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/Money.java @@ -0,0 +1,127 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Embeddable; + +/** + * A base / value business entity used to represent money + */ +@Schema(description = "A base / value business entity used to represent money") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Embeddable +public class Money { + @JsonProperty("unit") + private String unit = null; + + @JsonProperty("value") + private Float value = null; + + public Money unit(String unit) { + this.unit = unit; + return this; + } + + /** + * Currency (ISO4217 norm uses 3 letters to define the currency) + * @return unit + **/ + @Schema(description = "Currency (ISO4217 norm uses 3 letters to define the currency)") + + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public Money value(Float value) { + this.value = value; + return this; + } + + /** + * A positive floating point number + * @return value + **/ + @Schema(description = "A positive floating point number") + + + public Float getValue() { + return value; + } + + public void setValue(Float value) { + this.value = value; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Money money = (Money) o; + return Objects.equals(this.unit, money.unit) && + Objects.equals(this.value, money.value); + } + + @Override + public int hashCode() { + return Objects.hash(unit, value); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Money {\n"); + + sb.append(" unit: ").append(toIndentedString(unit)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/PlaceRef.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/PlaceRef.java new file mode 100644 index 0000000..2fb0b26 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/PlaceRef.java @@ -0,0 +1,136 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * Place reference. PlaceRef defines the placeRefs where the products are sold + * or delivered. + */ +@Schema(description = "Place reference. PlaceRef defines the placeRefs where the products are sold or delivered.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") +@Entity(name = "PlaceRef") +public class PlaceRef extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public PlaceRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getId() { + return id; + } + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + public PlaceRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlaceRef placeRef = (PlaceRef) o; + return Objects.equals(this.id, placeRef.id) && Objects.equals(this.href, placeRef.href) + && Objects.equals(this.name, placeRef.name) && Objects.equals(this.baseType, placeRef.baseType) + && Objects.equals(this.schemaLocation, placeRef.schemaLocation) + && Objects.equals(this.type, placeRef.type) && Objects.equals(this.referredType, placeRef.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlaceRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/PricingLogicAlgorithm.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/PricingLogicAlgorithm.java new file mode 100644 index 0000000..a864239 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/PricingLogicAlgorithm.java @@ -0,0 +1,144 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * The PricingLogicAlgorithm entity represents an instantiation of an interface specification to external rating function (without a modeled bahavior in SID). Some of the parameters of the interface definiition may be already set (such as price per unit) and some may be gathered during the rating process from the event (such as call duration) or from ProductCharacteristicValues (such as assigned bandwidth) + */ +@Schema(description = "The PricingLogicAlgorithm entity represents an instantiation of an interface specification to external rating function (without a modeled bahavior in SID). Some of the parameters of the interface definiition may be already set (such as price per unit) and some may be gathered during the rating process from the event (such as call duration) or from ProductCharacteristicValues (such as assigned bandwidth)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + + +@Entity +public class PricingLogicAlgorithm extends BaseEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("plaSpecId") + private String plaSpecId = null; + + + + public PricingLogicAlgorithm id(String id) { + this.id = id; + return this; + } + + /** + * unique id of the PricingLogicAlgorithm + * @return id + **/ + @Schema(description = "unique id of the PricingLogicAlgorithm") + + + public String getId() { + if ( uuid != null ) { + id = uuid; + } + return id; + } + + + public PricingLogicAlgorithm plaSpecId(String plaSpecId) { + this.plaSpecId = plaSpecId; + return this; + } + + /** + * id of corresponding PricingLogicAlgorithm specification + * @return plaSpecId + **/ + @Schema(description = "id of corresponding PricingLogicAlgorithm specification") + + + public String getPlaSpecId() { + return plaSpecId; + } + + public void setPlaSpecId(String plaSpecId) { + this.plaSpecId = plaSpecId; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PricingLogicAlgorithm pricingLogicAlgorithm = (PricingLogicAlgorithm) o; + return Objects.equals(this.id, pricingLogicAlgorithm.id) && + Objects.equals(this.href, pricingLogicAlgorithm.href) && + Objects.equals(this.description, pricingLogicAlgorithm.description) && + Objects.equals(this.name, pricingLogicAlgorithm.name) && + Objects.equals(this.plaSpecId, pricingLogicAlgorithm.plaSpecId) && + Objects.equals(this.validFor, pricingLogicAlgorithm.validFor) && + Objects.equals(this.baseType, pricingLogicAlgorithm.baseType) && + Objects.equals(this.schemaLocation, pricingLogicAlgorithm.schemaLocation) && + Objects.equals(this.type, pricingLogicAlgorithm.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, description, name, plaSpecId, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PricingLogicAlgorithm {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" plaSpecId: ").append(toIndentedString(plaSpecId)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOffering.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOffering.java new file mode 100644 index 0000000..1efa62f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOffering.java @@ -0,0 +1,738 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.am651.model.AgreementRef; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * Represents entities that are orderable from the provider of the catalog, this + * resource includes pricing information. + */ +@Schema(description = "Represents entities that are orderable from the provider of the catalog, this resource includes pricing information.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity(name = "ProductOffering") +@Table(name = "ProductOffering") +public class ProductOffering extends BaseEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("isBundle") + private Boolean isBundle = null; + + @JsonProperty("isSellable") + private Boolean isSellable = null; + + @JsonProperty("statusReason") + private String statusReason = null; + + @JsonProperty("agreement") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set agreement = new HashSet<>(); + + @JsonProperty("attachment") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set attachment = new HashSet<>(); + + @JsonProperty("bundledProductOffering") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set bundledProductOffering = new HashSet<>(); + + @JsonProperty("category") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set category = new HashSet<>(); + + @JsonProperty("channel") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set channel = new HashSet<>(); + + @JsonProperty("marketSegment") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set marketSegment = new HashSet<>(); + + @JsonProperty("place") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set place = new HashSet<>(); + + @JsonProperty("prodSpecCharValueUse") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set prodSpecCharValueUse = new HashSet<>(); + + @JsonProperty("productOfferingPrice") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set productOfferingPrice = new HashSet<>(); + + @JsonProperty("productOfferingTerm") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set productOfferingTerm = new HashSet<>(); + + @JsonProperty("productSpecification") + @OneToOne( cascade = {CascadeType.MERGE, CascadeType.DETACH} ) + @JoinColumn(referencedColumnName = "uuid") + private ProductSpecificationRef productSpecification = null; + + @JsonProperty("resourceCandidate") + @OneToOne( cascade = {CascadeType.MERGE, CascadeType.DETACH} ) + @JoinColumn(referencedColumnName = "uuid") + private ResourceCandidateRef resourceCandidate = null; + + @JsonProperty("serviceCandidate") + @OneToOne( cascade = {CascadeType.MERGE, CascadeType.DETACH} ) + @JoinColumn(referencedColumnName = "uuid") + private ServiceCandidateRef serviceCandidate = null; + + @JsonProperty("serviceLevelAgreement") + @OneToOne( cascade = {CascadeType.MERGE, CascadeType.DETACH} ) + @JoinColumn(referencedColumnName = "uuid") + private SLARef serviceLevelAgreement = null; + + public ProductOffering id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the productOffering + * + * @return id + **/ + @Schema(description = "Unique identifier of the productOffering") + + public String getId() { + if ( uuid != null ) { + id = uuid; + } + return id; + } + + + + + public ProductOffering isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * isBundle determines whether a productOffering represents a single + * productOffering (false), or a bundle of productOfferings (true). + * + * @return isBundle + **/ + @Schema(description = "isBundle determines whether a productOffering represents a single productOffering (false), or a bundle of productOfferings (true).") + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + public ProductOffering isSellable(Boolean isSellable) { + this.isSellable = isSellable; + return this; + } + + /** + * A flag indicating if this product offer can be sold stand-alone for sale or + * not. If this flag is false it indicates that the offer can only be sold + * within a bundle. + * + * @return isSellable + **/ + @Schema(description = "A flag indicating if this product offer can be sold stand-alone for sale or not. If this flag is false it indicates that the offer can only be sold within a bundle.") + + public Boolean isIsSellable() { + return isSellable; + } + + public void setIsSellable(Boolean isSellable) { + this.isSellable = isSellable; + } + + + + + + /** + * A string providing a complementary information on the value of the lifecycle + * status attribute. + * + * @return statusReason + **/ + @Schema(description = "A string providing a complementary information on the value of the lifecycle status attribute.") + + public String getStatusReason() { + return statusReason; + } + + public void setStatusReason(String statusReason) { + this.statusReason = statusReason; + } + + + + public ProductOffering agreement(Set agreement) { + this.agreement = agreement; + return this; + } + + public ProductOffering addAgreementItem(AgreementRef agreementItem) { + if (this.agreement == null) { + this.agreement = new HashSet<>(); + } + this.agreement.add(agreementItem); + return this; + } + + /** + * An agreement represents a contract or arrangement, either written or verbal + * and sometimes enforceable by law, such as a service level agreement or a + * customer price agreement. An agreement involves a number of other business + * entities, such as products, services, and resources and/or their + * specifications. + * + * @return agreement + **/ + @Schema(description = "An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications.") + + @Valid + + public Set getAgreement() { + return agreement; + } + + public void setAgreement(Set agreement) { + this.agreement = agreement; + } + + public ProductOffering attachment( Set attachment) { + this.attachment = attachment; + return this; + } + + public ProductOffering addAttachmentItem(AttachmentRefOrValue attachmentItem) { + if (this.attachment == null) { + this.attachment = new HashSet<>(); + } + this.attachment.add(attachmentItem); + return this; + } + + /** + * Complements the description of an element (for instance a product) through + * video, pictures... + * + * @return attachment + **/ + @Schema(description = "Complements the description of an element (for instance a product) through video, pictures...") + + @Valid + + public Set getAttachment() { + return attachment; + } + + public void setAttachment(Set attachment) { + this.attachment = attachment; + } + + public ProductOffering bundledProductOffering(Set bundledProductOffering) { + this.bundledProductOffering = bundledProductOffering; + return this; + } + + public ProductOffering addBundledProductOfferingItem(BundledProductOffering bundledProductOfferingItem) { + if (this.bundledProductOffering == null) { + this.bundledProductOffering = new HashSet<>(); + } + this.bundledProductOffering.add(bundledProductOfferingItem); + return this; + } + + /** + * A type of ProductOffering that belongs to a grouping of ProductOfferings made + * available to the market. It inherits of all attributes of ProductOffering. + * + * @return bundledProductOffering + **/ + @Schema(description = "A type of ProductOffering that belongs to a grouping of ProductOfferings made available to the market. It inherits of all attributes of ProductOffering.") + + @Valid + + public Set getBundledProductOffering() { + return bundledProductOffering; + } + + public void setBundledProductOffering(Set bundledProductOffering) { + this.bundledProductOffering = bundledProductOffering; + } + + public ProductOffering category(Set category) { + this.category = category; + return this; + } + + public ProductOffering addCategoryItem(CategoryRef categoryItem) { + if (this.category == null) { + this.category = new HashSet<>(); + } + this.category.add(categoryItem); + return this; + } + + /** + * The category resource is used to group product offerings, service and + * resource candidates in logical containers. Categories can contain other + * categories and/or product offerings, resource or service candidates. + * + * @return category + **/ + @Schema(description = "The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates.") + + @Valid + + public Set getCategory() { + return category; + } + + public void setCategory(Set category) { + this.category = category; + } + + public ProductOffering channel(Set channel) { + this.channel = channel; + return this; + } + + public ProductOffering addChannelItem(ChannelRef channelItem) { + if (this.channel == null) { + this.channel = new HashSet<>(); + } + this.channel.add(channelItem); + return this; + } + + /** + * The channel defines the channel for selling product offerings. + * + * @return channel + **/ + @Schema(description = "The channel defines the channel for selling product offerings.") + + @Valid + + public Set getChannel() { + return channel; + } + + public void setChannel(Set channel) { + this.channel = channel; + } + + public ProductOffering marketSegment(Set marketSegment) { + this.marketSegment = marketSegment; + return this; + } + + public ProductOffering addMarketSegmentItem(MarketSegmentRef marketSegmentItem) { + if (this.marketSegment == null) { + this.marketSegment = new HashSet<>(); + } + this.marketSegment.add(marketSegmentItem); + return this; + } + + /** + * provides references to the corresponding market segment as target of product + * offerings. A market segment is grouping of Parties, GeographicAreas, + * SalesChannels, and so forth. + * + * @return marketSegment + **/ + @Schema(description = "provides references to the corresponding market segment as target of product offerings. A market segment is grouping of Parties, GeographicAreas, SalesChannels, and so forth.") + + @Valid + + public Set getMarketSegment() { + return marketSegment; + } + + public void setMarketSegment(Set marketSegment) { + this.marketSegment = marketSegment; + } + + public ProductOffering place(Set place) { + this.place = place; + return this; + } + + public ProductOffering addPlaceItem(PlaceRef placeItem) { + if (this.place == null) { + this.place = new HashSet<>(); + } + this.place.add(placeItem); + return this; + } + + /** + * Place defines the places where the products are sold or delivered. + * + * @return place + **/ + @Schema(description = "Place defines the places where the products are sold or delivered.") + + @Valid + + public Set getPlace() { + return place; + } + + public void setPlace(Set place) { + this.place = place; + } + + public ProductOffering prodSpecCharValueUse( Set prodSpecCharValueUse) { + this.prodSpecCharValueUse = prodSpecCharValueUse; + return this; + } + + public ProductOffering addProdSpecCharValueUseItem( + ProductSpecificationCharacteristicValueUse prodSpecCharValueUseItem) { + if (this.prodSpecCharValueUse == null) { + this.prodSpecCharValueUse = new HashSet<>(); + } + this.prodSpecCharValueUse.add(prodSpecCharValueUseItem); + return this; + } + + /** + * A use of the ProductSpecificationCharacteristicValue by a ProductOffering to + * which additional properties (attributes) apply or override the properties of + * similar properties contained in ProductSpecificationCharacteristicValue. It + * should be noted that characteristics which their value(s) addressed by this + * object must exist in corresponding product specification. The available + * characteristic values for a ProductSpecificationCharacteristic in a Product + * specification can be modified at the ProductOffering level. For example, a + * characteristic 'Color' might have values White, Blue, Green, and Red. But, + * the list of values can be restricted to e.g. White and Blue in an associated + * product offering. It should be noted that the list of values in + * 'ProductSpecificationCharacteristicValueUse' is a strict subset of the list + * of values as defined in the corresponding product specification + * characteristics. + * + * @return prodSpecCharValueUse + **/ + @Schema(description = "A use of the ProductSpecificationCharacteristicValue by a ProductOffering to which additional properties (attributes) apply or override the properties of similar properties contained in ProductSpecificationCharacteristicValue. It should be noted that characteristics which their value(s) addressed by this object must exist in corresponding product specification. The available characteristic values for a ProductSpecificationCharacteristic in a Product specification can be modified at the ProductOffering level. For example, a characteristic 'Color' might have values White, Blue, Green, and Red. But, the list of values can be restricted to e.g. White and Blue in an associated product offering. It should be noted that the list of values in 'ProductSpecificationCharacteristicValueUse' is a strict subset of the list of values as defined in the corresponding product specification characteristics.") + + @Valid + + public Set getProdSpecCharValueUse() { + return prodSpecCharValueUse; + } + + public void setProdSpecCharValueUse(Set prodSpecCharValueUse) { + this.prodSpecCharValueUse = prodSpecCharValueUse; + } + + public ProductOffering productOfferingPrice(Set productOfferingPrice) { + this.productOfferingPrice = productOfferingPrice; + return this; + } + + public ProductOffering addProductOfferingPriceItem(ProductOfferingPriceRef productOfferingPriceItem) { + if (this.productOfferingPrice == null) { + this.productOfferingPrice = new HashSet<>(); + } + this.productOfferingPrice.add(productOfferingPriceItem); + return this; + } + + /** + * An amount, usually of money, that is asked for or allowed when a + * ProductOffering is bought, rented, or leased. The price is valid for a + * defined period of time and may not represent the actual price paid by a + * customer. + * + * @return productOfferingPrice + **/ + @Schema(description = "An amount, usually of money, that is asked for or allowed when a ProductOffering is bought, rented, or leased. The price is valid for a defined period of time and may not represent the actual price paid by a customer.") + + @Valid + + public Set getProductOfferingPrice() { + return productOfferingPrice; + } + + public void setProductOfferingPrice(Set productOfferingPrice) { + this.productOfferingPrice = productOfferingPrice; + } + + public ProductOffering productOfferingTerm(Set productOfferingTerm) { + this.productOfferingTerm = productOfferingTerm; + return this; + } + + public ProductOffering addProductOfferingTermItem(ProductOfferingTerm productOfferingTermItem) { + if (this.productOfferingTerm == null) { + this.productOfferingTerm = new HashSet<>(); + } + this.productOfferingTerm.add(productOfferingTermItem); + return this; + } + + /** + * A condition under which a ProductOffering is made available to Customers. For + * instance, a productOffering can be offered with multiple commitment periods. + * + * @return productOfferingTerm + **/ + @Schema(description = "A condition under which a ProductOffering is made available to Customers. For instance, a productOffering can be offered with multiple commitment periods.") + + @Valid + + public Set getProductOfferingTerm() { + return productOfferingTerm; + } + + public void setProductOfferingTerm(Set productOfferingTerm) { + this.productOfferingTerm = productOfferingTerm; + } + + public ProductOffering productSpecification(ProductSpecificationRef productSpecification) { + this.productSpecification = productSpecification; + return this; + } + + /** + * A ProductSpecification is a detailed description of a tangible or intangible + * object made available externally in the form of a ProductOffering to + * customers or other parties playing a party role. + * + * @return productSpecification + **/ + @Schema(description = "A ProductSpecification is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role.") + + @Valid + + public ProductSpecificationRef getProductSpecification() { + return productSpecification; + } + + public void setProductSpecification(ProductSpecificationRef productSpecification) { + this.productSpecification = productSpecification; + } + + public ProductOffering resourceCandidate(ResourceCandidateRef resourceCandidate) { + this.resourceCandidate = resourceCandidate; + return this; + } + + /** + * A resource candidate is an entity that makes a ResourceSpecification + * available to a catalog. + * + * @return resourceCandidate + **/ + @Schema(description = "A resource candidate is an entity that makes a ResourceSpecification available to a catalog.") + + @Valid + + public ResourceCandidateRef getResourceCandidate() { + return resourceCandidate; + } + + public void setResourceCandidate(ResourceCandidateRef resourceCandidate) { + this.resourceCandidate = resourceCandidate; + } + + public ProductOffering serviceCandidate(ServiceCandidateRef serviceCandidate) { + this.serviceCandidate = serviceCandidate; + return this; + } + + /** + * ServiceCandidate is an entity that makes a ServiceSpecification available to + * a catalog. + * + * @return serviceCandidate + **/ + @Schema(description = "ServiceCandidate is an entity that makes a ServiceSpecification available to a catalog.") + + @Valid + + public ServiceCandidateRef getServiceCandidate() { + return serviceCandidate; + } + + public void setServiceCandidate(ServiceCandidateRef serviceCandidate) { + this.serviceCandidate = serviceCandidate; + } + + public ProductOffering serviceLevelAgreement(SLARef serviceLevelAgreement) { + this.serviceLevelAgreement = serviceLevelAgreement; + return this; + } + + /** + * A service level agreement (SLA) is a type of agreement that represents a + * formal negotiated agreement between two parties designed to create a common + * understanding about products, services, priorities, responsibilities, and so + * forth. The SLA is a set of appropriate procedures and targets formally or + * informally agreed between parties in order to achieve and maintain specified + * Quality of Service. + * + * @return serviceLevelAgreement + **/ + @Schema(description = "A service level agreement (SLA) is a type of agreement that represents a formal negotiated agreement between two parties designed to create a common understanding about products, services, priorities, responsibilities, and so forth. The SLA is a set of appropriate procedures and targets formally or informally agreed between parties in order to achieve and maintain specified Quality of Service.") + + @Valid + + public SLARef getServiceLevelAgreement() { + return serviceLevelAgreement; + } + + public void setServiceLevelAgreement(SLARef serviceLevelAgreement) { + this.serviceLevelAgreement = serviceLevelAgreement; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOffering productOffering = (ProductOffering) o; + return Objects.equals(this.id, productOffering.id) && Objects.equals(this.href, productOffering.href) + && Objects.equals(this.description, productOffering.description) + && Objects.equals(this.isBundle, productOffering.isBundle) + && Objects.equals(this.isSellable, productOffering.isSellable) + && Objects.equals(this.lastUpdate, productOffering.lastUpdate) + && Objects.equals(this.lifecycleStatus, productOffering.lifecycleStatus) + && Objects.equals(this.name, productOffering.name) + && Objects.equals(this.statusReason, productOffering.statusReason) + && Objects.equals(this.version, productOffering.version) + && Objects.equals(this.agreement, productOffering.agreement) + && Objects.equals(this.attachment, productOffering.attachment) + && Objects.equals(this.bundledProductOffering, productOffering.bundledProductOffering) + && Objects.equals(this.category, productOffering.category) + && Objects.equals(this.channel, productOffering.channel) + && Objects.equals(this.marketSegment, productOffering.marketSegment) + && Objects.equals(this.place, productOffering.place) + && Objects.equals(this.prodSpecCharValueUse, productOffering.prodSpecCharValueUse) + && Objects.equals(this.productOfferingPrice, productOffering.productOfferingPrice) + && Objects.equals(this.productOfferingTerm, productOffering.productOfferingTerm) + && Objects.equals(this.productSpecification, productOffering.productSpecification) + && Objects.equals(this.resourceCandidate, productOffering.resourceCandidate) + && Objects.equals(this.serviceCandidate, productOffering.serviceCandidate) + && Objects.equals(this.serviceLevelAgreement, productOffering.serviceLevelAgreement) + && Objects.equals(this.validFor, productOffering.validFor) + && Objects.equals(this.baseType, productOffering.baseType) + && Objects.equals(this.schemaLocation, productOffering.schemaLocation) + && Objects.equals(this.type, productOffering.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, description, isBundle, isSellable, lastUpdate, lifecycleStatus, name, statusReason, version, agreement, attachment, bundledProductOffering, category, channel, marketSegment, place, prodSpecCharValueUse, productOfferingPrice, productOfferingTerm, productSpecification, resourceCandidate, serviceCandidate, serviceLevelAgreement, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOffering {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" isSellable: ").append(toIndentedString(isSellable)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" statusReason: ").append(toIndentedString(statusReason)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" agreement: ").append(toIndentedString(agreement)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" bundledProductOffering: ").append(toIndentedString(bundledProductOffering)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" channel: ").append(toIndentedString(channel)).append("\n"); + sb.append(" marketSegment: ").append(toIndentedString(marketSegment)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" prodSpecCharValueUse: ").append(toIndentedString(prodSpecCharValueUse)).append("\n"); + sb.append(" productOfferingPrice: ").append(toIndentedString(productOfferingPrice)).append("\n"); + sb.append(" productOfferingTerm: ").append(toIndentedString(productOfferingTerm)).append("\n"); + sb.append(" productSpecification: ").append(toIndentedString(productSpecification)).append("\n"); + sb.append(" resourceCandidate: ").append(toIndentedString(resourceCandidate)).append("\n"); + sb.append(" serviceCandidate: ").append(toIndentedString(serviceCandidate)).append("\n"); + sb.append(" serviceLevelAgreement: ").append(toIndentedString(serviceLevelAgreement)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingAttributeValueChangeEvent.java new file mode 100644 index 0000000..cbd8f59 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingAttributeValueChangeEvent.java @@ -0,0 +1,355 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingAttributeValueChangeEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("event") + private ProductOfferingAttributeValueChangeEventPayload event = null; + + public ProductOfferingAttributeValueChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ProductOfferingAttributeValueChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ProductOfferingAttributeValueChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ProductOfferingAttributeValueChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ProductOfferingAttributeValueChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ProductOfferingAttributeValueChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ProductOfferingAttributeValueChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductOfferingAttributeValueChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ProductOfferingAttributeValueChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ProductOfferingAttributeValueChangeEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ProductOfferingAttributeValueChangeEvent event(ProductOfferingAttributeValueChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public ProductOfferingAttributeValueChangeEventPayload getEvent() { + return event; + } + + public void setEvent(ProductOfferingAttributeValueChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingAttributeValueChangeEvent productOfferingAttributeValueChangeEvent = (ProductOfferingAttributeValueChangeEvent) o; + return Objects.equals(this.eventId, productOfferingAttributeValueChangeEvent.eventId) && + Objects.equals(this.eventTime, productOfferingAttributeValueChangeEvent.eventTime) && + Objects.equals(this.eventType, productOfferingAttributeValueChangeEvent.eventType) && + Objects.equals(this.correlationId, productOfferingAttributeValueChangeEvent.correlationId) && + Objects.equals(this.domain, productOfferingAttributeValueChangeEvent.domain) && + Objects.equals(this.title, productOfferingAttributeValueChangeEvent.title) && + Objects.equals(this.description, productOfferingAttributeValueChangeEvent.description) && + Objects.equals(this.priority, productOfferingAttributeValueChangeEvent.priority) && + Objects.equals(this.timeOcurred, productOfferingAttributeValueChangeEvent.timeOcurred) && + Objects.equals(this.fieldPath, productOfferingAttributeValueChangeEvent.fieldPath) && + Objects.equals(this.event, productOfferingAttributeValueChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, fieldPath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingAttributeValueChangeEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingAttributeValueChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingAttributeValueChangeEventPayload.java new file mode 100644 index 0000000..943b6be --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingAttributeValueChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingAttributeValueChangeEventPayload { + @JsonProperty("productOffering") + private ProductOffering productOffering = null; + + public ProductOfferingAttributeValueChangeEventPayload productOffering(ProductOffering productOffering) { + this.productOffering = productOffering; + return this; + } + + /** + * The involved resource data for the event + * @return productOffering + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ProductOffering getProductOffering() { + return productOffering; + } + + public void setProductOffering(ProductOffering productOffering) { + this.productOffering = productOffering; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingAttributeValueChangeEventPayload productOfferingAttributeValueChangeEventPayload = (ProductOfferingAttributeValueChangeEventPayload) o; + return Objects.equals(this.productOffering, productOfferingAttributeValueChangeEventPayload.productOffering); + } + + @Override + public int hashCode() { + return Objects.hash(productOffering); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingAttributeValueChangeEventPayload {\n"); + + sb.append(" productOffering: ").append(toIndentedString(productOffering)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingCreate.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingCreate.java new file mode 100644 index 0000000..1e1061a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingCreate.java @@ -0,0 +1,155 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Represents entities that are orderable from the provider of the catalog, this resource includes pricing information. Skipped properties: id,href + */ +@Schema(description = "Represents entities that are orderable from the provider of the catalog, this resource includes pricing information. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingCreate extends ProductOfferingUpdate { + + + @JsonProperty("lastUpdate") + private OffsetDateTime lastUpdate = null; + + + + + /** + * Date and time of the last update + * @return lastUpdate + **/ + @Schema(description = "Date and time of the last update") + + @Valid + + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingCreate productOfferingCreate = (ProductOfferingCreate) o; + return Objects.equals(this.description, productOfferingCreate.description) && + Objects.equals(this.isBundle, productOfferingCreate.isBundle) && + Objects.equals(this.isSellable, productOfferingCreate.isSellable) && + Objects.equals(this.lastUpdate, productOfferingCreate.lastUpdate) && + Objects.equals(this.lifecycleStatus, productOfferingCreate.lifecycleStatus) && + Objects.equals(this.name, productOfferingCreate.name) && + Objects.equals(this.statusReason, productOfferingCreate.statusReason) && + Objects.equals(this.version, productOfferingCreate.version) && + Objects.equals(this.agreement, productOfferingCreate.agreement) && + Objects.equals(this.attachment, productOfferingCreate.attachment) && + Objects.equals(this.bundledProductOffering, productOfferingCreate.bundledProductOffering) && + Objects.equals(this.category, productOfferingCreate.category) && + Objects.equals(this.channel, productOfferingCreate.channel) && + Objects.equals(this.marketSegment, productOfferingCreate.marketSegment) && + Objects.equals(this.place, productOfferingCreate.place) && + Objects.equals(this.prodSpecCharValueUse, productOfferingCreate.prodSpecCharValueUse) && + Objects.equals(this.productOfferingPrice, productOfferingCreate.productOfferingPrice) && + Objects.equals(this.productOfferingTerm, productOfferingCreate.productOfferingTerm) && + Objects.equals(this.productSpecification, productOfferingCreate.productSpecification) && + Objects.equals(this.resourceCandidate, productOfferingCreate.resourceCandidate) && + Objects.equals(this.serviceCandidate, productOfferingCreate.serviceCandidate) && + Objects.equals(this.serviceLevelAgreement, productOfferingCreate.serviceLevelAgreement) && + Objects.equals(this.validFor, productOfferingCreate.validFor) && + Objects.equals(this.baseType, productOfferingCreate.baseType) && + Objects.equals(this.schemaLocation, productOfferingCreate.schemaLocation) && + Objects.equals(this.type, productOfferingCreate.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(description, isBundle, isSellable, lastUpdate, lifecycleStatus, name, statusReason, version, agreement, attachment, bundledProductOffering, category, channel, marketSegment, place, prodSpecCharValueUse, productOfferingPrice, productOfferingTerm, productSpecification, resourceCandidate, serviceCandidate, serviceLevelAgreement, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingCreate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" isSellable: ").append(toIndentedString(isSellable)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" statusReason: ").append(toIndentedString(statusReason)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" agreement: ").append(toIndentedString(agreement)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" bundledProductOffering: ").append(toIndentedString(bundledProductOffering)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" channel: ").append(toIndentedString(channel)).append("\n"); + sb.append(" marketSegment: ").append(toIndentedString(marketSegment)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" prodSpecCharValueUse: ").append(toIndentedString(prodSpecCharValueUse)).append("\n"); + sb.append(" productOfferingPrice: ").append(toIndentedString(productOfferingPrice)).append("\n"); + sb.append(" productOfferingTerm: ").append(toIndentedString(productOfferingTerm)).append("\n"); + sb.append(" productSpecification: ").append(toIndentedString(productSpecification)).append("\n"); + sb.append(" resourceCandidate: ").append(toIndentedString(resourceCandidate)).append("\n"); + sb.append(" serviceCandidate: ").append(toIndentedString(serviceCandidate)).append("\n"); + sb.append(" serviceLevelAgreement: ").append(toIndentedString(serviceLevelAgreement)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingCreateEvent.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingCreateEvent.java new file mode 100644 index 0000000..fdfacd4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingCreateEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ProductOfferingCreateEventPayload event = null; + + public ProductOfferingCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductOfferingCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductOfferingCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ProductOfferingCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ProductOfferingCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ProductOfferingCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ProductOfferingCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ProductOfferingCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ProductOfferingCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductOfferingCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ProductOfferingCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ProductOfferingCreateEvent event(ProductOfferingCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public ProductOfferingCreateEventPayload getEvent() { + return event; + } + + public void setEvent(ProductOfferingCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingCreateEvent productOfferingCreateEvent = (ProductOfferingCreateEvent) o; + return Objects.equals(this.id, productOfferingCreateEvent.id) && + Objects.equals(this.href, productOfferingCreateEvent.href) && + Objects.equals(this.eventId, productOfferingCreateEvent.eventId) && + Objects.equals(this.eventTime, productOfferingCreateEvent.eventTime) && + Objects.equals(this.eventType, productOfferingCreateEvent.eventType) && + Objects.equals(this.correlationId, productOfferingCreateEvent.correlationId) && + Objects.equals(this.domain, productOfferingCreateEvent.domain) && + Objects.equals(this.title, productOfferingCreateEvent.title) && + Objects.equals(this.description, productOfferingCreateEvent.description) && + Objects.equals(this.priority, productOfferingCreateEvent.priority) && + Objects.equals(this.timeOcurred, productOfferingCreateEvent.timeOcurred) && + Objects.equals(this.event, productOfferingCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingCreateEventPayload.java new file mode 100644 index 0000000..6adc387 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingCreateEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingCreateEventPayload { + @JsonProperty("productOffering") + private ProductOffering productOffering = null; + + public ProductOfferingCreateEventPayload productOffering(ProductOffering productOffering) { + this.productOffering = productOffering; + return this; + } + + /** + * The involved resource data for the event + * @return productOffering + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ProductOffering getProductOffering() { + return productOffering; + } + + public void setProductOffering(ProductOffering productOffering) { + this.productOffering = productOffering; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingCreateEventPayload productOfferingCreateEventPayload = (ProductOfferingCreateEventPayload) o; + return Objects.equals(this.productOffering, productOfferingCreateEventPayload.productOffering); + } + + @Override + public int hashCode() { + return Objects.hash(productOffering); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingCreateEventPayload {\n"); + + sb.append(" productOffering: ").append(toIndentedString(productOffering)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingDeleteEvent.java new file mode 100644 index 0000000..3dfd02c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingDeleteEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingDeleteEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ProductOfferingDeleteEventPayload event = null; + + public ProductOfferingDeleteEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductOfferingDeleteEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductOfferingDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ProductOfferingDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ProductOfferingDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ProductOfferingDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ProductOfferingDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ProductOfferingDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ProductOfferingDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductOfferingDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ProductOfferingDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ProductOfferingDeleteEvent event(ProductOfferingDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public ProductOfferingDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(ProductOfferingDeleteEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingDeleteEvent productOfferingDeleteEvent = (ProductOfferingDeleteEvent) o; + return Objects.equals(this.id, productOfferingDeleteEvent.id) && + Objects.equals(this.href, productOfferingDeleteEvent.href) && + Objects.equals(this.eventId, productOfferingDeleteEvent.eventId) && + Objects.equals(this.eventTime, productOfferingDeleteEvent.eventTime) && + Objects.equals(this.eventType, productOfferingDeleteEvent.eventType) && + Objects.equals(this.correlationId, productOfferingDeleteEvent.correlationId) && + Objects.equals(this.domain, productOfferingDeleteEvent.domain) && + Objects.equals(this.title, productOfferingDeleteEvent.title) && + Objects.equals(this.description, productOfferingDeleteEvent.description) && + Objects.equals(this.priority, productOfferingDeleteEvent.priority) && + Objects.equals(this.timeOcurred, productOfferingDeleteEvent.timeOcurred) && + Objects.equals(this.event, productOfferingDeleteEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingDeleteEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingDeleteEventPayload.java new file mode 100644 index 0000000..932b8ea --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingDeleteEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingDeleteEventPayload { + @JsonProperty("productOffering") + private ProductOffering productOffering = null; + + public ProductOfferingDeleteEventPayload productOffering(ProductOffering productOffering) { + this.productOffering = productOffering; + return this; + } + + /** + * The involved resource data for the event + * @return productOffering + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ProductOffering getProductOffering() { + return productOffering; + } + + public void setProductOffering(ProductOffering productOffering) { + this.productOffering = productOffering; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingDeleteEventPayload productOfferingDeleteEventPayload = (ProductOfferingDeleteEventPayload) o; + return Objects.equals(this.productOffering, productOfferingDeleteEventPayload.productOffering); + } + + @Override + public int hashCode() { + return Objects.hash(productOffering); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingDeleteEventPayload {\n"); + + sb.append(" productOffering: ").append(toIndentedString(productOffering)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPrice.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPrice.java new file mode 100644 index 0000000..1c65493 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPrice.java @@ -0,0 +1,645 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.etsi.osl.tmf.common.model.Quantity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * Is based on both the basic cost to develop and produce products and the + * enterprises policy on revenue targets. This price may be further revised + * through discounting (productOfferPriceAlteration). The price, applied for a + * productOffering may also be influenced by the productOfferingTerm, the + * customer selected, eg: a productOffering can be offered with multiple terms, + * like commitment periods for the contract. The price may be influenced by this + * productOfferingTerm. A productOffering may be cheaper with a 24 month + * commitment than with a 12 month commitment. + */ +@Schema(description = "Is based on both the basic cost to develop and produce products and the enterprises policy on revenue targets. This price may be further revised through discounting (productOfferPriceAlteration). The price, applied for a productOffering may also be influenced by the productOfferingTerm, the customer selected, eg: a productOffering can be offered with multiple terms, like commitment periods for the contract. The price may be influenced by this productOfferingTerm. A productOffering may be cheaper with a 24 month commitment than with a 12 month commitment.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity(name = "ProductOfferingPrice") +@Table(name = "ProductOfferingPrice") +public class ProductOfferingPrice extends BaseEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("isBundle") + private Boolean isBundle = null; + + @JsonProperty("percentage") + private Float percentage = null; + + @JsonProperty("priceType") + private String priceType = null; + + @JsonProperty("recurringChargePeriodLength") + private Integer recurringChargePeriodLength = null; + + @JsonProperty("recurringChargePeriodType") + private String recurringChargePeriodType = null; + + @JsonProperty("bundledPopRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set bundledPopRelationship = new HashSet<>(); + + @JsonProperty("constraint") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set constraint = new HashSet<>(); + + @JsonProperty("place") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set place = new HashSet<>(); + + @JsonProperty("popRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set popRelationship = new HashSet<>(); + + @JsonProperty("price") + private Money price = null; + + @JsonProperty("pricingLogicAlgorithm") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set pricingLogicAlgorithm = new HashSet<>(); + + @JsonProperty("prodSpecCharValueUse") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set prodSpecCharValueUse = new HashSet<>(); + + @JsonProperty("productOfferingTerm") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set productOfferingTerm = new HashSet<>(); + + @JsonProperty("tax") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set tax = new HashSet<>(); + + @JsonProperty("unitOfMeasure") + private Quantity unitOfMeasure = null; + + public ProductOfferingPrice id(String id) { + this.id = id; + return this; + } + + /** + * unique id of this resource + * + * @return id + **/ + @Schema(description = "unique id of this resource") + + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + public ProductOfferingPrice href(String href) { + this.href = href; + return this; + } + + public ProductOfferingPrice isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * A flag indicating if this ProductOfferingPrice is composite (bundle) or not + * + * @return isBundle + **/ + @Schema(description = "A flag indicating if this ProductOfferingPrice is composite (bundle) or not") + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + public ProductOfferingPrice percentage(Float percentage) { + this.percentage = percentage; + return this; + } + + /** + * Percentage to apply for ProductOfferPriceAlteration (Discount) + * + * @return percentage + **/ + @Schema(description = "Percentage to apply for ProductOfferPriceAlteration (Discount)") + + public Float getPercentage() { + return percentage; + } + + public void setPercentage(Float percentage) { + this.percentage = percentage; + } + + public ProductOfferingPrice priceType(String priceType) { + this.priceType = priceType; + return this; + } + + /** + * A category that describes the price, such as recurring, discount, allowance, + * penalty, and so forth. + * + * @return priceType + **/ + @Schema(description = "A category that describes the price, such as recurring, discount, allowance, penalty, and so forth.") + + public String getPriceType() { + return priceType; + } + + public void setPriceType(String priceType) { + this.priceType = priceType; + } + + public ProductOfferingPrice recurringChargePeriodLength(Integer recurringChargePeriodLength) { + this.recurringChargePeriodLength = recurringChargePeriodLength; + return this; + } + + /** + * the period of the recurring charge: 1, 2, ... .It sets to zero if it is not + * applicable + * + * @return recurringChargePeriodLength + **/ + @Schema(description = "the period of the recurring charge: 1, 2, ... .It sets to zero if it is not applicable") + + public Integer getRecurringChargePeriodLength() { + return recurringChargePeriodLength; + } + + public void setRecurringChargePeriodLength(Integer recurringChargePeriodLength) { + this.recurringChargePeriodLength = recurringChargePeriodLength; + } + + public ProductOfferingPrice recurringChargePeriodType(String recurringChargePeriodType) { + this.recurringChargePeriodType = recurringChargePeriodType; + return this; + } + + /** + * The period to repeat the application of the price Could be month, week... + * + * @return recurringChargePeriodType + **/ + @Schema(description = "The period to repeat the application of the price Could be month, week...") + + public String getRecurringChargePeriodType() { + return recurringChargePeriodType; + } + + public void setRecurringChargePeriodType(String recurringChargePeriodType) { + this.recurringChargePeriodType = recurringChargePeriodType; + } + + public ProductOfferingPrice bundledPopRelationship( + Set bundledPopRelationship) { + this.bundledPopRelationship = bundledPopRelationship; + return this; + } + + public ProductOfferingPrice addBundledPopRelationshipItem( + BundledProductOfferingPriceRelationship bundledPopRelationshipItem) { + if (this.bundledPopRelationship == null) { + this.bundledPopRelationship = new HashSet<>(); + } + this.bundledPopRelationship.add(bundledPopRelationshipItem); + return this; + } + + /** + * this object represents a bundle relationship from a bundle product offering + * price (parent) to a simple product offering price (child). A simple product + * offering price may participate in more than one bundle relationship. + * + * @return bundledPopRelationship + **/ + @Schema(description = "this object represents a bundle relationship from a bundle product offering price (parent) to a simple product offering price (child). A simple product offering price may participate in more than one bundle relationship.") + + @Valid + + public Set getBundledPopRelationship() { + return bundledPopRelationship; + } + + public void setBundledPopRelationship(Set bundledPopRelationship) { + this.bundledPopRelationship = bundledPopRelationship; + } + + public ProductOfferingPrice constraint(Set constraint) { + this.constraint = constraint; + return this; + } + + public ProductOfferingPrice addConstraintItem(ConstraintRef constraintItem) { + if (this.constraint == null) { + this.constraint = new HashSet<>(); + } + this.constraint.add(constraintItem); + return this; + } + + /** + * The Constraint resource represents a policy/rule applied to + * ProductOfferingPrice. + * + * @return constraint + **/ + @Schema(description = "The Constraint resource represents a policy/rule applied to ProductOfferingPrice.") + + @Valid + + public Set getConstraint() { + return constraint; + } + + public void setConstraint(Set constraint) { + this.constraint = constraint; + } + + public ProductOfferingPrice place(Set place) { + this.place = place; + return this; + } + + public ProductOfferingPrice addPlaceItem(PlaceRef placeItem) { + if (this.place == null) { + this.place = new HashSet<>(); + } + this.place.add(placeItem); + return this; + } + + /** + * Place defines the places where the products are sold or delivered. + * + * @return place + **/ + @Schema(description = "Place defines the places where the products are sold or delivered.") + + @Valid + + public Set getPlace() { + return place; + } + + public void setPlace(Set place) { + this.place = place; + } + + public ProductOfferingPrice popRelationship(Set popRelationship) { + this.popRelationship = popRelationship; + return this; + } + + public ProductOfferingPrice addPopRelationshipItem(ProductOfferingPriceRelationship popRelationshipItem) { + if (this.popRelationship == null) { + this.popRelationship = new HashSet<>(); + } + this.popRelationship.add(popRelationshipItem); + return this; + } + + /** + * Product Offering Prices related to this Product Offering Price, for example a + * price alteration such as allowance or discount + * + * @return popRelationship + **/ + @Schema(description = "Product Offering Prices related to this Product Offering Price, for example a price alteration such as allowance or discount") + + @Valid + + public Set getPopRelationship() { + return popRelationship; + } + + public void setPopRelationship(Set popRelationship) { + this.popRelationship = popRelationship; + } + + public ProductOfferingPrice price(Money price) { + this.price = price; + return this; + } + + /** + * The amount of money that characterizes the price. + * + * @return price + **/ + @Schema(description = "The amount of money that characterizes the price.") + + @Valid + + public Money getPrice() { + return price; + } + + public void setPrice(Money price) { + this.price = price; + } + + public ProductOfferingPrice pricingLogicAlgorithm(Set pricingLogicAlgorithm) { + this.pricingLogicAlgorithm = pricingLogicAlgorithm; + return this; + } + + public ProductOfferingPrice addPricingLogicAlgorithmItem(PricingLogicAlgorithm pricingLogicAlgorithmItem) { + if (this.pricingLogicAlgorithm == null) { + this.pricingLogicAlgorithm = new HashSet<>(); + } + this.pricingLogicAlgorithm.add(pricingLogicAlgorithmItem); + return this; + } + + /** + * The PricingLogicAlgorithm entity represents an instantiation of an interface + * specification to external rating function (without a modeled behavior in + * SID). Some of the parameters of the interface definition may be already set + * (such as price per unit) and some may be gathered during the rating process + * from the event (such as call duration) or from ProductCharacteristicValues + * (such as assigned bandwidth). + * + * @return pricingLogicAlgorithm + **/ + @Schema(description = "The PricingLogicAlgorithm entity represents an instantiation of an interface specification to external rating function (without a modeled behavior in SID). Some of the parameters of the interface definition may be already set (such as price per unit) and some may be gathered during the rating process from the event (such as call duration) or from ProductCharacteristicValues (such as assigned bandwidth).") + + @Valid + + public Set getPricingLogicAlgorithm() { + return pricingLogicAlgorithm; + } + + public void setPricingLogicAlgorithm(Set pricingLogicAlgorithm) { + this.pricingLogicAlgorithm = pricingLogicAlgorithm; + } + + public ProductOfferingPrice prodSpecCharValueUse( + Set prodSpecCharValueUse) { + this.prodSpecCharValueUse = prodSpecCharValueUse; + return this; + } + + public ProductOfferingPrice addProdSpecCharValueUseItem( + ProductSpecificationCharacteristicValueUse prodSpecCharValueUseItem) { + if (this.prodSpecCharValueUse == null) { + this.prodSpecCharValueUse = new HashSet<>(); + } + this.prodSpecCharValueUse.add(prodSpecCharValueUseItem); + return this; + } + + /** + * A use of the ProductSpecificationCharacteristicValue by a + * ProductOfferingPrice to which additional properties (attributes) apply or + * override the properties of similar properties contained in + * ProductSpecificationCharacteristicValue. It should be noted that + * characteristics which their value(s) addressed by this object must exist in + * corresponding product specification. The available characteristic values for + * a ProductSpecificationCharacteristic in a Product specification can be + * modified at the ProductOffering and ProcuctOfferingPrice level. The list of + * values in ProductSpecificationCharacteristicValueUse is a strict subset of + * the list of values as defined in the corresponding product specification + * characteristics. + * + * @return prodSpecCharValueUse + **/ + @Schema(description = "A use of the ProductSpecificationCharacteristicValue by a ProductOfferingPrice to which additional properties (attributes) apply or override the properties of similar properties contained in ProductSpecificationCharacteristicValue. It should be noted that characteristics which their value(s) addressed by this object must exist in corresponding product specification. The available characteristic values for a ProductSpecificationCharacteristic in a Product specification can be modified at the ProductOffering and ProcuctOfferingPrice level. The list of values in ProductSpecificationCharacteristicValueUse is a strict subset of the list of values as defined in the corresponding product specification characteristics.") + + @Valid + + public Set getProdSpecCharValueUse() { + return prodSpecCharValueUse; + } + + public void setProdSpecCharValueUse(Set prodSpecCharValueUse) { + this.prodSpecCharValueUse = prodSpecCharValueUse; + } + + public ProductOfferingPrice productOfferingTerm(Set productOfferingTerm) { + this.productOfferingTerm = productOfferingTerm; + return this; + } + + public ProductOfferingPrice addProductOfferingTermItem(ProductOfferingTerm productOfferingTermItem) { + if (this.productOfferingTerm == null) { + this.productOfferingTerm = new HashSet<>(); + } + this.productOfferingTerm.add(productOfferingTermItem); + return this; + } + + /** + * A list of conditions under which a ProductOfferingPrice is made available to + * Customers. For instance, a Product Offering Price can be offered with + * multiple commitment periods. + * + * @return productOfferingTerm + **/ + @Schema(description = "A list of conditions under which a ProductOfferingPrice is made available to Customers. For instance, a Product Offering Price can be offered with multiple commitment periods.") + + @Valid + + public Set getProductOfferingTerm() { + return productOfferingTerm; + } + + public void setProductOfferingTerm(Set productOfferingTerm) { + this.productOfferingTerm = productOfferingTerm; + } + + public ProductOfferingPrice tax(Set tax) { + this.tax = tax; + return this; + } + + public ProductOfferingPrice addTaxItem(TaxItem taxItem) { + if (this.tax == null) { + this.tax = new HashSet<>(); + } + this.tax.add(taxItem); + return this; + } + + /** + * An amount of money levied on the price of a Product by a legislative body. + * + * @return tax + **/ + @Schema(description = "An amount of money levied on the price of a Product by a legislative body.") + + @Valid + + public Set getTax() { + return tax; + } + + public void setTax(Set tax) { + this.tax = tax; + } + + public ProductOfferingPrice unitOfMeasure(Quantity unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + return this; + } + + /** + * A number and unit representing how many (for instance 1 dozen) of an + * ProductOffering is available at the offered price. Its meaning depends on the + * priceType. It could be a price, a rate, or a discount. + * + * @return unitOfMeasure + **/ + @Schema(description = "A number and unit representing how many (for instance 1 dozen) of an ProductOffering is available at the offered price. Its meaning depends on the priceType. It could be a price, a rate, or a discount.") + + @Valid + + public Quantity getUnitOfMeasure() { + return unitOfMeasure; + } + + public void setUnitOfMeasure(Quantity unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingPrice productOfferingPrice = (ProductOfferingPrice) o; + return Objects.equals(this.id, productOfferingPrice.id) && Objects.equals(this.href, productOfferingPrice.href) + && Objects.equals(this.description, productOfferingPrice.description) + && Objects.equals(this.isBundle, productOfferingPrice.isBundle) + && Objects.equals(this.lastUpdate, productOfferingPrice.lastUpdate) + && Objects.equals(this.lifecycleStatus, productOfferingPrice.lifecycleStatus) + && Objects.equals(this.name, productOfferingPrice.name) + && Objects.equals(this.percentage, productOfferingPrice.percentage) + && Objects.equals(this.priceType, productOfferingPrice.priceType) + && Objects.equals(this.recurringChargePeriodLength, productOfferingPrice.recurringChargePeriodLength) + && Objects.equals(this.recurringChargePeriodType, productOfferingPrice.recurringChargePeriodType) + && Objects.equals(this.version, productOfferingPrice.version) + && Objects.equals(this.bundledPopRelationship, productOfferingPrice.bundledPopRelationship) + && Objects.equals(this.constraint, productOfferingPrice.constraint) + && Objects.equals(this.place, productOfferingPrice.place) + && Objects.equals(this.popRelationship, productOfferingPrice.popRelationship) + && Objects.equals(this.price, productOfferingPrice.price) + && Objects.equals(this.pricingLogicAlgorithm, productOfferingPrice.pricingLogicAlgorithm) + && Objects.equals(this.prodSpecCharValueUse, productOfferingPrice.prodSpecCharValueUse) + && Objects.equals(this.productOfferingTerm, productOfferingPrice.productOfferingTerm) + && Objects.equals(this.tax, productOfferingPrice.tax) + && Objects.equals(this.unitOfMeasure, productOfferingPrice.unitOfMeasure) + && Objects.equals(this.validFor, productOfferingPrice.validFor) + && Objects.equals(this.baseType, productOfferingPrice.baseType) + && Objects.equals(this.schemaLocation, productOfferingPrice.schemaLocation) + && Objects.equals(this.type, productOfferingPrice.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, description, isBundle, lastUpdate, lifecycleStatus, name, percentage, priceType, +// recurringChargePeriodLength, recurringChargePeriodType, version, bundledPopRelationship, constraint, +// place, popRelationship, price, pricingLogicAlgorithm, prodSpecCharValueUse, productOfferingTerm, tax, +// unitOfMeasure, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingPrice {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" percentage: ").append(toIndentedString(percentage)).append("\n"); + sb.append(" priceType: ").append(toIndentedString(priceType)).append("\n"); + sb.append(" recurringChargePeriodLength: ").append(toIndentedString(recurringChargePeriodLength)) + .append("\n"); + sb.append(" recurringChargePeriodType: ").append(toIndentedString(recurringChargePeriodType)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" bundledPopRelationship: ").append(toIndentedString(bundledPopRelationship)).append("\n"); + sb.append(" constraint: ").append(toIndentedString(constraint)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" popRelationship: ").append(toIndentedString(popRelationship)).append("\n"); + sb.append(" price: ").append(toIndentedString(price)).append("\n"); + sb.append(" pricingLogicAlgorithm: ").append(toIndentedString(pricingLogicAlgorithm)).append("\n"); + sb.append(" prodSpecCharValueUse: ").append(toIndentedString(prodSpecCharValueUse)).append("\n"); + sb.append(" productOfferingTerm: ").append(toIndentedString(productOfferingTerm)).append("\n"); + sb.append(" tax: ").append(toIndentedString(tax)).append("\n"); + sb.append(" unitOfMeasure: ").append(toIndentedString(unitOfMeasure)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceAttributeValueChangeEvent.java new file mode 100644 index 0000000..df133d1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceAttributeValueChangeEvent.java @@ -0,0 +1,355 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingPriceAttributeValueChangeEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("event") + private ProductOfferingPriceAttributeValueChangeEventPayload event = null; + + public ProductOfferingPriceAttributeValueChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ProductOfferingPriceAttributeValueChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ProductOfferingPriceAttributeValueChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ProductOfferingPriceAttributeValueChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ProductOfferingPriceAttributeValueChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ProductOfferingPriceAttributeValueChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ProductOfferingPriceAttributeValueChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductOfferingPriceAttributeValueChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ProductOfferingPriceAttributeValueChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ProductOfferingPriceAttributeValueChangeEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ProductOfferingPriceAttributeValueChangeEvent event(ProductOfferingPriceAttributeValueChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public ProductOfferingPriceAttributeValueChangeEventPayload getEvent() { + return event; + } + + public void setEvent(ProductOfferingPriceAttributeValueChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingPriceAttributeValueChangeEvent productOfferingPriceAttributeValueChangeEvent = (ProductOfferingPriceAttributeValueChangeEvent) o; + return Objects.equals(this.eventId, productOfferingPriceAttributeValueChangeEvent.eventId) && + Objects.equals(this.eventTime, productOfferingPriceAttributeValueChangeEvent.eventTime) && + Objects.equals(this.eventType, productOfferingPriceAttributeValueChangeEvent.eventType) && + Objects.equals(this.correlationId, productOfferingPriceAttributeValueChangeEvent.correlationId) && + Objects.equals(this.domain, productOfferingPriceAttributeValueChangeEvent.domain) && + Objects.equals(this.title, productOfferingPriceAttributeValueChangeEvent.title) && + Objects.equals(this.description, productOfferingPriceAttributeValueChangeEvent.description) && + Objects.equals(this.priority, productOfferingPriceAttributeValueChangeEvent.priority) && + Objects.equals(this.timeOcurred, productOfferingPriceAttributeValueChangeEvent.timeOcurred) && + Objects.equals(this.fieldPath, productOfferingPriceAttributeValueChangeEvent.fieldPath) && + Objects.equals(this.event, productOfferingPriceAttributeValueChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, fieldPath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingPriceAttributeValueChangeEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceAttributeValueChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceAttributeValueChangeEventPayload.java new file mode 100644 index 0000000..690a1e5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceAttributeValueChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingPriceAttributeValueChangeEventPayload { + @JsonProperty("productOfferingPrice") + private ProductOfferingPrice productOfferingPrice = null; + + public ProductOfferingPriceAttributeValueChangeEventPayload productOfferingPrice(ProductOfferingPrice productOfferingPrice) { + this.productOfferingPrice = productOfferingPrice; + return this; + } + + /** + * The involved resource data for the event + * @return productOfferingPrice + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ProductOfferingPrice getProductOfferingPrice() { + return productOfferingPrice; + } + + public void setProductOfferingPrice(ProductOfferingPrice productOfferingPrice) { + this.productOfferingPrice = productOfferingPrice; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingPriceAttributeValueChangeEventPayload productOfferingPriceAttributeValueChangeEventPayload = (ProductOfferingPriceAttributeValueChangeEventPayload) o; + return Objects.equals(this.productOfferingPrice, productOfferingPriceAttributeValueChangeEventPayload.productOfferingPrice); + } + + @Override + public int hashCode() { + return Objects.hash(productOfferingPrice); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingPriceAttributeValueChangeEventPayload {\n"); + + sb.append(" productOfferingPrice: ").append(toIndentedString(productOfferingPrice)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceCreate.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceCreate.java new file mode 100644 index 0000000..59d2a37 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceCreate.java @@ -0,0 +1,153 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Is based on both the basic cost to develop and produce products and the enterprises policy on revenue targets. This price may be further revised through discounting (productOfferPriceAlteration). The price, applied for a productOffering may also be influenced by the productOfferingTerm, the customer selected, eg: a productOffering can be offered with multiple terms, like commitment periods for the contract. The price may be influenced by this productOfferingTerm. A productOffering may be cheaper with a 24 month commitment than with a 12 month commitment. Skipped properties: id,href + */ +@Schema(description = "Is based on both the basic cost to develop and produce products and the enterprises policy on revenue targets. This price may be further revised through discounting (productOfferPriceAlteration). The price, applied for a productOffering may also be influenced by the productOfferingTerm, the customer selected, eg: a productOffering can be offered with multiple terms, like commitment periods for the contract. The price may be influenced by this productOfferingTerm. A productOffering may be cheaper with a 24 month commitment than with a 12 month commitment. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingPriceCreate extends ProductOfferingPriceUpdate { + + @JsonProperty("lastUpdate") + private OffsetDateTime lastUpdate = null; + + + + + public ProductOfferingPriceCreate lastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + /** + * the last update time of this ProductOfferingPrice + * @return lastUpdate + **/ + @Schema(description = "the last update time of this ProductOfferingPrice") + + @Valid + + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingPriceCreate productOfferingPriceCreate = (ProductOfferingPriceCreate) o; + return Objects.equals(this.description, productOfferingPriceCreate.description) && + Objects.equals(this.isBundle, productOfferingPriceCreate.isBundle) && + Objects.equals(this.lastUpdate, productOfferingPriceCreate.lastUpdate) && + Objects.equals(this.lifecycleStatus, productOfferingPriceCreate.lifecycleStatus) && + Objects.equals(this.name, productOfferingPriceCreate.name) && + Objects.equals(this.percentage, productOfferingPriceCreate.percentage) && + Objects.equals(this.priceType, productOfferingPriceCreate.priceType) && + Objects.equals(this.recurringChargePeriodLength, productOfferingPriceCreate.recurringChargePeriodLength) && + Objects.equals(this.recurringChargePeriodType, productOfferingPriceCreate.recurringChargePeriodType) && + Objects.equals(this.version, productOfferingPriceCreate.version) && + Objects.equals(this.bundledPopRelationship, productOfferingPriceCreate.bundledPopRelationship) && + Objects.equals(this.constraint, productOfferingPriceCreate.constraint) && + Objects.equals(this.place, productOfferingPriceCreate.place) && + Objects.equals(this.popRelationship, productOfferingPriceCreate.popRelationship) && + Objects.equals(this.price, productOfferingPriceCreate.price) && + Objects.equals(this.pricingLogicAlgorithm, productOfferingPriceCreate.pricingLogicAlgorithm) && + Objects.equals(this.prodSpecCharValueUse, productOfferingPriceCreate.prodSpecCharValueUse) && + Objects.equals(this.productOfferingTerm, productOfferingPriceCreate.productOfferingTerm) && + Objects.equals(this.tax, productOfferingPriceCreate.tax) && + Objects.equals(this.unitOfMeasure, productOfferingPriceCreate.unitOfMeasure) && + Objects.equals(this.validFor, productOfferingPriceCreate.validFor) && + Objects.equals(this.baseType, productOfferingPriceCreate.baseType) && + Objects.equals(this.schemaLocation, productOfferingPriceCreate.schemaLocation) && + Objects.equals(this.type, productOfferingPriceCreate.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(description, isBundle, lastUpdate, lifecycleStatus, name, percentage, priceType, recurringChargePeriodLength, recurringChargePeriodType, version, bundledPopRelationship, constraint, place, popRelationship, price, pricingLogicAlgorithm, prodSpecCharValueUse, productOfferingTerm, tax, unitOfMeasure, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingPriceCreate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" percentage: ").append(toIndentedString(percentage)).append("\n"); + sb.append(" priceType: ").append(toIndentedString(priceType)).append("\n"); + sb.append(" recurringChargePeriodLength: ").append(toIndentedString(recurringChargePeriodLength)).append("\n"); + sb.append(" recurringChargePeriodType: ").append(toIndentedString(recurringChargePeriodType)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" bundledPopRelationship: ").append(toIndentedString(bundledPopRelationship)).append("\n"); + sb.append(" constraint: ").append(toIndentedString(constraint)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" popRelationship: ").append(toIndentedString(popRelationship)).append("\n"); + sb.append(" price: ").append(toIndentedString(price)).append("\n"); + sb.append(" pricingLogicAlgorithm: ").append(toIndentedString(pricingLogicAlgorithm)).append("\n"); + sb.append(" prodSpecCharValueUse: ").append(toIndentedString(prodSpecCharValueUse)).append("\n"); + sb.append(" productOfferingTerm: ").append(toIndentedString(productOfferingTerm)).append("\n"); + sb.append(" tax: ").append(toIndentedString(tax)).append("\n"); + sb.append(" unitOfMeasure: ").append(toIndentedString(unitOfMeasure)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceCreateEvent.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceCreateEvent.java new file mode 100644 index 0000000..00f3edb --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceCreateEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingPriceCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ProductOfferingPriceCreateEventPayload event = null; + + public ProductOfferingPriceCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductOfferingPriceCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductOfferingPriceCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ProductOfferingPriceCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ProductOfferingPriceCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ProductOfferingPriceCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ProductOfferingPriceCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ProductOfferingPriceCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ProductOfferingPriceCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductOfferingPriceCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ProductOfferingPriceCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ProductOfferingPriceCreateEvent event(ProductOfferingPriceCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public ProductOfferingPriceCreateEventPayload getEvent() { + return event; + } + + public void setEvent(ProductOfferingPriceCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingPriceCreateEvent productOfferingPriceCreateEvent = (ProductOfferingPriceCreateEvent) o; + return Objects.equals(this.id, productOfferingPriceCreateEvent.id) && + Objects.equals(this.href, productOfferingPriceCreateEvent.href) && + Objects.equals(this.eventId, productOfferingPriceCreateEvent.eventId) && + Objects.equals(this.eventTime, productOfferingPriceCreateEvent.eventTime) && + Objects.equals(this.eventType, productOfferingPriceCreateEvent.eventType) && + Objects.equals(this.correlationId, productOfferingPriceCreateEvent.correlationId) && + Objects.equals(this.domain, productOfferingPriceCreateEvent.domain) && + Objects.equals(this.title, productOfferingPriceCreateEvent.title) && + Objects.equals(this.description, productOfferingPriceCreateEvent.description) && + Objects.equals(this.priority, productOfferingPriceCreateEvent.priority) && + Objects.equals(this.timeOcurred, productOfferingPriceCreateEvent.timeOcurred) && + Objects.equals(this.event, productOfferingPriceCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingPriceCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceCreateEventPayload.java new file mode 100644 index 0000000..11c5bb1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceCreateEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingPriceCreateEventPayload { + @JsonProperty("productOfferingPrice") + private ProductOfferingPrice productOfferingPrice = null; + + public ProductOfferingPriceCreateEventPayload productOfferingPrice(ProductOfferingPrice productOfferingPrice) { + this.productOfferingPrice = productOfferingPrice; + return this; + } + + /** + * The involved resource data for the event + * @return productOfferingPrice + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ProductOfferingPrice getProductOfferingPrice() { + return productOfferingPrice; + } + + public void setProductOfferingPrice(ProductOfferingPrice productOfferingPrice) { + this.productOfferingPrice = productOfferingPrice; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingPriceCreateEventPayload productOfferingPriceCreateEventPayload = (ProductOfferingPriceCreateEventPayload) o; + return Objects.equals(this.productOfferingPrice, productOfferingPriceCreateEventPayload.productOfferingPrice); + } + + @Override + public int hashCode() { + return Objects.hash(productOfferingPrice); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingPriceCreateEventPayload {\n"); + + sb.append(" productOfferingPrice: ").append(toIndentedString(productOfferingPrice)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceDeleteEvent.java new file mode 100644 index 0000000..d68d797 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceDeleteEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingPriceDeleteEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ProductOfferingPriceDeleteEventPayload event = null; + + public ProductOfferingPriceDeleteEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductOfferingPriceDeleteEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductOfferingPriceDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ProductOfferingPriceDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ProductOfferingPriceDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ProductOfferingPriceDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ProductOfferingPriceDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ProductOfferingPriceDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ProductOfferingPriceDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductOfferingPriceDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ProductOfferingPriceDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ProductOfferingPriceDeleteEvent event(ProductOfferingPriceDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public ProductOfferingPriceDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(ProductOfferingPriceDeleteEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingPriceDeleteEvent productOfferingPriceDeleteEvent = (ProductOfferingPriceDeleteEvent) o; + return Objects.equals(this.id, productOfferingPriceDeleteEvent.id) && + Objects.equals(this.href, productOfferingPriceDeleteEvent.href) && + Objects.equals(this.eventId, productOfferingPriceDeleteEvent.eventId) && + Objects.equals(this.eventTime, productOfferingPriceDeleteEvent.eventTime) && + Objects.equals(this.eventType, productOfferingPriceDeleteEvent.eventType) && + Objects.equals(this.correlationId, productOfferingPriceDeleteEvent.correlationId) && + Objects.equals(this.domain, productOfferingPriceDeleteEvent.domain) && + Objects.equals(this.title, productOfferingPriceDeleteEvent.title) && + Objects.equals(this.description, productOfferingPriceDeleteEvent.description) && + Objects.equals(this.priority, productOfferingPriceDeleteEvent.priority) && + Objects.equals(this.timeOcurred, productOfferingPriceDeleteEvent.timeOcurred) && + Objects.equals(this.event, productOfferingPriceDeleteEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingPriceDeleteEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceDeleteEventPayload.java new file mode 100644 index 0000000..f4e525e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceDeleteEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingPriceDeleteEventPayload { + @JsonProperty("productOfferingPrice") + private ProductOfferingPrice productOfferingPrice = null; + + public ProductOfferingPriceDeleteEventPayload productOfferingPrice(ProductOfferingPrice productOfferingPrice) { + this.productOfferingPrice = productOfferingPrice; + return this; + } + + /** + * The involved resource data for the event + * @return productOfferingPrice + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ProductOfferingPrice getProductOfferingPrice() { + return productOfferingPrice; + } + + public void setProductOfferingPrice(ProductOfferingPrice productOfferingPrice) { + this.productOfferingPrice = productOfferingPrice; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingPriceDeleteEventPayload productOfferingPriceDeleteEventPayload = (ProductOfferingPriceDeleteEventPayload) o; + return Objects.equals(this.productOfferingPrice, productOfferingPriceDeleteEventPayload.productOfferingPrice); + } + + @Override + public int hashCode() { + return Objects.hash(productOfferingPrice); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingPriceDeleteEventPayload {\n"); + + sb.append(" productOfferingPrice: ").append(toIndentedString(productOfferingPrice)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceRef.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceRef.java new file mode 100644 index 0000000..4b04761 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceRef.java @@ -0,0 +1,138 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * ProductPriceOffering reference. An amount, usually of money, that is asked for or allowed when a ProductOffering is bought, rented, or leased + */ +@Schema(description = "ProductPriceOffering reference. An amount, usually of money, that is asked for or allowed when a ProductOffering is bought, rented, or leased") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") +@Entity(name = "ProductOfferingPriceRef") +public class ProductOfferingPriceRef extends BaseEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public ProductOfferingPriceRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + public String getId() { + return id; + } + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + public ProductOfferingPriceRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingPriceRef productOfferingPriceRef = (ProductOfferingPriceRef) o; + return Objects.equals(this.id, productOfferingPriceRef.id) && + Objects.equals(this.href, productOfferingPriceRef.href) && + Objects.equals(this.name, productOfferingPriceRef.name) && + Objects.equals(this.baseType, productOfferingPriceRef.baseType) && + Objects.equals(this.schemaLocation, productOfferingPriceRef.schemaLocation) && + Objects.equals(this.type, productOfferingPriceRef.type) && + Objects.equals(this.referredType, productOfferingPriceRef.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingPriceRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceRelationship.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceRelationship.java new file mode 100644 index 0000000..87035dc --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceRelationship.java @@ -0,0 +1,139 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * Describes a non-composite relationship between product offering prices. For example one price might be an discount alteration for another price. + */ +@Schema(description = "Describes a non-composite relationship between product offering prices. For example one price might be an discount alteration for another price.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity +public class ProductOfferingPriceRelationship extends BaseEntity { + @JsonProperty("id") + private String id = null; + + + @JsonProperty("relationshipType") + private String relationshipType = null; + + + public ProductOfferingPriceRelationship id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the associated product offering price + * @return id + **/ + @Schema(description = "Unique identifier of the associated product offering price") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + + public ProductOfferingPriceRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * type of the relationship, for example override, discount, etc. + * @return relationshipType + **/ + @Schema(description = "type of the relationship, for example override, discount, etc.") + + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingPriceRelationship productOfferingPriceRelationship = (ProductOfferingPriceRelationship) o; + return Objects.equals(this.id, productOfferingPriceRelationship.id) && + Objects.equals(this.href, productOfferingPriceRelationship.href) && + Objects.equals(this.name, productOfferingPriceRelationship.name) && + Objects.equals(this.relationshipType, productOfferingPriceRelationship.relationshipType) && + Objects.equals(this.baseType, productOfferingPriceRelationship.baseType) && + Objects.equals(this.schemaLocation, productOfferingPriceRelationship.schemaLocation) && + Objects.equals(this.type, productOfferingPriceRelationship.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, relationshipType, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingPriceRelationship {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceStateChangeEvent.java new file mode 100644 index 0000000..3ffa079 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceStateChangeEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingPriceStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ProductOfferingPriceStateChangeEventPayload event = null; + + public ProductOfferingPriceStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductOfferingPriceStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductOfferingPriceStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ProductOfferingPriceStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ProductOfferingPriceStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ProductOfferingPriceStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ProductOfferingPriceStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ProductOfferingPriceStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ProductOfferingPriceStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductOfferingPriceStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ProductOfferingPriceStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ProductOfferingPriceStateChangeEvent event(ProductOfferingPriceStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public ProductOfferingPriceStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(ProductOfferingPriceStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingPriceStateChangeEvent productOfferingPriceStateChangeEvent = (ProductOfferingPriceStateChangeEvent) o; + return Objects.equals(this.id, productOfferingPriceStateChangeEvent.id) && + Objects.equals(this.href, productOfferingPriceStateChangeEvent.href) && + Objects.equals(this.eventId, productOfferingPriceStateChangeEvent.eventId) && + Objects.equals(this.eventTime, productOfferingPriceStateChangeEvent.eventTime) && + Objects.equals(this.eventType, productOfferingPriceStateChangeEvent.eventType) && + Objects.equals(this.correlationId, productOfferingPriceStateChangeEvent.correlationId) && + Objects.equals(this.domain, productOfferingPriceStateChangeEvent.domain) && + Objects.equals(this.title, productOfferingPriceStateChangeEvent.title) && + Objects.equals(this.description, productOfferingPriceStateChangeEvent.description) && + Objects.equals(this.priority, productOfferingPriceStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, productOfferingPriceStateChangeEvent.timeOcurred) && + Objects.equals(this.event, productOfferingPriceStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingPriceStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceStateChangeEventPayload.java new file mode 100644 index 0000000..e35614b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceStateChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingPriceStateChangeEventPayload { + @JsonProperty("productOfferingPrice") + private ProductOfferingPrice productOfferingPrice = null; + + public ProductOfferingPriceStateChangeEventPayload productOfferingPrice(ProductOfferingPrice productOfferingPrice) { + this.productOfferingPrice = productOfferingPrice; + return this; + } + + /** + * The involved resource data for the event + * @return productOfferingPrice + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ProductOfferingPrice getProductOfferingPrice() { + return productOfferingPrice; + } + + public void setProductOfferingPrice(ProductOfferingPrice productOfferingPrice) { + this.productOfferingPrice = productOfferingPrice; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingPriceStateChangeEventPayload productOfferingPriceStateChangeEventPayload = (ProductOfferingPriceStateChangeEventPayload) o; + return Objects.equals(this.productOfferingPrice, productOfferingPriceStateChangeEventPayload.productOfferingPrice); + } + + @Override + public int hashCode() { + return Objects.hash(productOfferingPrice); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingPriceStateChangeEventPayload {\n"); + + sb.append(" productOfferingPrice: ").append(toIndentedString(productOfferingPrice)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceUpdate.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceUpdate.java new file mode 100644 index 0000000..49bf84b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingPriceUpdate.java @@ -0,0 +1,736 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Quantity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Is based on both the basic cost to develop and produce products and the enterprises policy on revenue targets. This price may be further revised through discounting (productOfferPriceAlteration). The price, applied for a productOffering may also be influenced by the productOfferingTerm, the customer selected, eg: a productOffering can be offered with multiple terms, like commitment periods for the contract. The price may be influenced by this productOfferingTerm. A productOffering may be cheaper with a 24 month commitment than with a 12 month commitment. Skipped properties: id,href,lastUpdate + */ +@Schema(description = "Is based on both the basic cost to develop and produce products and the enterprises policy on revenue targets. This price may be further revised through discounting (productOfferPriceAlteration). The price, applied for a productOffering may also be influenced by the productOfferingTerm, the customer selected, eg: a productOffering can be offered with multiple terms, like commitment periods for the contract. The price may be influenced by this productOfferingTerm. A productOffering may be cheaper with a 24 month commitment than with a 12 month commitment. Skipped properties: id,href,lastUpdate") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingPriceUpdate { + @JsonProperty("description") + protected String description = null; + + @JsonProperty("isBundle") + protected Boolean isBundle = null; + + @JsonProperty("lifecycleStatus") + protected String lifecycleStatus = null; + + @JsonProperty("name") + protected String name = null; + + @JsonProperty("percentage") + protected Float percentage = null; + + @JsonProperty("priceType") + protected String priceType = null; + + @JsonProperty("recurringChargePeriodLength") + protected Integer recurringChargePeriodLength = null; + + @JsonProperty("recurringChargePeriodType") + protected String recurringChargePeriodType = null; + + @JsonProperty("version") + protected String version = null; + + @JsonProperty("bundledPopRelationship") + @Valid + protected List bundledPopRelationship = null; + + @JsonProperty("constraint") + @Valid + protected List constraint = null; + + @JsonProperty("place") + @Valid + protected List place = null; + + @JsonProperty("popRelationship") + @Valid + protected List popRelationship = null; + + @JsonProperty("price") + protected Money price = null; + + @JsonProperty("pricingLogicAlgorithm") + @Valid + protected List pricingLogicAlgorithm = null; + + @JsonProperty("prodSpecCharValueUse") + @Valid + protected List prodSpecCharValueUse = null; + + @JsonProperty("productOfferingTerm") + @Valid + protected List productOfferingTerm = null; + + @JsonProperty("tax") + @Valid + protected List tax = null; + + @JsonProperty("unitOfMeasure") + protected Quantity unitOfMeasure = null; + + @JsonProperty("validFor") + protected TimePeriod validFor = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@type") + protected String type = null; + + public ProductOfferingPriceUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Description of the productOfferingPrice + * @return description + **/ + @Schema(description = "Description of the productOfferingPrice") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductOfferingPriceUpdate isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * A flag indicating if this ProductOfferingPrice is composite (bundle) or not + * @return isBundle + **/ + @Schema(description = "A flag indicating if this ProductOfferingPrice is composite (bundle) or not") + + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + public ProductOfferingPriceUpdate lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * the lifecycle status of this ProductOfferingPrice + * @return lifecycleStatus + **/ + @Schema(description = "the lifecycle status of this ProductOfferingPrice") + + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public ProductOfferingPriceUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the productOfferingPrice + * @return name + **/ + @Schema(description = "Name of the productOfferingPrice") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ProductOfferingPriceUpdate percentage(Float percentage) { + this.percentage = percentage; + return this; + } + + /** + * Percentage to apply for ProductOfferPriceAlteration (Discount) + * @return percentage + **/ + @Schema(description = "Percentage to apply for ProductOfferPriceAlteration (Discount)") + + + public Float getPercentage() { + return percentage; + } + + public void setPercentage(Float percentage) { + this.percentage = percentage; + } + + public ProductOfferingPriceUpdate priceType(String priceType) { + this.priceType = priceType; + return this; + } + + /** + * A category that describes the price, such as recurring, discount, allowance, penalty, and so forth. + * @return priceType + **/ + @Schema(description = "A category that describes the price, such as recurring, discount, allowance, penalty, and so forth.") + + + public String getPriceType() { + return priceType; + } + + public void setPriceType(String priceType) { + this.priceType = priceType; + } + + public ProductOfferingPriceUpdate recurringChargePeriodLength(Integer recurringChargePeriodLength) { + this.recurringChargePeriodLength = recurringChargePeriodLength; + return this; + } + + /** + * the period of the recurring charge: 1, 2, ... .It sets to zero if it is not applicable + * @return recurringChargePeriodLength + **/ + @Schema(description = "the period of the recurring charge: 1, 2, ... .It sets to zero if it is not applicable") + + + public Integer getRecurringChargePeriodLength() { + return recurringChargePeriodLength; + } + + public void setRecurringChargePeriodLength(Integer recurringChargePeriodLength) { + this.recurringChargePeriodLength = recurringChargePeriodLength; + } + + public ProductOfferingPriceUpdate recurringChargePeriodType(String recurringChargePeriodType) { + this.recurringChargePeriodType = recurringChargePeriodType; + return this; + } + + /** + * The period to repeat the application of the price Could be month, week... + * @return recurringChargePeriodType + **/ + @Schema(description = "The period to repeat the application of the price Could be month, week...") + + + public String getRecurringChargePeriodType() { + return recurringChargePeriodType; + } + + public void setRecurringChargePeriodType(String recurringChargePeriodType) { + this.recurringChargePeriodType = recurringChargePeriodType; + } + + public ProductOfferingPriceUpdate version(String version) { + this.version = version; + return this; + } + + /** + * ProductOffering version + * @return version + **/ + @Schema(description = "ProductOffering version") + + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public ProductOfferingPriceUpdate bundledPopRelationship(List bundledPopRelationship) { + this.bundledPopRelationship = bundledPopRelationship; + return this; + } + + public ProductOfferingPriceUpdate addBundledPopRelationshipItem(BundledProductOfferingPriceRelationship bundledPopRelationshipItem) { + if (this.bundledPopRelationship == null) { + this.bundledPopRelationship = new ArrayList<>(); + } + this.bundledPopRelationship.add(bundledPopRelationshipItem); + return this; + } + + /** + * this object represents a bundle relationship from a bundle product offering price (parent) to a simple product offering price (child). A simple product offering price may participate in more than one bundle relationship. + * @return bundledPopRelationship + **/ + @Schema(description = "this object represents a bundle relationship from a bundle product offering price (parent) to a simple product offering price (child). A simple product offering price may participate in more than one bundle relationship.") + + @Valid + + public List getBundledPopRelationship() { + return bundledPopRelationship; + } + + public void setBundledPopRelationship(List bundledPopRelationship) { + this.bundledPopRelationship = bundledPopRelationship; + } + + public ProductOfferingPriceUpdate constraint(List constraint) { + this.constraint = constraint; + return this; + } + + public ProductOfferingPriceUpdate addConstraintItem(ConstraintRef constraintItem) { + if (this.constraint == null) { + this.constraint = new ArrayList<>(); + } + this.constraint.add(constraintItem); + return this; + } + + /** + * The Constraint resource represents a policy/rule applied to ProductOfferingPrice. + * @return constraint + **/ + @Schema(description = "The Constraint resource represents a policy/rule applied to ProductOfferingPrice.") + + @Valid + + public List getConstraint() { + return constraint; + } + + public void setConstraint(List constraint) { + this.constraint = constraint; + } + + public ProductOfferingPriceUpdate place(List place) { + this.place = place; + return this; + } + + public ProductOfferingPriceUpdate addPlaceItem(PlaceRef placeItem) { + if (this.place == null) { + this.place = new ArrayList<>(); + } + this.place.add(placeItem); + return this; + } + + /** + * Place defines the places where the products are sold or delivered. + * @return place + **/ + @Schema(description = "Place defines the places where the products are sold or delivered.") + + @Valid + + public List getPlace() { + return place; + } + + public void setPlace(List place) { + this.place = place; + } + + public ProductOfferingPriceUpdate popRelationship(List popRelationship) { + this.popRelationship = popRelationship; + return this; + } + + public ProductOfferingPriceUpdate addPopRelationshipItem(ProductOfferingPriceRelationship popRelationshipItem) { + if (this.popRelationship == null) { + this.popRelationship = new ArrayList<>(); + } + this.popRelationship.add(popRelationshipItem); + return this; + } + + /** + * Product Offering Prices related to this Product Offering Price, for example a price alteration such as allowance or discount + * @return popRelationship + **/ + @Schema(description = "Product Offering Prices related to this Product Offering Price, for example a price alteration such as allowance or discount") + + @Valid + + public List getPopRelationship() { + return popRelationship; + } + + public void setPopRelationship(List popRelationship) { + this.popRelationship = popRelationship; + } + + public ProductOfferingPriceUpdate price(Money price) { + this.price = price; + return this; + } + + /** + * The amount of money that characterizes the price. + * @return price + **/ + @Schema(description = "The amount of money that characterizes the price.") + + @Valid + + public Money getPrice() { + return price; + } + + public void setPrice(Money price) { + this.price = price; + } + + public ProductOfferingPriceUpdate pricingLogicAlgorithm(List pricingLogicAlgorithm) { + this.pricingLogicAlgorithm = pricingLogicAlgorithm; + return this; + } + + public ProductOfferingPriceUpdate addPricingLogicAlgorithmItem(PricingLogicAlgorithm pricingLogicAlgorithmItem) { + if (this.pricingLogicAlgorithm == null) { + this.pricingLogicAlgorithm = new ArrayList<>(); + } + this.pricingLogicAlgorithm.add(pricingLogicAlgorithmItem); + return this; + } + + /** + * The PricingLogicAlgorithm entity represents an instantiation of an interface specification to external rating function (without a modeled behavior in SID). Some of the parameters of the interface definition may be already set (such as price per unit) and some may be gathered during the rating process from the event (such as call duration) or from ProductCharacteristicValues (such as assigned bandwidth). + * @return pricingLogicAlgorithm + **/ + @Schema(description = "The PricingLogicAlgorithm entity represents an instantiation of an interface specification to external rating function (without a modeled behavior in SID). Some of the parameters of the interface definition may be already set (such as price per unit) and some may be gathered during the rating process from the event (such as call duration) or from ProductCharacteristicValues (such as assigned bandwidth).") + + @Valid + + public List getPricingLogicAlgorithm() { + return pricingLogicAlgorithm; + } + + public void setPricingLogicAlgorithm(List pricingLogicAlgorithm) { + this.pricingLogicAlgorithm = pricingLogicAlgorithm; + } + + public ProductOfferingPriceUpdate prodSpecCharValueUse(List prodSpecCharValueUse) { + this.prodSpecCharValueUse = prodSpecCharValueUse; + return this; + } + + public ProductOfferingPriceUpdate addProdSpecCharValueUseItem(ProductSpecificationCharacteristicValueUse prodSpecCharValueUseItem) { + if (this.prodSpecCharValueUse == null) { + this.prodSpecCharValueUse = new ArrayList<>(); + } + this.prodSpecCharValueUse.add(prodSpecCharValueUseItem); + return this; + } + + /** + * A use of the ProductSpecificationCharacteristicValue by a ProductOfferingPrice to which additional properties (attributes) apply or override the properties of similar properties contained in ProductSpecificationCharacteristicValue. It should be noted that characteristics which their value(s) addressed by this object must exist in corresponding product specification. The available characteristic values for a ProductSpecificationCharacteristic in a Product specification can be modified at the ProductOffering and ProcuctOfferingPrice level. The list of values in ProductSpecificationCharacteristicValueUse is a strict subset of the list of values as defined in the corresponding product specification characteristics. + * @return prodSpecCharValueUse + **/ + @Schema(description = "A use of the ProductSpecificationCharacteristicValue by a ProductOfferingPrice to which additional properties (attributes) apply or override the properties of similar properties contained in ProductSpecificationCharacteristicValue. It should be noted that characteristics which their value(s) addressed by this object must exist in corresponding product specification. The available characteristic values for a ProductSpecificationCharacteristic in a Product specification can be modified at the ProductOffering and ProcuctOfferingPrice level. The list of values in ProductSpecificationCharacteristicValueUse is a strict subset of the list of values as defined in the corresponding product specification characteristics.") + + @Valid + + public List getProdSpecCharValueUse() { + return prodSpecCharValueUse; + } + + public void setProdSpecCharValueUse(List prodSpecCharValueUse) { + this.prodSpecCharValueUse = prodSpecCharValueUse; + } + + public ProductOfferingPriceUpdate productOfferingTerm(List productOfferingTerm) { + this.productOfferingTerm = productOfferingTerm; + return this; + } + + public ProductOfferingPriceUpdate addProductOfferingTermItem(ProductOfferingTerm productOfferingTermItem) { + if (this.productOfferingTerm == null) { + this.productOfferingTerm = new ArrayList<>(); + } + this.productOfferingTerm.add(productOfferingTermItem); + return this; + } + + /** + * A list of conditions under which a ProductOfferingPrice is made available to Customers. For instance, a Product Offering Price can be offered with multiple commitment periods. + * @return productOfferingTerm + **/ + @Schema(description = "A list of conditions under which a ProductOfferingPrice is made available to Customers. For instance, a Product Offering Price can be offered with multiple commitment periods.") + + @Valid + + public List getProductOfferingTerm() { + return productOfferingTerm; + } + + public void setProductOfferingTerm(List productOfferingTerm) { + this.productOfferingTerm = productOfferingTerm; + } + + public ProductOfferingPriceUpdate tax(List tax) { + this.tax = tax; + return this; + } + + public ProductOfferingPriceUpdate addTaxItem(TaxItem taxItem) { + if (this.tax == null) { + this.tax = new ArrayList<>(); + } + this.tax.add(taxItem); + return this; + } + + /** + * An amount of money levied on the price of a Product by a legislative body. + * @return tax + **/ + @Schema(description = "An amount of money levied on the price of a Product by a legislative body.") + + @Valid + + public List getTax() { + return tax; + } + + public void setTax(List tax) { + this.tax = tax; + } + + public ProductOfferingPriceUpdate unitOfMeasure(Quantity unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + return this; + } + + /** + * A number and unit representing how many (for instance 1 dozen) of an ProductOffering is available at the offered price. Its meaning depends on the priceType. It could be a price, a rate, or a discount. + * @return unitOfMeasure + **/ + @Schema(description = "A number and unit representing how many (for instance 1 dozen) of an ProductOffering is available at the offered price. Its meaning depends on the priceType. It could be a price, a rate, or a discount.") + + @Valid + + public Quantity getUnitOfMeasure() { + return unitOfMeasure; + } + + public void setUnitOfMeasure(Quantity unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + } + + public ProductOfferingPriceUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the productOfferingPrice is valid + * @return validFor + **/ + @Schema(description = "The period for which the productOfferingPrice is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ProductOfferingPriceUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * the immediate base class type of this product offering + * @return baseType + **/ + @Schema(description = "the immediate base class type of this product offering") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ProductOfferingPriceUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * hyperlink reference to the schema describing this resource + * @return schemaLocation + **/ + @Schema(description = "hyperlink reference to the schema describing this resource") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductOfferingPriceUpdate type(String type) { + this.type = type; + return this; + } + + /** + * The class type of this Product offering + * @return type + **/ + @Schema(description = "The class type of this Product offering") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingPriceUpdate productOfferingPriceUpdate = (ProductOfferingPriceUpdate) o; + return Objects.equals(this.description, productOfferingPriceUpdate.description) && + Objects.equals(this.isBundle, productOfferingPriceUpdate.isBundle) && + Objects.equals(this.lifecycleStatus, productOfferingPriceUpdate.lifecycleStatus) && + Objects.equals(this.name, productOfferingPriceUpdate.name) && + Objects.equals(this.percentage, productOfferingPriceUpdate.percentage) && + Objects.equals(this.priceType, productOfferingPriceUpdate.priceType) && + Objects.equals(this.recurringChargePeriodLength, productOfferingPriceUpdate.recurringChargePeriodLength) && + Objects.equals(this.recurringChargePeriodType, productOfferingPriceUpdate.recurringChargePeriodType) && + Objects.equals(this.version, productOfferingPriceUpdate.version) && + Objects.equals(this.bundledPopRelationship, productOfferingPriceUpdate.bundledPopRelationship) && + Objects.equals(this.constraint, productOfferingPriceUpdate.constraint) && + Objects.equals(this.place, productOfferingPriceUpdate.place) && + Objects.equals(this.popRelationship, productOfferingPriceUpdate.popRelationship) && + Objects.equals(this.price, productOfferingPriceUpdate.price) && + Objects.equals(this.pricingLogicAlgorithm, productOfferingPriceUpdate.pricingLogicAlgorithm) && + Objects.equals(this.prodSpecCharValueUse, productOfferingPriceUpdate.prodSpecCharValueUse) && + Objects.equals(this.productOfferingTerm, productOfferingPriceUpdate.productOfferingTerm) && + Objects.equals(this.tax, productOfferingPriceUpdate.tax) && + Objects.equals(this.unitOfMeasure, productOfferingPriceUpdate.unitOfMeasure) && + Objects.equals(this.validFor, productOfferingPriceUpdate.validFor) && + Objects.equals(this.baseType, productOfferingPriceUpdate.baseType) && + Objects.equals(this.schemaLocation, productOfferingPriceUpdate.schemaLocation) && + Objects.equals(this.type, productOfferingPriceUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, isBundle, lifecycleStatus, name, percentage, priceType, recurringChargePeriodLength, recurringChargePeriodType, version, bundledPopRelationship, constraint, place, popRelationship, price, pricingLogicAlgorithm, prodSpecCharValueUse, productOfferingTerm, tax, unitOfMeasure, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingPriceUpdate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" percentage: ").append(toIndentedString(percentage)).append("\n"); + sb.append(" priceType: ").append(toIndentedString(priceType)).append("\n"); + sb.append(" recurringChargePeriodLength: ").append(toIndentedString(recurringChargePeriodLength)).append("\n"); + sb.append(" recurringChargePeriodType: ").append(toIndentedString(recurringChargePeriodType)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" bundledPopRelationship: ").append(toIndentedString(bundledPopRelationship)).append("\n"); + sb.append(" constraint: ").append(toIndentedString(constraint)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" popRelationship: ").append(toIndentedString(popRelationship)).append("\n"); + sb.append(" price: ").append(toIndentedString(price)).append("\n"); + sb.append(" pricingLogicAlgorithm: ").append(toIndentedString(pricingLogicAlgorithm)).append("\n"); + sb.append(" prodSpecCharValueUse: ").append(toIndentedString(prodSpecCharValueUse)).append("\n"); + sb.append(" productOfferingTerm: ").append(toIndentedString(productOfferingTerm)).append("\n"); + sb.append(" tax: ").append(toIndentedString(tax)).append("\n"); + sb.append(" unitOfMeasure: ").append(toIndentedString(unitOfMeasure)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingRef.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingRef.java new file mode 100644 index 0000000..dd47df1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingRef.java @@ -0,0 +1,141 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information. + */ +@Schema(description = "ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") +@JsonIgnoreProperties( {"uuid"} ) +public class ProductOfferingRef extends BaseRootNamedEntity { + + + @JsonProperty("id") + private String id = null; + + + @JsonProperty("@referredType") + private String referredType = null; + + public ProductOfferingRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + + public ProductOfferingRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingRef productOfferingRef = (ProductOfferingRef) o; + return Objects.equals(this.id, productOfferingRef.id) && + Objects.equals(this.href, productOfferingRef.href) && + Objects.equals(this.name, productOfferingRef.name) && + Objects.equals(this.baseType, productOfferingRef.baseType) && + Objects.equals(this.schemaLocation, productOfferingRef.schemaLocation) && + Objects.equals(this.type, productOfferingRef.type) && + Objects.equals(this.referredType, productOfferingRef.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingStateChangeEvent.java new file mode 100644 index 0000000..4375e6c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingStateChangeEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ProductOfferingStateChangeEventPayload event = null; + + public ProductOfferingStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductOfferingStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductOfferingStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ProductOfferingStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ProductOfferingStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ProductOfferingStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ProductOfferingStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ProductOfferingStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ProductOfferingStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductOfferingStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ProductOfferingStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ProductOfferingStateChangeEvent event(ProductOfferingStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public ProductOfferingStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(ProductOfferingStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingStateChangeEvent productOfferingStateChangeEvent = (ProductOfferingStateChangeEvent) o; + return Objects.equals(this.id, productOfferingStateChangeEvent.id) && + Objects.equals(this.href, productOfferingStateChangeEvent.href) && + Objects.equals(this.eventId, productOfferingStateChangeEvent.eventId) && + Objects.equals(this.eventTime, productOfferingStateChangeEvent.eventTime) && + Objects.equals(this.eventType, productOfferingStateChangeEvent.eventType) && + Objects.equals(this.correlationId, productOfferingStateChangeEvent.correlationId) && + Objects.equals(this.domain, productOfferingStateChangeEvent.domain) && + Objects.equals(this.title, productOfferingStateChangeEvent.title) && + Objects.equals(this.description, productOfferingStateChangeEvent.description) && + Objects.equals(this.priority, productOfferingStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, productOfferingStateChangeEvent.timeOcurred) && + Objects.equals(this.event, productOfferingStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingStateChangeEventPayload.java new file mode 100644 index 0000000..c18c467 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingStateChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingStateChangeEventPayload { + @JsonProperty("productOffering") + private ProductOffering productOffering = null; + + public ProductOfferingStateChangeEventPayload productOffering(ProductOffering productOffering) { + this.productOffering = productOffering; + return this; + } + + /** + * The involved resource data for the event + * @return productOffering + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ProductOffering getProductOffering() { + return productOffering; + } + + public void setProductOffering(ProductOffering productOffering) { + this.productOffering = productOffering; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingStateChangeEventPayload productOfferingStateChangeEventPayload = (ProductOfferingStateChangeEventPayload) o; + return Objects.equals(this.productOffering, productOfferingStateChangeEventPayload.productOffering); + } + + @Override + public int hashCode() { + return Objects.hash(productOffering); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingStateChangeEventPayload {\n"); + + sb.append(" productOffering: ").append(toIndentedString(productOffering)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingTerm.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingTerm.java new file mode 100644 index 0000000..d41dace --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingTerm.java @@ -0,0 +1,128 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.etsi.osl.tmf.common.model.Quantity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; + +/** + * A condition under which a ProductOffering is made available to Customers. For instance, a productOffering can be offered with multiple commitment periods. + */ +@Schema(description = "A condition under which a ProductOffering is made available to Customers. For instance, a productOffering can be offered with multiple commitment periods.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity(name = "ProductOfferingTerm") +public class ProductOfferingTerm extends BaseEntity { + + + @JsonProperty("duration") + private Quantity duration = null; + + + public ProductOfferingTerm description(String description) { + this.description = description; + return this; + } + + + + public ProductOfferingTerm duration(Quantity duration) { + this.duration = duration; + return this; + } + + /** + * Duration of the productOfferingTerm + * @return duration + **/ + @Schema(description = "Duration of the productOfferingTerm") + + @Valid + + public Quantity getDuration() { + return duration; + } + + public void setDuration(Quantity duration) { + this.duration = duration; + } + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingTerm productOfferingTerm = (ProductOfferingTerm) o; + return Objects.equals(this.description, productOfferingTerm.description) && + Objects.equals(this.name, productOfferingTerm.name) && + Objects.equals(this.duration, productOfferingTerm.duration) && + Objects.equals(this.validFor, productOfferingTerm.validFor) && + Objects.equals(this.baseType, productOfferingTerm.baseType) && + Objects.equals(this.schemaLocation, productOfferingTerm.schemaLocation) && + Objects.equals(this.type, productOfferingTerm.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(description, name, duration, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingTerm {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" duration: ").append(toIndentedString(duration)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingUpdate.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingUpdate.java new file mode 100644 index 0000000..88b943e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductOfferingUpdate.java @@ -0,0 +1,809 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.am651.model.AgreementRef; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Represents entities that are orderable from the provider of the catalog, this resource includes pricing information. Skipped properties: id,href,lastUpdate + */ +@Schema(description = "Represents entities that are orderable from the provider of the catalog, this resource includes pricing information. Skipped properties: id,href,lastUpdate") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductOfferingUpdate { + @JsonProperty("description") + protected String description = null; + + @JsonProperty("isBundle") + protected Boolean isBundle = null; + + @JsonProperty("isSellable") + protected Boolean isSellable = null; + + @JsonProperty("lifecycleStatus") + protected String lifecycleStatus = null; + + @JsonProperty("name") + protected String name = null; + + @JsonProperty("statusReason") + protected String statusReason = null; + + @JsonProperty("version") + protected String version = null; + + @JsonProperty("agreement") + @Valid + protected List agreement = null; + + @JsonProperty("attachment") + @Valid + protected List attachment = null; + + @JsonProperty("bundledProductOffering") + @Valid + protected List bundledProductOffering = null; + + @JsonProperty("category") + @Valid + protected List category = null; + + @JsonProperty("channel") + @Valid + protected List channel = null; + + @JsonProperty("marketSegment") + @Valid + protected List marketSegment = null; + + @JsonProperty("place") + @Valid + protected List place = null; + + @JsonProperty("prodSpecCharValueUse") + @Valid + protected List prodSpecCharValueUse = null; + + @JsonProperty("productOfferingPrice") + @Valid + protected List productOfferingPrice = null; + + @JsonProperty("productOfferingTerm") + @Valid + protected List productOfferingTerm = null; + + @JsonProperty("productSpecification") + protected ProductSpecificationRef productSpecification = null; + + @JsonProperty("resourceCandidate") + protected ResourceCandidateRef resourceCandidate = null; + + @JsonProperty("serviceCandidate") + protected ServiceCandidateRef serviceCandidate = null; + + @JsonProperty("serviceLevelAgreement") + protected SLARef serviceLevelAgreement = null; + + @JsonProperty("validFor") + protected TimePeriod validFor = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@type") + protected String type = null; + + public ProductOfferingUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Description of the productOffering + * @return description + **/ + @Schema(description = "Description of the productOffering") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductOfferingUpdate isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * isBundle determines whether a productOffering represents a single productOffering (false), or a bundle of productOfferings (true). + * @return isBundle + **/ + @Schema(description = "isBundle determines whether a productOffering represents a single productOffering (false), or a bundle of productOfferings (true).") + + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + public ProductOfferingUpdate isSellable(Boolean isSellable) { + this.isSellable = isSellable; + return this; + } + + /** + * A flag indicating if this product offer can be sold stand-alone for sale or not. If this flag is false it indicates that the offer can only be sold within a bundle. + * @return isSellable + **/ + @Schema(description = "A flag indicating if this product offer can be sold stand-alone for sale or not. If this flag is false it indicates that the offer can only be sold within a bundle.") + + + public Boolean isIsSellable() { + return isSellable; + } + + public void setIsSellable(Boolean isSellable) { + this.isSellable = isSellable; + } + + public ProductOfferingUpdate lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Used to indicate the current lifecycle status + * @return lifecycleStatus + **/ + @Schema(description = "Used to indicate the current lifecycle status") + + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public ProductOfferingUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the productOffering + * @return name + **/ + @Schema(description = "Name of the productOffering") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ProductOfferingUpdate statusReason(String statusReason) { + this.statusReason = statusReason; + return this; + } + + /** + * A string providing a complementary information on the value of the lifecycle status attribute. + * @return statusReason + **/ + @Schema(description = "A string providing a complementary information on the value of the lifecycle status attribute.") + + + public String getStatusReason() { + return statusReason; + } + + public void setStatusReason(String statusReason) { + this.statusReason = statusReason; + } + + public ProductOfferingUpdate version(String version) { + this.version = version; + return this; + } + + /** + * ProductOffering version + * @return version + **/ + @Schema(description = "ProductOffering version") + + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public ProductOfferingUpdate agreement(List agreement) { + this.agreement = agreement; + return this; + } + + public ProductOfferingUpdate addAgreementItem(AgreementRef agreementItem) { + if (this.agreement == null) { + this.agreement = new ArrayList<>(); + } + this.agreement.add(agreementItem); + return this; + } + + /** + * An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications. + * @return agreement + **/ + @Schema(description = "An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications.") + + @Valid + + public List getAgreement() { + return agreement; + } + + public void setAgreement(List agreement) { + this.agreement = agreement; + } + + public ProductOfferingUpdate attachment(List attachment) { + this.attachment = attachment; + return this; + } + + public ProductOfferingUpdate addAttachmentItem(AttachmentRefOrValue attachmentItem) { + if (this.attachment == null) { + this.attachment = new ArrayList<>(); + } + this.attachment.add(attachmentItem); + return this; + } + + /** + * Complements the description of an element (for instance a product) through video, pictures... + * @return attachment + **/ + @Schema(description = "Complements the description of an element (for instance a product) through video, pictures...") + + @Valid + + public List getAttachment() { + return attachment; + } + + public void setAttachment(List attachment) { + this.attachment = attachment; + } + + public ProductOfferingUpdate bundledProductOffering(List bundledProductOffering) { + this.bundledProductOffering = bundledProductOffering; + return this; + } + + public ProductOfferingUpdate addBundledProductOfferingItem(BundledProductOffering bundledProductOfferingItem) { + if (this.bundledProductOffering == null) { + this.bundledProductOffering = new ArrayList<>(); + } + this.bundledProductOffering.add(bundledProductOfferingItem); + return this; + } + + /** + * A type of ProductOffering that belongs to a grouping of ProductOfferings made available to the market. It inherits of all attributes of ProductOffering. + * @return bundledProductOffering + **/ + @Schema(description = "A type of ProductOffering that belongs to a grouping of ProductOfferings made available to the market. It inherits of all attributes of ProductOffering.") + + @Valid + + public List getBundledProductOffering() { + return bundledProductOffering; + } + + public void setBundledProductOffering(List bundledProductOffering) { + this.bundledProductOffering = bundledProductOffering; + } + + public ProductOfferingUpdate category(List category) { + this.category = category; + return this; + } + + public ProductOfferingUpdate addCategoryItem(CategoryRef categoryItem) { + if (this.category == null) { + this.category = new ArrayList<>(); + } + this.category.add(categoryItem); + return this; + } + + /** + * The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates. + * @return category + **/ + @Schema(description = "The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates.") + + @Valid + + public List getCategory() { + return category; + } + + public void setCategory(List category) { + this.category = category; + } + + public ProductOfferingUpdate channel(List channel) { + this.channel = channel; + return this; + } + + public ProductOfferingUpdate addChannelItem(ChannelRef channelItem) { + if (this.channel == null) { + this.channel = new ArrayList<>(); + } + this.channel.add(channelItem); + return this; + } + + /** + * The channel defines the channel for selling product offerings. + * @return channel + **/ + @Schema(description = "The channel defines the channel for selling product offerings.") + + @Valid + + public List getChannel() { + return channel; + } + + public void setChannel(List channel) { + this.channel = channel; + } + + public ProductOfferingUpdate marketSegment(List marketSegment) { + this.marketSegment = marketSegment; + return this; + } + + public ProductOfferingUpdate addMarketSegmentItem(MarketSegmentRef marketSegmentItem) { + if (this.marketSegment == null) { + this.marketSegment = new ArrayList<>(); + } + this.marketSegment.add(marketSegmentItem); + return this; + } + + /** + * provides references to the corresponding market segment as target of product offerings. A market segment is grouping of Parties, GeographicAreas, SalesChannels, and so forth. + * @return marketSegment + **/ + @Schema(description = "provides references to the corresponding market segment as target of product offerings. A market segment is grouping of Parties, GeographicAreas, SalesChannels, and so forth.") + + @Valid + + public List getMarketSegment() { + return marketSegment; + } + + public void setMarketSegment(List marketSegment) { + this.marketSegment = marketSegment; + } + + public ProductOfferingUpdate place(List place) { + this.place = place; + return this; + } + + public ProductOfferingUpdate addPlaceItem(PlaceRef placeItem) { + if (this.place == null) { + this.place = new ArrayList<>(); + } + this.place.add(placeItem); + return this; + } + + /** + * Place defines the places where the products are sold or delivered. + * @return place + **/ + @Schema(description = "Place defines the places where the products are sold or delivered.") + + @Valid + + public List getPlace() { + return place; + } + + public void setPlace(List place) { + this.place = place; + } + + public ProductOfferingUpdate prodSpecCharValueUse(List prodSpecCharValueUse) { + this.prodSpecCharValueUse = prodSpecCharValueUse; + return this; + } + + public ProductOfferingUpdate addProdSpecCharValueUseItem(ProductSpecificationCharacteristicValueUse prodSpecCharValueUseItem) { + if (this.prodSpecCharValueUse == null) { + this.prodSpecCharValueUse = new ArrayList<>(); + } + this.prodSpecCharValueUse.add(prodSpecCharValueUseItem); + return this; + } + + /** + * A use of the ProductSpecificationCharacteristicValue by a ProductOffering to which additional properties (attributes) apply or override the properties of similar properties contained in ProductSpecificationCharacteristicValue. It should be noted that characteristics which their value(s) addressed by this object must exist in corresponding product specification. The available characteristic values for a ProductSpecificationCharacteristic in a Product specification can be modified at the ProductOffering level. For example, a characteristic 'Color' might have values White, Blue, Green, and Red. But, the list of values can be restricted to e.g. White and Blue in an associated product offering. It should be noted that the list of values in 'ProductSpecificationCharacteristicValueUse' is a strict subset of the list of values as defined in the corresponding product specification characteristics. + * @return prodSpecCharValueUse + **/ + @Schema(description = "A use of the ProductSpecificationCharacteristicValue by a ProductOffering to which additional properties (attributes) apply or override the properties of similar properties contained in ProductSpecificationCharacteristicValue. It should be noted that characteristics which their value(s) addressed by this object must exist in corresponding product specification. The available characteristic values for a ProductSpecificationCharacteristic in a Product specification can be modified at the ProductOffering level. For example, a characteristic 'Color' might have values White, Blue, Green, and Red. But, the list of values can be restricted to e.g. White and Blue in an associated product offering. It should be noted that the list of values in 'ProductSpecificationCharacteristicValueUse' is a strict subset of the list of values as defined in the corresponding product specification characteristics.") + + @Valid + + public List getProdSpecCharValueUse() { + return prodSpecCharValueUse; + } + + public void setProdSpecCharValueUse(List prodSpecCharValueUse) { + this.prodSpecCharValueUse = prodSpecCharValueUse; + } + + public ProductOfferingUpdate productOfferingPrice(List productOfferingPrice) { + this.productOfferingPrice = productOfferingPrice; + return this; + } + + public ProductOfferingUpdate addProductOfferingPriceItem(ProductOfferingPriceRef productOfferingPriceItem) { + if (this.productOfferingPrice == null) { + this.productOfferingPrice = new ArrayList<>(); + } + this.productOfferingPrice.add(productOfferingPriceItem); + return this; + } + + /** + * An amount, usually of money, that is asked for or allowed when a ProductOffering is bought, rented, or leased. The price is valid for a defined period of time and may not represent the actual price paid by a customer. + * @return productOfferingPrice + **/ + @Schema(description = "An amount, usually of money, that is asked for or allowed when a ProductOffering is bought, rented, or leased. The price is valid for a defined period of time and may not represent the actual price paid by a customer.") + + @Valid + + public List getProductOfferingPrice() { + return productOfferingPrice; + } + + public void setProductOfferingPrice(List productOfferingPrice) { + this.productOfferingPrice = productOfferingPrice; + } + + public ProductOfferingUpdate productOfferingTerm(List productOfferingTerm) { + this.productOfferingTerm = productOfferingTerm; + return this; + } + + public ProductOfferingUpdate addProductOfferingTermItem(ProductOfferingTerm productOfferingTermItem) { + if (this.productOfferingTerm == null) { + this.productOfferingTerm = new ArrayList<>(); + } + this.productOfferingTerm.add(productOfferingTermItem); + return this; + } + + /** + * A condition under which a ProductOffering is made available to Customers. For instance, a productOffering can be offered with multiple commitment periods. + * @return productOfferingTerm + **/ + @Schema(description = "A condition under which a ProductOffering is made available to Customers. For instance, a productOffering can be offered with multiple commitment periods.") + + @Valid + + public List getProductOfferingTerm() { + return productOfferingTerm; + } + + public void setProductOfferingTerm(List productOfferingTerm) { + this.productOfferingTerm = productOfferingTerm; + } + + public ProductOfferingUpdate productSpecification(ProductSpecificationRef productSpecification) { + this.productSpecification = productSpecification; + return this; + } + + /** + * A ProductSpecification is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role. + * @return productSpecification + **/ + @Schema(description = "A ProductSpecification is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role.") + + @Valid + + public ProductSpecificationRef getProductSpecification() { + return productSpecification; + } + + public void setProductSpecification(ProductSpecificationRef productSpecification) { + this.productSpecification = productSpecification; + } + + public ProductOfferingUpdate resourceCandidate(ResourceCandidateRef resourceCandidate) { + this.resourceCandidate = resourceCandidate; + return this; + } + + /** + * A resource candidate is an entity that makes a ResourceSpecification available to a catalog. + * @return resourceCandidate + **/ + @Schema(description = "A resource candidate is an entity that makes a ResourceSpecification available to a catalog.") + + @Valid + + public ResourceCandidateRef getResourceCandidate() { + return resourceCandidate; + } + + public void setResourceCandidate(ResourceCandidateRef resourceCandidate) { + this.resourceCandidate = resourceCandidate; + } + + public ProductOfferingUpdate serviceCandidate(ServiceCandidateRef serviceCandidate) { + this.serviceCandidate = serviceCandidate; + return this; + } + + /** + * ServiceCandidate is an entity that makes a ServiceSpecification available to a catalog. + * @return serviceCandidate + **/ + @Schema(description = "ServiceCandidate is an entity that makes a ServiceSpecification available to a catalog.") + + @Valid + + public ServiceCandidateRef getServiceCandidate() { + return serviceCandidate; + } + + public void setServiceCandidate(ServiceCandidateRef serviceCandidate) { + this.serviceCandidate = serviceCandidate; + } + + public ProductOfferingUpdate serviceLevelAgreement(SLARef serviceLevelAgreement) { + this.serviceLevelAgreement = serviceLevelAgreement; + return this; + } + + /** + * A service level agreement (SLA) is a type of agreement that represents a formal negotiated agreement between two parties designed to create a common understanding about products, services, priorities, responsibilities, and so forth. The SLA is a set of appropriate procedures and targets formally or informally agreed between parties in order to achieve and maintain specified Quality of Service. + * @return serviceLevelAgreement + **/ + @Schema(description = "A service level agreement (SLA) is a type of agreement that represents a formal negotiated agreement between two parties designed to create a common understanding about products, services, priorities, responsibilities, and so forth. The SLA is a set of appropriate procedures and targets formally or informally agreed between parties in order to achieve and maintain specified Quality of Service.") + + @Valid + + public SLARef getServiceLevelAgreement() { + return serviceLevelAgreement; + } + + public void setServiceLevelAgreement(SLARef serviceLevelAgreement) { + this.serviceLevelAgreement = serviceLevelAgreement; + } + + public ProductOfferingUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the productOffering is valid + * @return validFor + **/ + @Schema(description = "The period for which the productOffering is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ProductOfferingUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ProductOfferingUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductOfferingUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingUpdate productOfferingUpdate = (ProductOfferingUpdate) o; + return Objects.equals(this.description, productOfferingUpdate.description) && + Objects.equals(this.isBundle, productOfferingUpdate.isBundle) && + Objects.equals(this.isSellable, productOfferingUpdate.isSellable) && + Objects.equals(this.lifecycleStatus, productOfferingUpdate.lifecycleStatus) && + Objects.equals(this.name, productOfferingUpdate.name) && + Objects.equals(this.statusReason, productOfferingUpdate.statusReason) && + Objects.equals(this.version, productOfferingUpdate.version) && + Objects.equals(this.agreement, productOfferingUpdate.agreement) && + Objects.equals(this.attachment, productOfferingUpdate.attachment) && + Objects.equals(this.bundledProductOffering, productOfferingUpdate.bundledProductOffering) && + Objects.equals(this.category, productOfferingUpdate.category) && + Objects.equals(this.channel, productOfferingUpdate.channel) && + Objects.equals(this.marketSegment, productOfferingUpdate.marketSegment) && + Objects.equals(this.place, productOfferingUpdate.place) && + Objects.equals(this.prodSpecCharValueUse, productOfferingUpdate.prodSpecCharValueUse) && + Objects.equals(this.productOfferingPrice, productOfferingUpdate.productOfferingPrice) && + Objects.equals(this.productOfferingTerm, productOfferingUpdate.productOfferingTerm) && + Objects.equals(this.productSpecification, productOfferingUpdate.productSpecification) && + Objects.equals(this.resourceCandidate, productOfferingUpdate.resourceCandidate) && + Objects.equals(this.serviceCandidate, productOfferingUpdate.serviceCandidate) && + Objects.equals(this.serviceLevelAgreement, productOfferingUpdate.serviceLevelAgreement) && + Objects.equals(this.validFor, productOfferingUpdate.validFor) && + Objects.equals(this.baseType, productOfferingUpdate.baseType) && + Objects.equals(this.schemaLocation, productOfferingUpdate.schemaLocation) && + Objects.equals(this.type, productOfferingUpdate.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(description, isBundle, isSellable, lifecycleStatus, name, statusReason, version, agreement, attachment, bundledProductOffering, category, channel, marketSegment, place, prodSpecCharValueUse, productOfferingPrice, productOfferingTerm, productSpecification, resourceCandidate, serviceCandidate, serviceLevelAgreement, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingUpdate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" isSellable: ").append(toIndentedString(isSellable)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" statusReason: ").append(toIndentedString(statusReason)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" agreement: ").append(toIndentedString(agreement)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" bundledProductOffering: ").append(toIndentedString(bundledProductOffering)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" channel: ").append(toIndentedString(channel)).append("\n"); + sb.append(" marketSegment: ").append(toIndentedString(marketSegment)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" prodSpecCharValueUse: ").append(toIndentedString(prodSpecCharValueUse)).append("\n"); + sb.append(" productOfferingPrice: ").append(toIndentedString(productOfferingPrice)).append("\n"); + sb.append(" productOfferingTerm: ").append(toIndentedString(productOfferingTerm)).append("\n"); + sb.append(" productSpecification: ").append(toIndentedString(productSpecification)).append("\n"); + sb.append(" resourceCandidate: ").append(toIndentedString(resourceCandidate)).append("\n"); + sb.append(" serviceCandidate: ").append(toIndentedString(serviceCandidate)).append("\n"); + sb.append(" serviceLevelAgreement: ").append(toIndentedString(serviceLevelAgreement)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecification.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecification.java new file mode 100644 index 0000000..3e09446 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecification.java @@ -0,0 +1,524 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; + +/** + * Is a detailed description of a tangible or intangible object made available + * externally in the form of a ProductOffering to customers or other parties + * playing a party role. + */ +@Schema(description = "Is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity +public class ProductSpecification extends BaseEntity { + + @JsonProperty("id") + private String id = null; + + @JsonProperty("brand") + private String brand = null; + + @JsonProperty("isBundle") + private Boolean isBundle = null; + + @JsonProperty("productNumber") + private String productNumber = null; + + @JsonProperty("attachment") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set attachment = new HashSet<>(); + + @JsonProperty("bundledProductSpecification") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set bundledProductSpecification = new HashSet<>(); + + @JsonProperty("productSpecCharacteristic") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set productSpecCharacteristic = new HashSet<>(); + + @JsonProperty("productSpecificationRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set productSpecificationRelationship = new HashSet<>(); + + @JsonProperty("relatedParty") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set relatedParty = new HashSet<>(); + + @JsonProperty("resourceSpecification") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set resourceSpecification = new HashSet<>(); + + @JsonProperty("serviceSpecification") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set serviceSpecification = new HashSet<>(); + + @JsonProperty("targetProductSchema") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.DETACH }) + @JoinColumn(referencedColumnName = "uuid") + private TargetProductSchema targetProductSchema = null; + + + + public ProductSpecification id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the product specification + * + * @return id + **/ + @Schema(description = "Unique identifier of the product specification") + + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + + + /** + * The manufacturer or trademark of the specification + * + * @return brand + **/ + @Schema(description = "The manufacturer or trademark of the specification") + + public String getBrand() { + return brand; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + + + public ProductSpecification isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * isBundle determines whether a productSpecification represents a single + * productSpecification (false), or a bundle of productSpecification (true). + * + * @return isBundle + **/ + @Schema(description = "isBundle determines whether a productSpecification represents a single productSpecification (false), or a bundle of productSpecification (true).") + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + + public ProductSpecification productNumber(String productNumber) { + this.productNumber = productNumber; + return this; + } + + /** + * An identification number assigned to uniquely identity the specification + * + * @return productNumber + **/ + @Schema(description = "An identification number assigned to uniquely identity the specification") + + public String getProductNumber() { + return productNumber; + } + + public void setProductNumber(String productNumber) { + this.productNumber = productNumber; + } + + + public ProductSpecification attachment(Set attachment) { + this.attachment = attachment; + return this; + } + + public ProductSpecification addAttachmentItem(AttachmentRefOrValue attachmentItem) { + if (this.attachment == null) { + this.attachment = new HashSet<>(); + } + this.attachment.add(attachmentItem); + return this; + } + + /** + * Complements the description of an element (for instance a product) through + * video, pictures... + * + * @return attachment + **/ + @Schema(description = "Complements the description of an element (for instance a product) through video, pictures...") + + @Valid + + public Set getAttachment() { + return attachment; + } + + public void setAttachment(Set attachment) { + this.attachment = attachment; + } + + public ProductSpecification bundledProductSpecification( + Set bundledProductSpecification) { + this.bundledProductSpecification = bundledProductSpecification; + return this; + } + + public ProductSpecification addBundledProductSpecificationItem( + BundledProductSpecification bundledProductSpecificationItem) { + if (this.bundledProductSpecification == null) { + this.bundledProductSpecification = new HashSet<>(); + } + this.bundledProductSpecification.add(bundledProductSpecificationItem); + return this; + } + + /** + * A type of ProductSpecification that belongs to a grouping of + * ProductSpecifications made available to the market. It inherits of all + * attributes of ProductSpecification. + * + * @return bundledProductSpecification + **/ + @Schema(description = "A type of ProductSpecification that belongs to a grouping of ProductSpecifications made available to the market. It inherits of all attributes of ProductSpecification.") + + @Valid + + public Set getBundledProductSpecification() { + return bundledProductSpecification; + } + + public void setBundledProductSpecification(Set bundledProductSpecification) { + this.bundledProductSpecification = bundledProductSpecification; + } + + public ProductSpecification productSpecCharacteristic( + Set productSpecCharacteristic) { + this.productSpecCharacteristic = productSpecCharacteristic; + return this; + } + + public ProductSpecification addProductSpecCharacteristicItem( + ProductSpecificationCharacteristic productSpecCharacteristicItem) { + if (this.productSpecCharacteristic == null) { + this.productSpecCharacteristic = new HashSet<>(); + } + this.productSpecCharacteristic.add(productSpecCharacteristicItem); + return this; + } + + /** + * A characteristic quality or distinctive feature of a ProductSpecification. + * The characteristic can be take on a discrete value, such as color, can take + * on a range of values, (for example, sensitivity of 100-240 mV), or can be + * derived from a formula (for example, usage time (hrs) = 30 - talk time *3). + * Certain characteristics, such as color, may be configured during the ordering + * or some other process. + * + * @return productSpecCharacteristic + **/ + @Schema(description = "A characteristic quality or distinctive feature of a ProductSpecification. The characteristic can be take on a discrete value, such as color, can take on a range of values, (for example, sensitivity of 100-240 mV), or can be derived from a formula (for example, usage time (hrs) = 30 - talk time *3). Certain characteristics, such as color, may be configured during the ordering or some other process.") + + @Valid + + public Set getProductSpecCharacteristic() { + return productSpecCharacteristic; + } + + public void setProductSpecCharacteristic(Set productSpecCharacteristic) { + this.productSpecCharacteristic = productSpecCharacteristic; + } + + public ProductSpecification productSpecificationRelationship( + Set productSpecificationRelationship) { + this.productSpecificationRelationship = productSpecificationRelationship; + return this; + } + + public ProductSpecification addProductSpecificationRelationshipItem( + ProductSpecificationRelationship productSpecificationRelationshipItem) { + if (this.productSpecificationRelationship == null) { + this.productSpecificationRelationship = new HashSet<>(); + } + this.productSpecificationRelationship.add(productSpecificationRelationshipItem); + return this; + } + + /** + * A migration, substitution, dependency or exclusivity relationship + * between/among product specifications. + * + * @return productSpecificationRelationship + **/ + @Schema(description = "A migration, substitution, dependency or exclusivity relationship between/among product specifications.") + + @Valid + + public Set getProductSpecificationRelationship() { + return productSpecificationRelationship; + } + + public void setProductSpecificationRelationship( + Set productSpecificationRelationship) { + this.productSpecificationRelationship = productSpecificationRelationship; + } + + public ProductSpecification relatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ProductSpecification addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new HashSet<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * A related party defines party or party role linked to a specific entity. + * + * @return relatedParty + **/ + @Schema(description = "A related party defines party or party role linked to a specific entity.") + + @Valid + + public Set getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + } + + public ProductSpecification resourceSpecification(Set resourceSpecification) { + this.resourceSpecification = resourceSpecification; + return this; + } + + public ProductSpecification addResourceSpecificationItem(ResourceSpecificationRef resourceSpecificationItem) { + if (this.resourceSpecification == null) { + this.resourceSpecification = new HashSet<>(); + } + this.resourceSpecification.add(resourceSpecificationItem); + return this; + } + + /** + * The ResourceSpecification is required to realize a ProductSpecification. + * + * @return resourceSpecification + **/ + @Schema(description = "The ResourceSpecification is required to realize a ProductSpecification.") + + @Valid + + public Set getResourceSpecification() { + return resourceSpecification; + } + + public void setResourceSpecification(Set resourceSpecification) { + this.resourceSpecification = resourceSpecification; + } + + public ProductSpecification serviceSpecification(Set serviceSpecification) { + this.serviceSpecification = serviceSpecification; + return this; + } + + public ProductSpecification addServiceSpecificationItem(ServiceSpecificationRef serviceSpecificationItem) { + if (this.serviceSpecification == null) { + this.serviceSpecification = new HashSet<>(); + } + this.serviceSpecification.add(serviceSpecificationItem); + return this; + } + + /** + * ServiceSpecification(s) required to realize a ProductSpecification. + * + * @return serviceSpecification + **/ + @Schema(description = "ServiceSpecification(s) required to realize a ProductSpecification.") + + @Valid + + public Set getServiceSpecification() { + return serviceSpecification; + } + + public void setServiceSpecification(Set serviceSpecification) { + this.serviceSpecification = serviceSpecification; + } + + public ProductSpecification targetProductSchema(TargetProductSchema targetProductSchema) { + this.targetProductSchema = targetProductSchema; + return this; + } + + /** + * A target product schema reference. The reference object to the schema and + * type of target product which is described by product specification. + * + * @return targetProductSchema + **/ + @Schema(description = "A target product schema reference. The reference object to the schema and type of target product which is described by product specification.") + + @Valid + + public TargetProductSchema getTargetProductSchema() { + return targetProductSchema; + } + + public void setTargetProductSchema(TargetProductSchema targetProductSchema) { + this.targetProductSchema = targetProductSchema; + } + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductSpecification productSpecification = (ProductSpecification) o; + return Objects.equals(this.id, productSpecification.id) && Objects.equals(this.href, productSpecification.href) + && Objects.equals(this.brand, productSpecification.brand) + && Objects.equals(this.description, productSpecification.description) + && Objects.equals(this.isBundle, productSpecification.isBundle) + && Objects.equals(this.lastUpdate, productSpecification.lastUpdate) + && Objects.equals(this.lifecycleStatus, productSpecification.lifecycleStatus) + && Objects.equals(this.name, productSpecification.name) + && Objects.equals(this.productNumber, productSpecification.productNumber) + && Objects.equals(this.version, productSpecification.version) + && Objects.equals(this.attachment, productSpecification.attachment) + && Objects.equals(this.bundledProductSpecification, productSpecification.bundledProductSpecification) + && Objects.equals(this.productSpecCharacteristic, productSpecification.productSpecCharacteristic) + && Objects.equals(this.productSpecificationRelationship, + productSpecification.productSpecificationRelationship) + && Objects.equals(this.relatedParty, productSpecification.relatedParty) + && Objects.equals(this.resourceSpecification, productSpecification.resourceSpecification) + && Objects.equals(this.serviceSpecification, productSpecification.serviceSpecification) + && Objects.equals(this.targetProductSchema, productSpecification.targetProductSchema) + && Objects.equals(this.validFor, productSpecification.validFor) + && Objects.equals(this.baseType, productSpecification.baseType) + && Objects.equals(this.schemaLocation, productSpecification.schemaLocation) + && Objects.equals(this.type, productSpecification.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, brand, description, isBundle, lastUpdate, lifecycleStatus, name, productNumber, +// version, attachment, bundledProductSpecification, productSpecCharacteristic, +// productSpecificationRelationship, relatedParty, resourceSpecification, serviceSpecification, +// targetProductSchema, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductSpecification {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" brand: ").append(toIndentedString(brand)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" productNumber: ").append(toIndentedString(productNumber)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" bundledProductSpecification: ").append(toIndentedString(bundledProductSpecification)) + .append("\n"); + sb.append(" productSpecCharacteristic: ").append(toIndentedString(productSpecCharacteristic)).append("\n"); + sb.append(" productSpecificationRelationship: ").append(toIndentedString(productSpecificationRelationship)) + .append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" resourceSpecification: ").append(toIndentedString(resourceSpecification)).append("\n"); + sb.append(" serviceSpecification: ").append(toIndentedString(serviceSpecification)).append("\n"); + sb.append(" targetProductSchema: ").append(toIndentedString(targetProductSchema)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristic.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristic.java new file mode 100644 index 0000000..9f5f3bd --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristic.java @@ -0,0 +1,382 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * A characteristic quality or distinctive feature of a ProductSpecification. + * The characteristic can be take on a discrete value, such as color, can take + * on a range of values, (for example, sensitivity of 100-240 mV), or can be + * derived from a formula (for example, usage time (hrs) = 30 - talk time + * *3). Certain characteristics, such as color, may be configured during the + * ordering or some other process. + */ +@Schema(description = "A characteristic quality or distinctive feature of a ProductSpecification. The characteristic can be take on a discrete value, such as color, can take on a range of values, (for example, sensitivity of 100-240 mV), or can be derived from a formula (for example, usage time (hrs) = 30 - talk time *3). Certain characteristics, such as color, may be configured during the ordering or some other process.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + + +@Entity(name = "ProdSpecChar") +@Table(name = "ProdSpecChar") +public class ProductSpecificationCharacteristic extends BaseEntity { + @JsonProperty("configurable") + private Boolean configurable = null; + + @JsonProperty("extensible") + private Boolean extensible = null; + + @JsonProperty("isUnique") + private Boolean isUnique = null; + + @JsonProperty("maxCardinality") + private Integer maxCardinality = null; + + @JsonProperty("minCardinality") + private Integer minCardinality = null; + + + @JsonProperty("regex") + private String regex = null; + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("productSpecCharRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set productSpecCharRelationship = new HashSet<>(); + + @JsonProperty("productSpecCharacteristicValue") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set productSpecCharacteristicValue = new HashSet<>(); + + + public ProductSpecificationCharacteristic configurable(Boolean configurable) { + this.configurable = configurable; + return this; + } + + /** + * If true, the Boolean indicates that the ProductSpecificationCharacteristic is + * configurable + * + * @return configurable + **/ + @Schema(description = "If true, the Boolean indicates that the ProductSpecificationCharacteristic is configurable") + + public Boolean isConfigurable() { + return configurable; + } + + public void setConfigurable(Boolean configurable) { + this.configurable = configurable; + } + + + + public ProductSpecificationCharacteristic extensible(Boolean extensible) { + this.extensible = extensible; + return this; + } + + /** + * An indicator that specifies that the values for the characteristic can be + * extended by adding new values when instantiating a characteristic for a + * product + * + * @return extensible + **/ + @Schema(description = "An indicator that specifies that the values for the characteristic can be extended by adding new values when instantiating a characteristic for a product") + + public Boolean isExtensible() { + return extensible; + } + + public void setExtensible(Boolean extensible) { + this.extensible = extensible; + } + + public ProductSpecificationCharacteristic isUnique(Boolean isUnique) { + this.isUnique = isUnique; + return this; + } + + /** + * An indicator that specifies if a value is unique for the specification. + * Possible values are; \"unique while value is in effect\" and \"unique whether + * value is in effect or not\" + * + * @return isUnique + **/ + @Schema(description = "An indicator that specifies if a value is unique for the specification. Possible values are; \"unique while value is in effect\" and \"unique whether value is in effect or not\"") + + public Boolean isIsUnique() { + return isUnique; + } + + public void setIsUnique(Boolean isUnique) { + this.isUnique = isUnique; + } + + public ProductSpecificationCharacteristic maxCardinality(Integer maxCardinality) { + this.maxCardinality = maxCardinality; + return this; + } + + /** + * The maximum number of instances a CharacteristicValue can take on. For + * example, zero to five phone numbers in a group calling plan, where five is + * the value for the maxCardinality + * + * @return maxCardinality + **/ + @Schema(description = "The maximum number of instances a CharacteristicValue can take on. For example, zero to five phone numbers in a group calling plan, where five is the value for the maxCardinality") + + public Integer getMaxCardinality() { + return maxCardinality; + } + + public void setMaxCardinality(Integer maxCardinality) { + this.maxCardinality = maxCardinality; + } + + public ProductSpecificationCharacteristic minCardinality(Integer minCardinality) { + this.minCardinality = minCardinality; + return this; + } + + /** + * The minimum number of instances a CharacteristicValue can take on. For + * example, zero to five phone numbers in a group calling plan, where zero is + * the value for the minCardinality + * + * @return minCardinality + **/ + @Schema(description = "The minimum number of instances a CharacteristicValue can take on. For example, zero to five phone numbers in a group calling plan, where zero is the value for the minCardinality") + + public Integer getMinCardinality() { + return minCardinality; + } + + public void setMinCardinality(Integer minCardinality) { + this.minCardinality = minCardinality; + } + + public ProductSpecificationCharacteristic regex(String regex) { + this.regex = regex; + return this; + } + + /** + * A rule or principle represented in regular expression used to derive the + * value of a characteristic value + * + * @return regex + **/ + @Schema(description = "A rule or principle represented in regular expression used to derive the value of a characteristic value") + + public String getRegex() { + return regex; + } + + public void setRegex(String regex) { + this.regex = regex; + } + + public ProductSpecificationCharacteristic valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * A kind of value that the characteristic can take on, such as numeric, text + * and so forth + * + * @return valueType + **/ + @Schema(description = "A kind of value that the characteristic can take on, such as numeric, text and so forth") + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public ProductSpecificationCharacteristic productSpecCharRelationship( + Set productSpecCharRelationship) { + this.productSpecCharRelationship = productSpecCharRelationship; + return this; + } + + public ProductSpecificationCharacteristic addProductSpecCharRelationshipItem( + ProductSpecificationCharacteristicRelationship productSpecCharRelationshipItem) { + if (this.productSpecCharRelationship == null) { + this.productSpecCharRelationship = new HashSet<>(); + } + this.productSpecCharRelationship.add(productSpecCharRelationshipItem); + return this; + } + + /** + * An aggregation, migration, substitution, dependency or exclusivity + * relationship between/among Specification Characteristics. + * + * @return productSpecCharRelationship + **/ + @Schema(description = "An aggregation, migration, substitution, dependency or exclusivity relationship between/among Specification Characteristics.") + + @Valid + + public Set getProductSpecCharRelationship() { + return productSpecCharRelationship; + } + + public void setProductSpecCharRelationship( + Set productSpecCharRelationship) { + this.productSpecCharRelationship = productSpecCharRelationship; + } + + public ProductSpecificationCharacteristic productSpecCharacteristicValue( + Set productSpecCharacteristicValue) { + this.productSpecCharacteristicValue = productSpecCharacteristicValue; + return this; + } + + public ProductSpecificationCharacteristic addProductSpecCharacteristicValueItem( + ProductSpecificationCharacteristicValue productSpecCharacteristicValueItem) { + if (this.productSpecCharacteristicValue == null) { + this.productSpecCharacteristicValue = new HashSet<>(); + } + this.productSpecCharacteristicValue.add(productSpecCharacteristicValueItem); + return this; + } + + /** + * A ProductSpecificationCharacteristicValue object is used to define a set of + * attributes, each of which can be assigned to a corresponding set of + * attributes in a ProductSpecificationCharacteristic object. The values of the + * attributes in the ProductSpecificationCharacteristicValue object describe the + * values of the attributes that a corresponding + * ProductSpecificationCharacteristic object can take on. + * + * @return productSpecCharacteristicValue + **/ + @Schema(description = "A ProductSpecificationCharacteristicValue object is used to define a set of attributes, each of which can be assigned to a corresponding set of attributes in a ProductSpecificationCharacteristic object. The values of the attributes in the ProductSpecificationCharacteristicValue object describe the values of the attributes that a corresponding ProductSpecificationCharacteristic object can take on.") + + @Valid + + public Set getProductSpecCharacteristicValue() { + return productSpecCharacteristicValue; + } + + public void setProductSpecCharacteristicValue( + Set productSpecCharacteristicValue) { + this.productSpecCharacteristicValue = productSpecCharacteristicValue; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductSpecificationCharacteristic productSpecificationCharacteristic = (ProductSpecificationCharacteristic) o; + return Objects.equals(this.configurable, productSpecificationCharacteristic.configurable) + && Objects.equals(this.description, productSpecificationCharacteristic.description) + && Objects.equals(this.extensible, productSpecificationCharacteristic.extensible) + && Objects.equals(this.isUnique, productSpecificationCharacteristic.isUnique) + && Objects.equals(this.maxCardinality, productSpecificationCharacteristic.maxCardinality) + && Objects.equals(this.minCardinality, productSpecificationCharacteristic.minCardinality) + && Objects.equals(this.name, productSpecificationCharacteristic.name) + && Objects.equals(this.regex, productSpecificationCharacteristic.regex) + && Objects.equals(this.valueType, productSpecificationCharacteristic.valueType) + && Objects.equals(this.productSpecCharRelationship, + productSpecificationCharacteristic.productSpecCharRelationship) + && Objects.equals(this.productSpecCharacteristicValue, + productSpecificationCharacteristic.productSpecCharacteristicValue) + && Objects.equals(this.validFor, productSpecificationCharacteristic.validFor) + && Objects.equals(this.baseType, productSpecificationCharacteristic.baseType) + && Objects.equals(this.schemaLocation, productSpecificationCharacteristic.schemaLocation) + && Objects.equals(this.type, productSpecificationCharacteristic.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(configurable, description, extensible, isUnique, maxCardinality, minCardinality, name, +// regex, valueType, productSpecCharRelationship, productSpecCharacteristicValue, validFor, baseType, +// schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductSpecificationCharacteristic {\n"); + + sb.append(" configurable: ").append(toIndentedString(configurable)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" extensible: ").append(toIndentedString(extensible)).append("\n"); + sb.append(" isUnique: ").append(toIndentedString(isUnique)).append("\n"); + sb.append(" maxCardinality: ").append(toIndentedString(maxCardinality)).append("\n"); + sb.append(" minCardinality: ").append(toIndentedString(minCardinality)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" regex: ").append(toIndentedString(regex)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" productSpecCharRelationship: ").append(toIndentedString(productSpecCharRelationship)) + .append("\n"); + sb.append(" productSpecCharacteristicValue: ").append(toIndentedString(productSpecCharacteristicValue)) + .append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicRelationship.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicRelationship.java new file mode 100644 index 0000000..a340803 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicRelationship.java @@ -0,0 +1,171 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; + +/** + * An aggregation, migration, substitution, dependency or exclusivity relationship between/among productSpecificationCharacteristics. + */ +@Schema(description = "An aggregation, migration, substitution, dependency or exclusivity relationship between/among productSpecificationCharacteristics.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + + +@Entity(name = "ProdSpecCharRelationship") +@Table(name = "ProdSpecCharRelationship") +public class ProductSpecificationCharacteristicRelationship extends BaseEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("charSpecSeq") + private Integer charSpecSeq = null; + + + @JsonProperty("relationshipType") + private String relationshipType = null; + + + public ProductSpecificationCharacteristicRelationship id(String id) { + this.id = id; + return this; + } + + /** + * the identifier of the associated product specification + * @return id + **/ + @Schema(description = "the identifier of the associated product specification") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + + public ProductSpecificationCharacteristicRelationship charSpecSeq(Integer charSpecSeq) { + this.charSpecSeq = charSpecSeq; + return this; + } + + /** + * The order in which a CharacteristicSpecification appears within another CharacteristicSpecification that defines a grouping of CharacteristicSpecifications. For example, a grouping may represent the name of an individual. The given name is first, the middle name is second, and the last name is third. + * @return charSpecSeq + **/ + @Schema(description = "The order in which a CharacteristicSpecification appears within another CharacteristicSpecification that defines a grouping of CharacteristicSpecifications. For example, a grouping may represent the name of an individual. The given name is first, the middle name is second, and the last name is third.") + + + public Integer getCharSpecSeq() { + return charSpecSeq; + } + + public void setCharSpecSeq(Integer charSpecSeq) { + this.charSpecSeq = charSpecSeq; + } + + + public ProductSpecificationCharacteristicRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * Type of relationship such as aggregation, migration, substitution, dependency, exclusivity + * @return relationshipType + **/ + @Schema(description = "Type of relationship such as aggregation, migration, substitution, dependency, exclusivity") + + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductSpecificationCharacteristicRelationship productSpecificationCharacteristicRelationship = (ProductSpecificationCharacteristicRelationship) o; + return Objects.equals(this.id, productSpecificationCharacteristicRelationship.id) && + Objects.equals(this.href, productSpecificationCharacteristicRelationship.href) && + Objects.equals(this.charSpecSeq, productSpecificationCharacteristicRelationship.charSpecSeq) && + Objects.equals(this.name, productSpecificationCharacteristicRelationship.name) && + Objects.equals(this.relationshipType, productSpecificationCharacteristicRelationship.relationshipType) && + Objects.equals(this.validFor, productSpecificationCharacteristicRelationship.validFor) && + Objects.equals(this.baseType, productSpecificationCharacteristicRelationship.baseType) && + Objects.equals(this.schemaLocation, productSpecificationCharacteristicRelationship.schemaLocation) && + Objects.equals(this.type, productSpecificationCharacteristicRelationship.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, charSpecSeq, name, relationshipType, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductSpecificationCharacteristicRelationship {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" charSpecSeq: ").append(toIndentedString(charSpecSeq)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicValue.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicValue.java new file mode 100644 index 0000000..c8ecbe4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicValue.java @@ -0,0 +1,351 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * A ProductSpecificationCharacteristicValue object is used to define a set of + * attributes, each of which can be assigned to a corresponding set of + * attributes in a ProductSpecificationCharacteristic object. The values of the + * attributes in the ProductSpecificationCharacteristicValue object describe the + * values of the attributes that a corresponding + * ProductSpecificationCharacteristic object can take on. + */ +@Schema(description = "A ProductSpecificationCharacteristicValue object is used to define a set of attributes, each of which can be assigned to a corresponding set of attributes in a ProductSpecificationCharacteristic object. The values of the attributes in the ProductSpecificationCharacteristicValue object describe the values of the attributes that a corresponding ProductSpecificationCharacteristic object can take on.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity(name = "ProdSpecCharValue") +@Table(name = "ProdSpecCharValue") +public class ProductSpecificationCharacteristicValue extends BaseRootEntity { + @JsonProperty("isDefault") + private Boolean isDefault = null; + + @JsonProperty("rangeInterval") + private String rangeInterval = null; + + @JsonProperty("regex") + private String regex = null; + + @JsonProperty("unitOfMeasure") + private String unitOfMeasure = null; + + @JsonProperty("valueFrom") + private String valueFrom = null; + + @JsonProperty("valueTo") + private String valueTo = null; + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("value") + private Any value = null; + + + @JsonProperty("validFor") + protected TimePeriod validFor = null; + + + + public ProductSpecificationCharacteristicValue() { + + } + + public ProductSpecificationCharacteristicValue(ProductSpecificationCharacteristicValue r) { + this(); + isDefault = r.isDefault; + rangeInterval = r.rangeInterval; + regex = r.regex; + unitOfMeasure = r.unitOfMeasure; + valueFrom = r.valueFrom; + valueTo = r.valueTo; + valueType = r.valueType; + validFor = new TimePeriod( r.validFor ); + value = new Any( r.value ) ; +// type = r.type; + baseType = r.baseType; + } + + public ProductSpecificationCharacteristicValue isDefault(Boolean isDefault) { + this.isDefault = isDefault; + return this; + } + + /** + * Indicates if the value is the default value for a characteristic + * + * @return isDefault + **/ + @Schema(description = "Indicates if the value is the default value for a characteristic") + + public Boolean isIsDefault() { + return isDefault; + } + + public void setIsDefault(Boolean isDefault) { + this.isDefault = isDefault; + } + + public ProductSpecificationCharacteristicValue rangeInterval(String rangeInterval) { + this.rangeInterval = rangeInterval; + return this; + } + + /** + * An indicator that specifies the inclusion or exclusion of the valueFrom and + * valueTo attributes. If applicable, possible values are \"open\", \"closed\", + * \"closedBottom\" and \"closedTop\". + * + * @return rangeInterval + **/ + @Schema(description = "An indicator that specifies the inclusion or exclusion of the valueFrom and valueTo attributes. If applicable, possible values are \"open\", \"closed\", \"closedBottom\" and \"closedTop\".") + + public String getRangeInterval() { + return rangeInterval; + } + + public void setRangeInterval(String rangeInterval) { + this.rangeInterval = rangeInterval; + } + + public ProductSpecificationCharacteristicValue regex(String regex) { + this.regex = regex; + return this; + } + + /** + * Regular expression to define constraint on the allowed value + * + * @return regex + **/ + @Schema(description = "Regular expression to define constraint on the allowed value") + + public String getRegex() { + return regex; + } + + public void setRegex(String regex) { + this.regex = regex; + } + + public ProductSpecificationCharacteristicValue unitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + return this; + } + + /** + * A length, surface, volume, dry measure, liquid measure, money, weight, time, + * and the like. In general, a determinate quantity or magnitude of the kind + * designated, taken as a standard of comparison for others of the same kind, in + * assigning to them numerical values, as 1 foot, 1 yard, 1 mile, 1 square foot. + * + * @return unitOfMeasure + **/ + @Schema(description = "A length, surface, volume, dry measure, liquid measure, money, weight, time, and the like. In general, a determinate quantity or magnitude of the kind designated, taken as a standard of comparison for others of the same kind, in assigning to them numerical values, as 1 foot, 1 yard, 1 mile, 1 square foot.") + + public String getUnitOfMeasure() { + return unitOfMeasure; + } + + public void setUnitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + } + + public ProductSpecificationCharacteristicValue valueFrom(String valueFrom) { + this.valueFrom = valueFrom; + return this; + } + + /** + * The low range value that a characteristic can take on + * + * @return valueFrom + **/ + @Schema(description = "The low range value that a characteristic can take on") + + public String getValueFrom() { + return valueFrom; + } + + public void setValueFrom(String valueFrom) { + this.valueFrom = valueFrom; + } + + public ProductSpecificationCharacteristicValue valueTo(String valueTo) { + this.valueTo = valueTo; + return this; + } + + + /** + * The period for which the entity is valid + * + * @return validFor + **/ + @Schema(description = "The period for which the entity is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + + + /** + * The upper range value that a characteristic can take on + * + * @return valueTo + **/ + @Schema(description = "The upper range value that a characteristic can take on") + + public String getValueTo() { + return valueTo; + } + + public void setValueTo(String valueTo) { + this.valueTo = valueTo; + } + + public ProductSpecificationCharacteristicValue valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * A kind of value that the characteristic can take on, such as numeric, text, + * and so forth + * + * @return valueType + **/ + @Schema(description = "A kind of value that the characteristic can take on, such as numeric, text, and so forth") + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + + + public ProductSpecificationCharacteristicValue value(Any value) { + this.value = value; + return this; + } + + /** + * A discrete value that the characteristic can take on, or the actual value of + * the characteristic + * + * @return value + **/ + @Schema(description = "A discrete value that the characteristic can take on, or the actual value of the characteristic") + + @Valid + + public Any getValue() { + return value; + } + + public void setValue(Any value) { + this.value = value; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductSpecificationCharacteristicValue productSpecificationCharacteristicValue = (ProductSpecificationCharacteristicValue) o; + return Objects.equals(this.isDefault, productSpecificationCharacteristicValue.isDefault) + && Objects.equals(this.rangeInterval, productSpecificationCharacteristicValue.rangeInterval) + && Objects.equals(this.regex, productSpecificationCharacteristicValue.regex) + && Objects.equals(this.unitOfMeasure, productSpecificationCharacteristicValue.unitOfMeasure) + && Objects.equals(this.valueFrom, productSpecificationCharacteristicValue.valueFrom) + && Objects.equals(this.valueTo, productSpecificationCharacteristicValue.valueTo) + && Objects.equals(this.valueType, productSpecificationCharacteristicValue.valueType) + && Objects.equals(this.validFor, productSpecificationCharacteristicValue.validFor) + && Objects.equals(this.value, productSpecificationCharacteristicValue.value) + && Objects.equals(this.baseType, productSpecificationCharacteristicValue.baseType) + && Objects.equals(this.schemaLocation, productSpecificationCharacteristicValue.schemaLocation) + && Objects.equals(this.type, productSpecificationCharacteristicValue.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(isDefault, rangeInterval, regex, unitOfMeasure, valueFrom, valueTo, valueType, validFor, +// value, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductSpecificationCharacteristicValue {\n"); + + sb.append(" isDefault: ").append(toIndentedString(isDefault)).append("\n"); + sb.append(" rangeInterval: ").append(toIndentedString(rangeInterval)).append("\n"); + sb.append(" regex: ").append(toIndentedString(regex)).append("\n"); + sb.append(" unitOfMeasure: ").append(toIndentedString(unitOfMeasure)).append("\n"); + sb.append(" valueFrom: ").append(toIndentedString(valueFrom)).append("\n"); + sb.append(" valueTo: ").append(toIndentedString(valueTo)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicValueUse.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicValueUse.java new file mode 100644 index 0000000..318a88f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCharacteristicValueUse.java @@ -0,0 +1,339 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * A use of the ProductSpecificationCharacteristicValue by a ProductOffering to + * which additional properties (attributes) apply or override the properties of + * similar properties contained in ProductSpecificationCharacteristicValue. It + * should be noted that characteristics which their value(s) addressed by this + * object must exist in corresponding product specification. The available + * characteristic values for a ProductSpecificationCharacteristic in a Product + * specification can be modified at the ProductOffering level. For example, a + * characteristic 'Color' might have values White, Blue, Green, and Red. + * But, the list of values can be restricted to e.g. White and Blue in an + * associated product offering. It should be noted that the list of values in + * 'ProductSpecificationCharacteristicValueUse' is a strict subset of + * the list of values as defined in the corresponding product specification + * characteristics. + */ +@Schema(description = "A use of the ProductSpecificationCharacteristicValue by a ProductOffering to which additional properties (attributes) apply or override the properties of similar properties contained in ProductSpecificationCharacteristicValue. It should be noted that characteristics which their value(s) addressed by this object must exist in corresponding product specification. The available characteristic values for a ProductSpecificationCharacteristic in a Product specification can be modified at the ProductOffering level. For example, a characteristic 'Color' might have values White, Blue, Green, and Red. But, the list of values can be restricted to e.g. White and Blue in an associated product offering. It should be noted that the list of values in 'ProductSpecificationCharacteristicValueUse' is a strict subset of the list of values as defined in the corresponding product specification characteristics.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity(name = "ProdSpecCharValueUse") +@Table(name = "ProdSpecCharValueUse") +public class ProductSpecificationCharacteristicValueUse extends BaseEntity { + + @JsonProperty("maxCardinality") + private Integer maxCardinality = null; + + @JsonProperty("minCardinality") + private Integer minCardinality = null; + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("productSpecCharacteristicValue") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set productSpecCharacteristicValue = new HashSet<>(); + + @JsonProperty("productSpecification") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.DETACH }) + @JoinColumn(referencedColumnName = "uuid") + private ProductSpecificationRef productSpecification = null; + + public ProductSpecificationCharacteristicValueUse() { + super(); + this.baseType = "BaseEntity"; + this.type = this.getClass().getName(); + } + + public ProductSpecificationCharacteristicValueUse(ProductSpecificationCharacteristicValueUse src) { + this(); + this.name = src.getName(); + this.description = src.getDescription(); + this.maxCardinality = src.getMaxCardinality(); + this.minCardinality = src.getMinCardinality(); + this.valueType =src.valueType; + this.updateProductSpecCharacteristicValues(src.getProductSpecCharacteristicValue() ); + } + + public ProductSpecificationCharacteristicValueUse maxCardinality(Integer maxCardinality) { + this.maxCardinality = maxCardinality; + return this; + } + + /** + * The maximum number of instances a CharacteristicValue can take on. For + * example, zero to five phone numbers in a group calling plan, where five is + * the value for the maxCardinality. + * + * @return maxCardinality + **/ + @Schema(description = "The maximum number of instances a CharacteristicValue can take on. For example, zero to five phone numbers in a group calling plan, where five is the value for the maxCardinality.") + + public Integer getMaxCardinality() { + return maxCardinality; + } + + public void setMaxCardinality(Integer maxCardinality) { + this.maxCardinality = maxCardinality; + } + + public ProductSpecificationCharacteristicValueUse minCardinality(Integer minCardinality) { + this.minCardinality = minCardinality; + return this; + } + + /** + * The minimum number of instances a CharacteristicValue can take on. For + * example, zero to five phone numbers in a group calling plan, where zero is + * the value for the minCardinality. + * + * @return minCardinality + **/ + @Schema(description = "The minimum number of instances a CharacteristicValue can take on. For example, zero to five phone numbers in a group calling plan, where zero is the value for the minCardinality.") + + public Integer getMinCardinality() { + return minCardinality; + } + + public void setMinCardinality(Integer minCardinality) { + this.minCardinality = minCardinality; + } + + + public ProductSpecificationCharacteristicValueUse valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * A kind of value that the characteristic can take on, such as numeric, text + * and so forth + * + * @return valueType + **/ + @Schema(description = "A kind of value that the characteristic can take on, such as numeric, text and so forth") + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public ProductSpecificationCharacteristicValueUse productSpecCharacteristicValue( + Set productSpecCharacteristicValue) { + this.productSpecCharacteristicValue = productSpecCharacteristicValue; + return this; + } + + public ProductSpecificationCharacteristicValueUse addProductSpecCharacteristicValueItem( + ProductSpecificationCharacteristicValue productSpecCharacteristicValueItem) { + if (this.productSpecCharacteristicValue == null) { + this.productSpecCharacteristicValue = new HashSet<>(); + } + this.productSpecCharacteristicValue.add(productSpecCharacteristicValueItem); + return this; + } + + /** + * A number or text that can be assigned to a + * ProductSpecificationCharacteristic. + * + * @return productSpecCharacteristicValue + **/ + @Schema(description = "A number or text that can be assigned to a ProductSpecificationCharacteristic.") + + @Valid + + public Set getProductSpecCharacteristicValue() { + return productSpecCharacteristicValue; + } + + public void setProductSpecCharacteristicValue( + Set productSpecCharacteristicValue) { + this.productSpecCharacteristicValue = productSpecCharacteristicValue; + } + + public ProductSpecificationCharacteristicValueUse productSpecification( + ProductSpecificationRef productSpecification) { + this.productSpecification = productSpecification; + return this; + } + + /** + * A ProductSpecification is a detailed description of a tangible or intangible + * object made available externally in the form of a ProductOffering to + * customers or other parties playing a party role. + * + * @return productSpecification + **/ + @Schema(description = "A ProductSpecification is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role.") + + @Valid + + public ProductSpecificationRef getProductSpecification() { + return productSpecification; + } + + public void setProductSpecification(ProductSpecificationRef productSpecification) { + this.productSpecification = productSpecification; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductSpecificationCharacteristicValueUse productSpecificationCharacteristicValueUse = (ProductSpecificationCharacteristicValueUse) o; + return Objects.equals(this.description, productSpecificationCharacteristicValueUse.description) + && Objects.equals(this.maxCardinality, productSpecificationCharacteristicValueUse.maxCardinality) + && Objects.equals(this.minCardinality, productSpecificationCharacteristicValueUse.minCardinality) + && Objects.equals(this.name, productSpecificationCharacteristicValueUse.name) + && Objects.equals(this.valueType, productSpecificationCharacteristicValueUse.valueType) + && Objects.equals(this.productSpecCharacteristicValue, + productSpecificationCharacteristicValueUse.productSpecCharacteristicValue) + && Objects.equals(this.productSpecification, + productSpecificationCharacteristicValueUse.productSpecification) + && Objects.equals(this.validFor, productSpecificationCharacteristicValueUse.validFor) + && Objects.equals(this.baseType, productSpecificationCharacteristicValueUse.baseType) + && Objects.equals(this.schemaLocation, productSpecificationCharacteristicValueUse.schemaLocation) + && Objects.equals(this.type, productSpecificationCharacteristicValueUse.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(description, maxCardinality, minCardinality, name, valueType, productSpecCharacteristicValue, productSpecification, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductSpecificationCharacteristicValueUse {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" maxCardinality: ").append(toIndentedString(maxCardinality)).append("\n"); + sb.append(" minCardinality: ").append(toIndentedString(minCardinality)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" productSpecCharacteristicValue: ").append(toIndentedString(productSpecCharacteristicValue)) + .append("\n"); + sb.append(" productSpecification: ").append(toIndentedString(productSpecification)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public void updateWith(ProductSpecificationCharacteristicValueUse src) { + this.name = src.getName(); + this.description = src.getDescription(); + this.maxCardinality = src.getMaxCardinality(); + this.minCardinality = src.getMinCardinality(); + this.updateProductSpecCharacteristicValues(src.getProductSpecCharacteristicValue() ); + + } + + private void updateProductSpecCharacteristicValues( + @Valid Set srcSet) { + Map idAddedUpdated = new HashMap<>(); + /** + * update, add the incomings + */ + for (ProductSpecificationCharacteristicValue r : srcSet) { + + boolean valueExists = false; + for (ProductSpecificationCharacteristicValue thisCharVal : this.productSpecCharacteristicValue) { + if ( thisCharVal.hashCode() == r.hashCode() ) { + valueExists = true; + idAddedUpdated.put(thisCharVal.hashCode(), true); + break; + } + } + + if (!valueExists) { + ProductSpecificationCharacteristicValue nr = new ProductSpecificationCharacteristicValue( r ); + this.addProductSpecCharacteristicValueItem( nr ); + idAddedUpdated.put( nr.hashCode(), true); + } + + } + + /** + * remove those that don't exist anymore + */ + + List toRemove = new ArrayList<>(); + for (ProductSpecificationCharacteristicValue ss : this.productSpecCharacteristicValue) { + if ( idAddedUpdated.get( ss.hashCode() ) == null ) { + toRemove.add(ss); + } + } + + for (ProductSpecificationCharacteristicValue r : toRemove) { + this.productSpecCharacteristicValue.remove(r); + } + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCreate.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCreate.java new file mode 100644 index 0000000..9d5a9db --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCreate.java @@ -0,0 +1,144 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role. Skipped properties: id,href + */ +@Schema(description = "Is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductSpecificationCreate extends ProductSpecificationUpdate { + + @JsonProperty("lastUpdate") + private OffsetDateTime lastUpdate = null; + + + public ProductSpecificationCreate lastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + /** + * Date and time of the last update + * @return lastUpdate + **/ + @Schema(description = "Date and time of the last update") + + @Valid + + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductSpecificationCreate productSpecificationCreate = (ProductSpecificationCreate) o; + return Objects.equals(this.brand, productSpecificationCreate.brand) && + Objects.equals(this.description, productSpecificationCreate.description) && + Objects.equals(this.isBundle, productSpecificationCreate.isBundle) && + Objects.equals(this.lastUpdate, productSpecificationCreate.lastUpdate) && + Objects.equals(this.lifecycleStatus, productSpecificationCreate.lifecycleStatus) && + Objects.equals(this.name, productSpecificationCreate.name) && + Objects.equals(this.productNumber, productSpecificationCreate.productNumber) && + Objects.equals(this.version, productSpecificationCreate.version) && + Objects.equals(this.attachment, productSpecificationCreate.attachment) && + Objects.equals(this.bundledProductSpecification, productSpecificationCreate.bundledProductSpecification) && + Objects.equals(this.productSpecCharacteristic, productSpecificationCreate.productSpecCharacteristic) && + Objects.equals(this.productSpecificationRelationship, productSpecificationCreate.productSpecificationRelationship) && + Objects.equals(this.relatedParty, productSpecificationCreate.relatedParty) && + Objects.equals(this.resourceSpecification, productSpecificationCreate.resourceSpecification) && + Objects.equals(this.serviceSpecification, productSpecificationCreate.serviceSpecification) && + Objects.equals(this.targetProductSchema, productSpecificationCreate.targetProductSchema) && + Objects.equals(this.validFor, productSpecificationCreate.validFor) && + Objects.equals(this.baseType, productSpecificationCreate.baseType) && + Objects.equals(this.schemaLocation, productSpecificationCreate.schemaLocation) && + Objects.equals(this.type, productSpecificationCreate.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(brand, description, isBundle, lastUpdate, lifecycleStatus, name, productNumber, version, attachment, bundledProductSpecification, productSpecCharacteristic, productSpecificationRelationship, relatedParty, resourceSpecification, serviceSpecification, targetProductSchema, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductSpecificationCreate {\n"); + + sb.append(" brand: ").append(toIndentedString(brand)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" productNumber: ").append(toIndentedString(productNumber)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" bundledProductSpecification: ").append(toIndentedString(bundledProductSpecification)).append("\n"); + sb.append(" productSpecCharacteristic: ").append(toIndentedString(productSpecCharacteristic)).append("\n"); + sb.append(" productSpecificationRelationship: ").append(toIndentedString(productSpecificationRelationship)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" resourceSpecification: ").append(toIndentedString(resourceSpecification)).append("\n"); + sb.append(" serviceSpecification: ").append(toIndentedString(serviceSpecification)).append("\n"); + sb.append(" targetProductSchema: ").append(toIndentedString(targetProductSchema)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCreateEvent.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCreateEvent.java new file mode 100644 index 0000000..f63cad6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCreateEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductSpecificationCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ProductSpecificationCreateEventPayload event = null; + + public ProductSpecificationCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductSpecificationCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductSpecificationCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ProductSpecificationCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ProductSpecificationCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ProductSpecificationCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ProductSpecificationCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ProductSpecificationCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ProductSpecificationCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductSpecificationCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ProductSpecificationCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ProductSpecificationCreateEvent event(ProductSpecificationCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public ProductSpecificationCreateEventPayload getEvent() { + return event; + } + + public void setEvent(ProductSpecificationCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductSpecificationCreateEvent productSpecificationCreateEvent = (ProductSpecificationCreateEvent) o; + return Objects.equals(this.id, productSpecificationCreateEvent.id) && + Objects.equals(this.href, productSpecificationCreateEvent.href) && + Objects.equals(this.eventId, productSpecificationCreateEvent.eventId) && + Objects.equals(this.eventTime, productSpecificationCreateEvent.eventTime) && + Objects.equals(this.eventType, productSpecificationCreateEvent.eventType) && + Objects.equals(this.correlationId, productSpecificationCreateEvent.correlationId) && + Objects.equals(this.domain, productSpecificationCreateEvent.domain) && + Objects.equals(this.title, productSpecificationCreateEvent.title) && + Objects.equals(this.description, productSpecificationCreateEvent.description) && + Objects.equals(this.priority, productSpecificationCreateEvent.priority) && + Objects.equals(this.timeOcurred, productSpecificationCreateEvent.timeOcurred) && + Objects.equals(this.event, productSpecificationCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductSpecificationCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCreateEventPayload.java new file mode 100644 index 0000000..f645653 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationCreateEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductSpecificationCreateEventPayload { + @JsonProperty("productSpecification") + private ProductSpecification productSpecification = null; + + public ProductSpecificationCreateEventPayload productSpecification(ProductSpecification productSpecification) { + this.productSpecification = productSpecification; + return this; + } + + /** + * The involved resource data for the event + * @return productSpecification + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ProductSpecification getProductSpecification() { + return productSpecification; + } + + public void setProductSpecification(ProductSpecification productSpecification) { + this.productSpecification = productSpecification; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductSpecificationCreateEventPayload productSpecificationCreateEventPayload = (ProductSpecificationCreateEventPayload) o; + return Objects.equals(this.productSpecification, productSpecificationCreateEventPayload.productSpecification); + } + + @Override + public int hashCode() { + return Objects.hash(productSpecification); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductSpecificationCreateEventPayload {\n"); + + sb.append(" productSpecification: ").append(toIndentedString(productSpecification)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationDeleteEvent.java new file mode 100644 index 0000000..dcb55a4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationDeleteEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductSpecificationDeleteEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ProductSpecificationDeleteEventPayload event = null; + + public ProductSpecificationDeleteEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductSpecificationDeleteEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductSpecificationDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ProductSpecificationDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ProductSpecificationDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ProductSpecificationDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ProductSpecificationDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ProductSpecificationDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ProductSpecificationDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductSpecificationDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ProductSpecificationDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ProductSpecificationDeleteEvent event(ProductSpecificationDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public ProductSpecificationDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(ProductSpecificationDeleteEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductSpecificationDeleteEvent productSpecificationDeleteEvent = (ProductSpecificationDeleteEvent) o; + return Objects.equals(this.id, productSpecificationDeleteEvent.id) && + Objects.equals(this.href, productSpecificationDeleteEvent.href) && + Objects.equals(this.eventId, productSpecificationDeleteEvent.eventId) && + Objects.equals(this.eventTime, productSpecificationDeleteEvent.eventTime) && + Objects.equals(this.eventType, productSpecificationDeleteEvent.eventType) && + Objects.equals(this.correlationId, productSpecificationDeleteEvent.correlationId) && + Objects.equals(this.domain, productSpecificationDeleteEvent.domain) && + Objects.equals(this.title, productSpecificationDeleteEvent.title) && + Objects.equals(this.description, productSpecificationDeleteEvent.description) && + Objects.equals(this.priority, productSpecificationDeleteEvent.priority) && + Objects.equals(this.timeOcurred, productSpecificationDeleteEvent.timeOcurred) && + Objects.equals(this.event, productSpecificationDeleteEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductSpecificationDeleteEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationDeleteEventPayload.java new file mode 100644 index 0000000..20c5e13 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationDeleteEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductSpecificationDeleteEventPayload { + @JsonProperty("productSpecification") + private ProductSpecification productSpecification = null; + + public ProductSpecificationDeleteEventPayload productSpecification(ProductSpecification productSpecification) { + this.productSpecification = productSpecification; + return this; + } + + /** + * The involved resource data for the event + * @return productSpecification + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ProductSpecification getProductSpecification() { + return productSpecification; + } + + public void setProductSpecification(ProductSpecification productSpecification) { + this.productSpecification = productSpecification; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductSpecificationDeleteEventPayload productSpecificationDeleteEventPayload = (ProductSpecificationDeleteEventPayload) o; + return Objects.equals(this.productSpecification, productSpecificationDeleteEventPayload.productSpecification); + } + + @Override + public int hashCode() { + return Objects.hash(productSpecification); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductSpecificationDeleteEventPayload {\n"); + + sb.append(" productSpecification: ").append(toIndentedString(productSpecification)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationRef.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationRef.java new file mode 100644 index 0000000..c29b5e6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationRef.java @@ -0,0 +1,191 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToOne; +import jakarta.validation.constraints.NotNull; + +/** + * Product specification reference: A ProductSpecification is a detailed + * description of a tangible or intangible object made available externally in + * the form of a ProductOffering to customers or other parties playing a party + * role. + */ +@Schema(description = "Product specification reference: A ProductSpecification is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity(name = "ProductSpecificationRef") +public class ProductSpecificationRef extends BaseEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("targetProductSchema") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.DETACH }) + @JoinColumn(referencedColumnName = "uuid") + private TargetProductSchema targetProductSchema = null; + + @JsonProperty("@referredType") + private String referredType = null; + + /** + * Unique identifier of a related entity. + * + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getId() { + return id; + } + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + + public ProductSpecificationRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductSpecificationRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public ProductSpecificationRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductSpecificationRef productSpecificationRef = (ProductSpecificationRef) o; + return Objects.equals(this.id, productSpecificationRef.id) + && Objects.equals(this.href, productSpecificationRef.href) + && Objects.equals(this.name, productSpecificationRef.name) + && Objects.equals(this.version, productSpecificationRef.version) + && Objects.equals(this.targetProductSchema, productSpecificationRef.targetProductSchema) + && Objects.equals(this.baseType, productSpecificationRef.baseType) + && Objects.equals(this.schemaLocation, productSpecificationRef.schemaLocation) + && Objects.equals(this.type, productSpecificationRef.type) + && Objects.equals(this.referredType, productSpecificationRef.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, version, targetProductSchema, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductSpecificationRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" targetProductSchema: ").append(toIndentedString(targetProductSchema)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationRelationship.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationRelationship.java new file mode 100644 index 0000000..2de594c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationRelationship.java @@ -0,0 +1,172 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; + +/** + * A migration, substitution, dependency or exclusivity relationship between/among product specifications. + */ +@Schema(description = "A migration, substitution, dependency or exclusivity relationship between/among product specifications.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity +public class ProductSpecificationRelationship extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + + + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + + public ProductSpecificationRelationship id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the productSpecification + * @return id + **/ + @Schema(description = "Unique identifier of the productSpecification") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + + + public ProductSpecificationRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * Type of relationship such as migration, substitution, dependency, exclusivity + * @return relationshipType + **/ + @Schema(description = "Type of relationship such as migration, substitution, dependency, exclusivity") + + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public ProductSpecificationRelationship validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the productSpecificationRelationship is valid + * @return validFor + **/ + @Schema(description = "The period for which the productSpecificationRelationship is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ProductSpecificationRelationship baseType(String baseType) { + this.baseType = baseType; + return this; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductSpecificationRelationship productSpecificationRelationship = (ProductSpecificationRelationship) o; + return Objects.equals(this.id, productSpecificationRelationship.id) && + Objects.equals(this.href, productSpecificationRelationship.href) && + Objects.equals(this.relationshipType, productSpecificationRelationship.relationshipType) && + Objects.equals(this.validFor, productSpecificationRelationship.validFor) && + Objects.equals(this.baseType, productSpecificationRelationship.baseType) && + Objects.equals(this.schemaLocation, productSpecificationRelationship.schemaLocation) && + Objects.equals(this.type, productSpecificationRelationship.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, relationshipType, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductSpecificationRelationship {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationUpdate.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationUpdate.java new file mode 100644 index 0000000..458f8d7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ProductSpecificationUpdate.java @@ -0,0 +1,628 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role. Skipped properties: id,href,lastUpdate + */ +@Schema(description = "Is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role. Skipped properties: id,href,lastUpdate") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class ProductSpecificationUpdate { + @JsonProperty("brand") + protected String brand = null; + + @JsonProperty("description") + protected String description = null; + + @JsonProperty("isBundle") + protected Boolean isBundle = null; + + @JsonProperty("lifecycleStatus") + protected String lifecycleStatus = null; + + @JsonProperty("name") + protected String name = null; + + @JsonProperty("productNumber") + protected String productNumber = null; + + @JsonProperty("version") + protected String version = null; + + @JsonProperty("attachment") + @Valid + protected List attachment = null; + + @JsonProperty("bundledProductSpecification") + @Valid + protected List bundledProductSpecification = null; + + @JsonProperty("productSpecCharacteristic") + @Valid + protected List productSpecCharacteristic = null; + + @JsonProperty("productSpecificationRelationship") + @Valid + protected List productSpecificationRelationship = null; + + @JsonProperty("relatedParty") + @Valid + protected List relatedParty = null; + + @JsonProperty("resourceSpecification") + @Valid + protected List resourceSpecification = null; + + @JsonProperty("serviceSpecification") + @Valid + protected List serviceSpecification = null; + + @JsonProperty("targetProductSchema") + protected TargetProductSchema targetProductSchema = null; + + @JsonProperty("validFor") + protected TimePeriod validFor = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@type") + protected String type = null; + + public ProductSpecificationUpdate brand(String brand) { + this.brand = brand; + return this; + } + + /** + * The manufacturer or trademark of the specification + * @return brand + **/ + @Schema(description = "The manufacturer or trademark of the specification") + + + public String getBrand() { + return brand; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + public ProductSpecificationUpdate description(String description) { + this.description = description; + return this; + } + + /** + * A narrative that explains in detail what the product specification is + * @return description + **/ + @Schema(description = "A narrative that explains in detail what the product specification is") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductSpecificationUpdate isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * isBundle determines whether a productSpecification represents a single productSpecification (false), or a bundle of productSpecification (true). + * @return isBundle + **/ + @Schema(description = "isBundle determines whether a productSpecification represents a single productSpecification (false), or a bundle of productSpecification (true).") + + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + public ProductSpecificationUpdate lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Used to indicate the current lifecycle status + * @return lifecycleStatus + **/ + @Schema(description = "Used to indicate the current lifecycle status") + + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public ProductSpecificationUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the product specification + * @return name + **/ + @Schema(description = "Name of the product specification") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ProductSpecificationUpdate productNumber(String productNumber) { + this.productNumber = productNumber; + return this; + } + + /** + * An identification number assigned to uniquely identity the specification + * @return productNumber + **/ + @Schema(description = "An identification number assigned to uniquely identity the specification") + + + public String getProductNumber() { + return productNumber; + } + + public void setProductNumber(String productNumber) { + this.productNumber = productNumber; + } + + public ProductSpecificationUpdate version(String version) { + this.version = version; + return this; + } + + /** + * Product specification version + * @return version + **/ + @Schema(description = "Product specification version") + + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public ProductSpecificationUpdate attachment(List attachment) { + this.attachment = attachment; + return this; + } + + public ProductSpecificationUpdate addAttachmentItem(AttachmentRefOrValue attachmentItem) { + if (this.attachment == null) { + this.attachment = new ArrayList<>(); + } + this.attachment.add(attachmentItem); + return this; + } + + /** + * Complements the description of an element (for instance a product) through video, pictures... + * @return attachment + **/ + @Schema(description = "Complements the description of an element (for instance a product) through video, pictures...") + + @Valid + + public List getAttachment() { + return attachment; + } + + public void setAttachment(List attachment) { + this.attachment = attachment; + } + + public ProductSpecificationUpdate bundledProductSpecification(List bundledProductSpecification) { + this.bundledProductSpecification = bundledProductSpecification; + return this; + } + + public ProductSpecificationUpdate addBundledProductSpecificationItem(BundledProductSpecification bundledProductSpecificationItem) { + if (this.bundledProductSpecification == null) { + this.bundledProductSpecification = new ArrayList<>(); + } + this.bundledProductSpecification.add(bundledProductSpecificationItem); + return this; + } + + /** + * A type of ProductSpecification that belongs to a grouping of ProductSpecifications made available to the market. It inherits of all attributes of ProductSpecification. + * @return bundledProductSpecification + **/ + @Schema(description = "A type of ProductSpecification that belongs to a grouping of ProductSpecifications made available to the market. It inherits of all attributes of ProductSpecification.") + + @Valid + + public List getBundledProductSpecification() { + return bundledProductSpecification; + } + + public void setBundledProductSpecification(List bundledProductSpecification) { + this.bundledProductSpecification = bundledProductSpecification; + } + + public ProductSpecificationUpdate productSpecCharacteristic(List productSpecCharacteristic) { + this.productSpecCharacteristic = productSpecCharacteristic; + return this; + } + + public ProductSpecificationUpdate addProductSpecCharacteristicItem(ProductSpecificationCharacteristic productSpecCharacteristicItem) { + if (this.productSpecCharacteristic == null) { + this.productSpecCharacteristic = new ArrayList<>(); + } + this.productSpecCharacteristic.add(productSpecCharacteristicItem); + return this; + } + + /** + * A characteristic quality or distinctive feature of a ProductSpecification. The characteristic can be take on a discrete value, such as color, can take on a range of values, (for example, sensitivity of 100-240 mV), or can be derived from a formula (for example, usage time (hrs) = 30 - talk time *3). Certain characteristics, such as color, may be configured during the ordering or some other process. + * @return productSpecCharacteristic + **/ + @Schema(description = "A characteristic quality or distinctive feature of a ProductSpecification. The characteristic can be take on a discrete value, such as color, can take on a range of values, (for example, sensitivity of 100-240 mV), or can be derived from a formula (for example, usage time (hrs) = 30 - talk time *3). Certain characteristics, such as color, may be configured during the ordering or some other process.") + + @Valid + + public List getProductSpecCharacteristic() { + return productSpecCharacteristic; + } + + public void setProductSpecCharacteristic(List productSpecCharacteristic) { + this.productSpecCharacteristic = productSpecCharacteristic; + } + + public ProductSpecificationUpdate productSpecificationRelationship(List productSpecificationRelationship) { + this.productSpecificationRelationship = productSpecificationRelationship; + return this; + } + + public ProductSpecificationUpdate addProductSpecificationRelationshipItem(ProductSpecificationRelationship productSpecificationRelationshipItem) { + if (this.productSpecificationRelationship == null) { + this.productSpecificationRelationship = new ArrayList<>(); + } + this.productSpecificationRelationship.add(productSpecificationRelationshipItem); + return this; + } + + /** + * A migration, substitution, dependency or exclusivity relationship between/among product specifications. + * @return productSpecificationRelationship + **/ + @Schema(description = "A migration, substitution, dependency or exclusivity relationship between/among product specifications.") + + @Valid + + public List getProductSpecificationRelationship() { + return productSpecificationRelationship; + } + + public void setProductSpecificationRelationship(List productSpecificationRelationship) { + this.productSpecificationRelationship = productSpecificationRelationship; + } + + public ProductSpecificationUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ProductSpecificationUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * A related party defines party or party role linked to a specific entity. + * @return relatedParty + **/ + @Schema(description = "A related party defines party or party role linked to a specific entity.") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public ProductSpecificationUpdate resourceSpecification(List resourceSpecification) { + this.resourceSpecification = resourceSpecification; + return this; + } + + public ProductSpecificationUpdate addResourceSpecificationItem(ResourceSpecificationRef resourceSpecificationItem) { + if (this.resourceSpecification == null) { + this.resourceSpecification = new ArrayList<>(); + } + this.resourceSpecification.add(resourceSpecificationItem); + return this; + } + + /** + * The ResourceSpecification is required to realize a ProductSpecification. + * @return resourceSpecification + **/ + @Schema(description = "The ResourceSpecification is required to realize a ProductSpecification.") + + @Valid + + public List getResourceSpecification() { + return resourceSpecification; + } + + public void setResourceSpecification(List resourceSpecification) { + this.resourceSpecification = resourceSpecification; + } + + public ProductSpecificationUpdate serviceSpecification(List serviceSpecification) { + this.serviceSpecification = serviceSpecification; + return this; + } + + public ProductSpecificationUpdate addServiceSpecificationItem(ServiceSpecificationRef serviceSpecificationItem) { + if (this.serviceSpecification == null) { + this.serviceSpecification = new ArrayList<>(); + } + this.serviceSpecification.add(serviceSpecificationItem); + return this; + } + + /** + * ServiceSpecification(s) required to realize a ProductSpecification. + * @return serviceSpecification + **/ + @Schema(description = "ServiceSpecification(s) required to realize a ProductSpecification.") + + @Valid + + public List getServiceSpecification() { + return serviceSpecification; + } + + public void setServiceSpecification(List serviceSpecification) { + this.serviceSpecification = serviceSpecification; + } + + public ProductSpecificationUpdate targetProductSchema(TargetProductSchema targetProductSchema) { + this.targetProductSchema = targetProductSchema; + return this; + } + + /** + * A target product schema reference. The reference object to the schema and type of target product which is described by product specification. + * @return targetProductSchema + **/ + @Schema(description = "A target product schema reference. The reference object to the schema and type of target product which is described by product specification.") + + @Valid + + public TargetProductSchema getTargetProductSchema() { + return targetProductSchema; + } + + public void setTargetProductSchema(TargetProductSchema targetProductSchema) { + this.targetProductSchema = targetProductSchema; + } + + public ProductSpecificationUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the product specification is valid + * @return validFor + **/ + @Schema(description = "The period for which the product specification is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ProductSpecificationUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ProductSpecificationUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductSpecificationUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductSpecificationUpdate productSpecificationUpdate = (ProductSpecificationUpdate) o; + return Objects.equals(this.brand, productSpecificationUpdate.brand) && + Objects.equals(this.description, productSpecificationUpdate.description) && + Objects.equals(this.isBundle, productSpecificationUpdate.isBundle) && + Objects.equals(this.lifecycleStatus, productSpecificationUpdate.lifecycleStatus) && + Objects.equals(this.name, productSpecificationUpdate.name) && + Objects.equals(this.productNumber, productSpecificationUpdate.productNumber) && + Objects.equals(this.version, productSpecificationUpdate.version) && + Objects.equals(this.attachment, productSpecificationUpdate.attachment) && + Objects.equals(this.bundledProductSpecification, productSpecificationUpdate.bundledProductSpecification) && + Objects.equals(this.productSpecCharacteristic, productSpecificationUpdate.productSpecCharacteristic) && + Objects.equals(this.productSpecificationRelationship, productSpecificationUpdate.productSpecificationRelationship) && + Objects.equals(this.relatedParty, productSpecificationUpdate.relatedParty) && + Objects.equals(this.resourceSpecification, productSpecificationUpdate.resourceSpecification) && + Objects.equals(this.serviceSpecification, productSpecificationUpdate.serviceSpecification) && + Objects.equals(this.targetProductSchema, productSpecificationUpdate.targetProductSchema) && + Objects.equals(this.validFor, productSpecificationUpdate.validFor) && + Objects.equals(this.baseType, productSpecificationUpdate.baseType) && + Objects.equals(this.schemaLocation, productSpecificationUpdate.schemaLocation) && + Objects.equals(this.type, productSpecificationUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(brand, description, isBundle, lifecycleStatus, name, productNumber, version, attachment, bundledProductSpecification, productSpecCharacteristic, productSpecificationRelationship, relatedParty, resourceSpecification, serviceSpecification, targetProductSchema, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductSpecificationUpdate {\n"); + + sb.append(" brand: ").append(toIndentedString(brand)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" productNumber: ").append(toIndentedString(productNumber)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" bundledProductSpecification: ").append(toIndentedString(bundledProductSpecification)).append("\n"); + sb.append(" productSpecCharacteristic: ").append(toIndentedString(productSpecCharacteristic)).append("\n"); + sb.append(" productSpecificationRelationship: ").append(toIndentedString(productSpecificationRelationship)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" resourceSpecification: ").append(toIndentedString(resourceSpecification)).append("\n"); + sb.append(" serviceSpecification: ").append(toIndentedString(serviceSpecification)).append("\n"); + sb.append(" targetProductSchema: ").append(toIndentedString(targetProductSchema)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ResourceCandidateRef.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ResourceCandidateRef.java new file mode 100644 index 0000000..11d2739 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ResourceCandidateRef.java @@ -0,0 +1,139 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * ResourceCandidate reference: A resource candidate is an entity that makes a ResourceSpecification available to a catalog. + */ +@Schema(description = "ResourceCandidate reference: A resource candidate is an entity that makes a ResourceSpecification available to a catalog.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity(name = "ResourceCandidateRef") +public class ResourceCandidateRef extends BaseEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("@referredType") + private String referredType = null; + + + /** + * Unique identifier of the resource candidate + * @return id + **/ + @Schema(description = "Unique identifier of the resource candidate") + @NotNull + public String getId() { + return id; +} + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + + + public ResourceCandidateRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCandidateRef resourceCandidateRef = (ResourceCandidateRef) o; + return Objects.equals(this.id, resourceCandidateRef.id) && + Objects.equals(this.href, resourceCandidateRef.href) && + Objects.equals(this.name, resourceCandidateRef.name) && + Objects.equals(this.version, resourceCandidateRef.version) && + Objects.equals(this.baseType, resourceCandidateRef.baseType) && + Objects.equals(this.schemaLocation, resourceCandidateRef.schemaLocation) && + Objects.equals(this.type, resourceCandidateRef.type) && + Objects.equals(this.referredType, resourceCandidateRef.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, version, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCandidateRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/SLARef.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/SLARef.java new file mode 100644 index 0000000..9854240 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/SLARef.java @@ -0,0 +1,137 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * ServiceLevelAgreement reference: A service level agreement (SLA) is a type of agreement that represents a formal negotiated agreement between two parties designed to create a common understanding about products, services, priorities, responsibilities, and so forth. The SLA is a set of appropriate procedures and targets formally or informally agreed between parties in order to achieve and maintain specified Quality of Service. + */ +@Schema(description = "ServiceLevelAgreement reference: A service level agreement (SLA) is a type of agreement that represents a formal negotiated agreement between two parties designed to create a common understanding about products, services, priorities, responsibilities, and so forth. The SLA is a set of appropriate procedures and targets formally or informally agreed between parties in order to achieve and maintain specified Quality of Service.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity(name = "SLARef") +public class SLARef extends BaseEntity { + @JsonProperty("id") + private String id = null; + + + @JsonProperty("@referredType") + private String referredType = null; + + /** + * Unique identifier of service level agreement + * @return id + **/ + @Schema(description = "Unique identifier of service level agreement") + @NotNull + public String getId() { + return id; +} + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + + + public SLARef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SLARef slARef = (SLARef) o; + return Objects.equals(this.id, slARef.id) && + Objects.equals(this.href, slARef.href) && + Objects.equals(this.name, slARef.name) && + Objects.equals(this.baseType, slARef.baseType) && + Objects.equals(this.schemaLocation, slARef.schemaLocation) && + Objects.equals(this.type, slARef.type) && + Objects.equals(this.referredType, slARef.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SLARef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/ServiceCandidateRef.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/ServiceCandidateRef.java new file mode 100644 index 0000000..607d475 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/ServiceCandidateRef.java @@ -0,0 +1,132 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * ServiceCandidate reference. ServiceCandidate is an entity that makes a ServiceSpecification available to a catalog. + */ +@Schema(description = "ServiceCandidate reference. ServiceCandidate is an entity that makes a ServiceSpecification available to a catalog.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity(name = "ServiceCandidateRef") +public class ServiceCandidateRef extends BaseEntity { + @JsonProperty("id") + private String id = null; + + + @JsonProperty("@referredType") + private String referredType = null; + + /** + * Unique identifier of the service candidate + * @return id + **/ + @Schema(description = "Unique identifier of the service candidate") + @NotNull + public String getId() { + return id; +} + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCandidateRef serviceCandidateRef = (ServiceCandidateRef) o; + return Objects.equals(this.id, serviceCandidateRef.id) && + Objects.equals(this.href, serviceCandidateRef.href) && + Objects.equals(this.name, serviceCandidateRef.name) && + Objects.equals(this.version, serviceCandidateRef.version) && + Objects.equals(this.baseType, serviceCandidateRef.baseType) && + Objects.equals(this.schemaLocation, serviceCandidateRef.schemaLocation) && + Objects.equals(this.type, serviceCandidateRef.type) && + Objects.equals(this.referredType, serviceCandidateRef.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, version, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCandidateRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/TargetProductSchema.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/TargetProductSchema.java new file mode 100644 index 0000000..f695fc7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/TargetProductSchema.java @@ -0,0 +1,92 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * The reference object to the schema and type of target product which is described by product specification + */ +@Schema(description = "The reference object to the schema and type of target product which is described by product specification") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity(name = "TargetProductSchema") +@JsonIgnoreProperties( {"uuid"} ) +public class TargetProductSchema extends BaseRootEntity { + + + public TargetProductSchema baseType(String baseType) { + this.baseType = baseType; + return this; + } + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TargetProductSchema targetProductSchema = (TargetProductSchema) o; + return Objects.equals(this.baseType, targetProductSchema.baseType) && + Objects.equals(this.schemaLocation, targetProductSchema.schemaLocation) && + Objects.equals(this.type, targetProductSchema.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TargetProductSchema {\n"); + + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/TargetServiceSchema.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/TargetServiceSchema.java new file mode 100644 index 0000000..7fa1d99 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/TargetServiceSchema.java @@ -0,0 +1,153 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * The reference object to the schema and type of target service which is described by service specification + */ +@Schema(description = "The reference object to the schema and type of target service which is described by service specification") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +public class TargetServiceSchema { + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public TargetServiceSchema baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public TargetServiceSchema schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * This field provides a link to the schema describing the target service + * @return schemaLocation + **/ + @Schema(description = "This field provides a link to the schema describing the target service") + @NotNull + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public TargetServiceSchema type(String type) { + this.type = type; + return this; + } + + /** + * Class type of the target service + * @return type + **/ + @Schema(description = "Class type of the target service") + @NotNull + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TargetServiceSchema targetServiceSchema = (TargetServiceSchema) o; + return Objects.equals(this.baseType, targetServiceSchema.baseType) && + Objects.equals(this.schemaLocation, targetServiceSchema.schemaLocation) && + Objects.equals(this.type, targetServiceSchema.type); + } + + @Override + public int hashCode() { + return Objects.hash(baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TargetServiceSchema {\n"); + + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/model/TaxItem.java b/src/main/java/org/etsi/osl/tmf/pcm620/model/TaxItem.java new file mode 100644 index 0000000..6ceac97 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/model/TaxItem.java @@ -0,0 +1,160 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; + +/** + * A tax item is created for each tax rate and tax type used in the bill. + */ +@Schema(description = "A tax item is created for each tax rate and tax type used in the bill.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:15:57.249+03:00") + +@Entity +public class TaxItem extends BaseRootEntity{ + @JsonProperty("taxCategory") + private String taxCategory = null; + + @JsonProperty("taxRate") + private Float taxRate = null; + + @JsonProperty("taxAmount") + private Money taxAmount = null; + + + public TaxItem taxCategory(String taxCategory) { + this.taxCategory = taxCategory; + return this; + } + + /** + * Tax category + * @return taxCategory + **/ + @Schema(description = "Tax category") + + + public String getTaxCategory() { + return taxCategory; + } + + public void setTaxCategory(String taxCategory) { + this.taxCategory = taxCategory; + } + + public TaxItem taxRate(Float taxRate) { + this.taxRate = taxRate; + return this; + } + + /** + * Applied rate of the tax + * @return taxRate + **/ + @Schema(description = "Applied rate of the tax") + + + public Float getTaxRate() { + return taxRate; + } + + public void setTaxRate(Float taxRate) { + this.taxRate = taxRate; + } + + public TaxItem taxAmount(Money taxAmount) { + this.taxAmount = taxAmount; + return this; + } + + /** + * Amount of tax expressed in the given currency + * @return taxAmount + **/ + @Schema(description = "Amount of tax expressed in the given currency") + + @Valid + + public Money getTaxAmount() { + return taxAmount; + } + + public void setTaxAmount(Money taxAmount) { + this.taxAmount = taxAmount; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TaxItem taxItem = (TaxItem) o; + return Objects.equals(this.taxCategory, taxItem.taxCategory) && + Objects.equals(this.taxRate, taxItem.taxRate) && + Objects.equals(this.taxAmount, taxItem.taxAmount) && + Objects.equals(this.baseType, taxItem.baseType) && + Objects.equals(this.schemaLocation, taxItem.schemaLocation) && + Objects.equals(this.type, taxItem.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(taxCategory, taxRate, taxAmount, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TaxItem {\n"); + + sb.append(" taxCategory: ").append(toIndentedString(taxCategory)).append("\n"); + sb.append(" taxRate: ").append(toIndentedString(taxRate)).append("\n"); + sb.append(" taxAmount: ").append(toIndentedString(taxAmount)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/repo/AttachmentRepository.java b/src/main/java/org/etsi/osl/tmf/pcm620/repo/AttachmentRepository.java new file mode 100644 index 0000000..99741aa --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/repo/AttachmentRepository.java @@ -0,0 +1,39 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.common.model.Attachment; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface AttachmentRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + List findByNameContaining(String name); + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductCatalogRepository.java b/src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductCatalogRepository.java new file mode 100644 index 0000000..37a7a2b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductCatalogRepository.java @@ -0,0 +1,37 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.pcm620.model.Catalog; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface ProductCatalogRepository extends CrudRepository, PagingAndSortingRepository{ + + Optional findByUuid(String id); + + Optional findByName(String aName); + + List findByOrderByName(); +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductCategoriesRepository.java b/src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductCategoriesRepository.java new file mode 100644 index 0000000..954154e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductCategoriesRepository.java @@ -0,0 +1,38 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.pcm620.model.Category; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface ProductCategoriesRepository extends CrudRepository,PagingAndSortingRepository { + + Optional findByUuid(String id); + + Optional findByName(String aName); + + List findByOrderByName(); + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductOfferingPriceRepository.java b/src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductOfferingPriceRepository.java new file mode 100644 index 0000000..1f7cdef --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductOfferingPriceRepository.java @@ -0,0 +1,38 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingPrice; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface ProductOfferingPriceRepository extends CrudRepository, PagingAndSortingRepository { + + Optional findByUuid(String id); + + List findByNameAndVersion(String aname, String aversion); + + List findByOrderByName(); + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductOfferingRepository.java b/src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductOfferingRepository.java new file mode 100644 index 0000000..7661e35 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductOfferingRepository.java @@ -0,0 +1,38 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.pcm620.model.ProductOffering; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface ProductOfferingRepository extends CrudRepository,PagingAndSortingRepository { + + Optional findByUuid(String id); + + List findByNameAndVersion(String aname, String aversion); + + List findByOrderByName(); + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductSpecificationRepository.java b/src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductSpecificationRepository.java new file mode 100644 index 0000000..689acbb --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/repo/ProductSpecificationRepository.java @@ -0,0 +1,38 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.pcm620.model.ProductSpecification; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface ProductSpecificationRepository extends CrudRepository, PagingAndSortingRepository { + + Optional findByUuid(String id); + + List findByNameAndVersion(String aname, String aversion); + + List findByOrderByName(); + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/reposervices/AttachmentRepoService.java b/src/main/java/org/etsi/osl/tmf/pcm620/reposervices/AttachmentRepoService.java new file mode 100644 index 0000000..6f994e5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/reposervices/AttachmentRepoService.java @@ -0,0 +1,58 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.reposervices; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.common.model.Attachment; +import org.etsi.osl.tmf.pcm620.repo.AttachmentRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import jakarta.validation.Valid; + + +@Service +public class AttachmentRepoService { + + + @Autowired + AttachmentRepository attachmentRepo; + + public Attachment addAttachment(Attachment c) { + + return this.attachmentRepo.save(c); + } + + public Attachment updateAttachment(@Valid Attachment attachment) { + return this.attachmentRepo.save( attachment ); + } + + public Attachment findByUuid(String attid) { + Optional ret = this.attachmentRepo.findByUuid(attid); + return ret.orElse(null); + + } + + public List findByLogoName(String attid) { + + List ret = this.attachmentRepo.findByNameContaining(attid); + return ret; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductCatalogRepoService.java b/src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductCatalogRepoService.java new file mode 100644 index 0000000..126999b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductCatalogRepoService.java @@ -0,0 +1,135 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.reposervices; + +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.common.model.ELifecycle; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.pcm620.model.Catalog; +import org.etsi.osl.tmf.pcm620.model.CatalogCreate; +import org.etsi.osl.tmf.pcm620.model.CatalogUpdate; +import org.etsi.osl.tmf.pcm620.model.Category; +import org.etsi.osl.tmf.pcm620.model.CategoryRef; +import org.etsi.osl.tmf.pcm620.repo.ProductCatalogRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import jakarta.validation.Valid; + +@Service +public class ProductCatalogRepoService { + + + @Autowired + ProductCatalogRepository catalogRepo; + + @Autowired + ProductCategoryRepoService categRepoService; + + + public Catalog addCatalog(Catalog c) { + + return this.catalogRepo.save(c); + } + + public Catalog addCatalog(@Valid CatalogCreate serviceCat) { + + Catalog sc = new Catalog(); + + sc = updateCatalogDataFromAPICall(sc, serviceCat); + return this.catalogRepo.save(sc); + } + + public List findAll() { + return (List) this.catalogRepo.findByOrderByName(); + } + + public Catalog findById(String id) { + Optional optionalCat = this.catalogRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + + public Catalog findByName(String aName) { + Optional optionalCat = this.catalogRepo.findByName( aName ); + return optionalCat.orElse(null); + } + + public Void deleteById(String id) { + Optional optionalCat = this.catalogRepo.findByUuid(id); + this.catalogRepo.delete(optionalCat.get()); + return null; + + } + + public Catalog updateCatalog(String id, CatalogUpdate Catalog) { + + Optional optSC = catalogRepo.findByUuid(id); + if (optSC == null) { + return null; + } + Catalog sc = optSC.get(); + sc = updateCatalogDataFromAPICall(sc, Catalog); + return this.catalogRepo.save(sc); + } + + public Catalog updateCatalogDataFromAPICall(Catalog sc, CatalogUpdate Catalog) { + + if (Catalog.getName()!=null){ + sc.setName(Catalog.getName()); + } + if (Catalog.getDescription()!=null){ + sc.setDescription(Catalog.getDescription()); + } + if (Catalog.getLifecycleStatus() != null) { + sc.setLifecycleStatusEnum(ELifecycle.getEnum(Catalog.getLifecycleStatus())); + } + if (Catalog.getVersion() != null) { + sc.setVersion(Catalog.getVersion()); + } + sc.setLastUpdate(OffsetDateTime.now(ZoneOffset.UTC)); + TimePeriod tp = new TimePeriod(); + if (Catalog.getValidFor() != null) { + tp.setStartDateTime(Catalog.getValidFor().getStartDateTime()); + tp.setEndDateTime(Catalog.getValidFor().getEndDateTime()); + sc.setValidFor(tp); + } + + // add any new category + if (Catalog.getCategory() != null) { + + sc.getCategoryObj().clear(); + for (CategoryRef scref : Catalog.getCategory()) { + Category servcat = this.categRepoService.findByUuid(scref.getId()); + sc.addCategory(servcat); + } + } + + return sc; + + } + + public Catalog updateCatalog(Catalog scatalog) { + return this.catalogRepo.save(scatalog); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductCategoryRepoService.java b/src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductCategoryRepoService.java new file mode 100644 index 0000000..60ebcca --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductCategoryRepoService.java @@ -0,0 +1,324 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.reposervices; + +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.etsi.osl.tmf.common.model.ELifecycle; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.pcm620.model.Category; +import org.etsi.osl.tmf.pcm620.model.CategoryCreate; +import org.etsi.osl.tmf.pcm620.model.CategoryRef; +import org.etsi.osl.tmf.pcm620.model.CategoryUpdate; +import org.etsi.osl.tmf.pcm620.model.ProductOffering; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingRef; +import org.etsi.osl.tmf.pcm620.repo.ProductCatalogRepository; +import org.etsi.osl.tmf.pcm620.repo.ProductCategoriesRepository; +import org.etsi.osl.tmf.pcm620.repo.ProductOfferingRepository; +import org.hibernate.Hibernate; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + +@Service +public class ProductCategoryRepoService { + + @Autowired + ProductCategoriesRepository categsRepo; + + @Autowired + ProductCatalogRepository catalogRepo; + + @Autowired + ProductOfferingRepository prodsOfferingRepo; + + private SessionFactory sessionFactory; + + /** + * from + * https://stackoverflow.com/questions/25063995/spring-boot-handle-to-hibernate-sessionfactory + * + * @param factory + */ + @Autowired + public ProductCategoryRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + + public Category addCategory(Category c) { + + return this.categsRepo.save( c ); + } + + public Category addCategory(@Valid CategoryCreate Category) { + + + Category sc = new Category() ; + sc = updateCategoryDataFromAPICall(sc, Category); + return this.categsRepo.save( sc ); + + } + + public List findAll() { + return (List) this.categsRepo.findByOrderByName(); + } + + public Category findByUuid(String id) { + Optional optionalCat = this.categsRepo.findByUuid( id ); + return optionalCat + .orElse(null); + } + + + public Category findByIdEager(String id) { +// Optional optionalCat = this.categsRepo.findByIdEager( id ); +// return optionalCat +// .orElse(null); + + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + Category dd = null; + try { + dd = (Category) session.get(Category.class, id); + Hibernate.initialize( dd.getCategoryObj() ); + Hibernate.initialize( dd.getProductOfferingRefs() ); + for (ProductOfferingRef sc : dd.getProductOfferingRefs()) { + Hibernate.initialize(sc ); + } + + tx.commit(); + } finally { + session.close(); + } + return dd; + } + + + + + + public boolean deleteById(String id) { + Optional optionalCat = this.categsRepo.findByUuid( id ); + if ( optionalCat.get().getCategoryObj().size()>0 ) { + return false; //has children + } + + + if ( optionalCat.get().getParentId() != null ) { + Category parentCat = (this.categsRepo.findByUuid( optionalCat.get().getParentId() )).get(); + + //remove from parent category + for (Category ss : parentCat.getCategoryObj()) { + if ( ss.getId() == optionalCat.get().getId() ) { + parentCat.getCategoryObj().remove(ss); + break; + } + } + parentCat = this.categsRepo.save(parentCat); + } + + + this.categsRepo.delete( optionalCat.get()); + return true; + + } + + public Category updateCategory(String id, @Valid CategoryUpdate Category) { + Optional optionalCat = this.categsRepo.findByUuid( id ); + if ( optionalCat == null ) { + return null; + } + + Category sc = optionalCat.get(); + sc = updateCategoryDataFromAPICall(sc, Category); + return this.categsRepo.save( sc ); + } + + public Category updateCategoryDataFromAPICall( Category acat, CategoryUpdate prodCatUpd ) + { + if (prodCatUpd.getName()!=null) { + acat.setName( prodCatUpd.getName() ); + } + if (prodCatUpd.getDescription()!=null) { + acat.setDescription( prodCatUpd.getDescription()); + } + if ( prodCatUpd.isIsRoot() != null ) { + acat.setIsRoot( prodCatUpd.isIsRoot()); + } + + if ( prodCatUpd.getLifecycleStatus() != null ) { + acat.setLifecycleStatusEnum ( ELifecycle.getEnum( prodCatUpd.getLifecycleStatus() ) ); + } + + + if ( prodCatUpd.getVersion() != null ) { + acat.setVersion( prodCatUpd.getVersion() ); + } + acat.setLastUpdate( OffsetDateTime.now(ZoneOffset.UTC) ); + TimePeriod tp = new TimePeriod(); + if ( prodCatUpd.getValidFor() != null ) { + tp.setStartDateTime( prodCatUpd.getValidFor().getStartDateTime() ); + tp.setEndDateTime( prodCatUpd.getValidFor().getEndDateTime() ); + acat.setValidFor( tp ); + } + + if ( prodCatUpd.getProductOffering() != null ) { + //reattach fromDB + Map idAddedUpdated = new HashMap<>(); + for (ProductOfferingRef por : prodCatUpd.getProductOffering()) { + //find by id and reload it here. + boolean idexists = false; + for (ProductOfferingRef originalProfOffRef : acat.getProductOfferingRefs()) { + if ( originalProfOffRef.getId().equals( por.getId())) { + idexists = true; + idAddedUpdated.put( originalProfOffRef.getId(), true); + break; + } + } + if (!idexists) { + Optional profOffToAdd = this.prodsOfferingRepo.findByUuid( por.getId() ); + if ( profOffToAdd.isPresent() ) { + ProductOffering poffget = profOffToAdd.get(); + + + acat.getProductOfferingObj().add(poffget); + idAddedUpdated.put( poffget.getId(), true); + + + + } + } + } + List toRemove = new ArrayList<>(); + for (ProductOfferingRef ss : acat.getProductOfferingRefs()) { + if ( idAddedUpdated.get( ss.getId() ) == null ) { + toRemove.add(ss); + } + } + + for (ProductOfferingRef ar : toRemove) { + Optional profOffToDelete = this.prodsOfferingRepo.findByUuid( ar.getId() ); + if ( profOffToDelete.isPresent() ) { + acat.getProductOfferingObj().remove(profOffToDelete.get()); + + } + } + + } + + + if ( prodCatUpd.getSubCategory() !=null ) { + //reattach fromDB + Map idAddedUpdated = new HashMap<>(); + + for (CategoryRef ref : prodCatUpd.getSubCategory() ) { + //find by id and reload it here. + boolean idexists = false; + for (Category originalSCat : acat.getCategoryObj()) { + if ( originalSCat.getId().equals( ref.getId())) { + idexists = true; + idAddedUpdated.put( originalSCat.getId(), true); + break; + } + } + if (!idexists) { + Optional catToAdd = this.categsRepo.findByUuid( ref.getId() ); + if ( catToAdd.isPresent() ) { + Category scatadd = catToAdd.get(); + acat.getCategoryObj().add( scatadd ); + idAddedUpdated.put( ref.getId(), true); + + scatadd.setParentId( acat.getUuid()); + scatadd = this.categsRepo.save( scatadd ); + } + } + } + List toRemove = new ArrayList<>(); + for (Category ss : acat.getCategoryObj()) { + if ( idAddedUpdated.get( ss.getId() ) == null ) { + toRemove.add(ss); + } + } + + for (Category ar : toRemove) { + acat.getCategoryObj().remove(ar); + } + } + + +// if ( prodCatUpd.getServiceCandidate() !=null ) { +// //reattach fromDB +// Map idAddedUpdated = new HashMap<>(); +// +// for (ServiceCandidateRef ref : prodCatUpd.getServiceCandidate() ) { +// //find by id and reload it here. +// boolean idexists = false; +// for (ServiceCandidate originalSCat : acat.getServiceCandidateObj()) { +// if ( originalSCat.getId().equals( ref.getId())) { +// idexists = true; +// idAddedUpdated.put( originalSCat.getId(), true); +// break; +// } +// } +// if (!idexists) { +// Optional catToAdd = this.candidateRepo.findByUuid( ref.getId() ); +// if ( catToAdd.isPresent() ) { +// ServiceCandidate scatadd = catToAdd.get(); +// acat.getServiceCandidateObj().add( scatadd ); +// idAddedUpdated.put( ref.getId(), true); +// +// } +// } +// } +// List toRemove = new ArrayList<>(); +// for (ServiceCandidate ss : acat.getServiceCandidateObj()) { +// if ( idAddedUpdated.get( ss.getId() ) == null ) { +// toRemove.add(ss); +// } +// } +// +// for (ServiceCandidate ar : toRemove) { +// acat.getServiceCandidateObj().remove(ar); +// } +// } + + return acat; + } + + + public Category findByName(String aName) { + Optional optionalCat = this.categsRepo.findByName( aName ); + return optionalCat + .orElse(null); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductOfferingPriceRepoService.java b/src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductOfferingPriceRepoService.java new file mode 100644 index 0000000..bffff81 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductOfferingPriceRepoService.java @@ -0,0 +1,354 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.reposervices; + +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.etsi.osl.tmf.common.model.ELifecycle; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingPrice; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingPriceCreate; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingPriceUpdate; +import org.etsi.osl.tmf.pcm620.model.ProductSpecificationCharacteristicValueUse; +import org.etsi.osl.tmf.pcm620.repo.ProductOfferingPriceRepository; +import org.hibernate.Hibernate; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.transform.ResultTransformer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + +@Service +public class ProductOfferingPriceRepoService { + + + @Autowired + ProductOfferingPriceRepository prodsOfferingRepo; + + + + private SessionFactory sessionFactory; + + + /** + * from + * https://stackoverflow.com/questions/25063995/spring-boot-handle-to-hibernate-sessionfactory + * + * @param factory + */ + @Autowired + public ProductOfferingPriceRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + public ProductOfferingPrice addProductOfferingPrice(@Valid ProductOfferingPriceCreate serviceProductOfferingPrice) { + + ProductOfferingPrice serviceSpec = new ProductOfferingPrice(); + serviceSpec = this.updateProductOfferingPriceDataFromAPIcall(serviceSpec, serviceProductOfferingPrice); + serviceSpec = this.prodsOfferingRepo.save(serviceSpec); + + + return this.prodsOfferingRepo.save(serviceSpec); + } + + public List findAll() { + return (List) this.prodsOfferingRepo.findByOrderByName(); + } + + /** + * + * This findAll is optimized on fields. + * @param fields + * @param allParams + * @return + * @throws UnsupportedEncodingException + */ + @Transactional + public List findAll(@Valid String fields, Map allParams) + throws UnsupportedEncodingException { + + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + List alist = null; + try { +// String sql = "SELECT s FROM ProductOfferingPrice s"; + String sql = "SELECT " + + "s.uuid as uuid," + + "s.id as id," + + "s.name as name," + + "s.description as description," + + "s.isBundle as isBundle," + + "s.version as version," + + "s.type as type"; + + if (fields != null) { + String[] field = fields.split(","); + for (String f : field) { + sql += ", s." + f + " as " + f ; + } + + } + sql += " FROM ProductOfferingPrice s"; + if (allParams.size() > 0) { + sql += " WHERE "; + for (String pname : allParams.keySet()) { + sql += " " + pname + " LIKE "; + String pval = URLDecoder.decode(allParams.get(pname), StandardCharsets.UTF_8.toString()); + sql += "'" + pval + "'"; + } + + } + sql += " ORDER BY s.name"; + + + + List mapaEntity = session + .createQuery(sql ) + .setResultTransformer( new ResultTransformer() { + + @Override + public Object transformTuple(Object[] tuple, String[] aliases) { + Map result = new LinkedHashMap(tuple.length); + for (int i = 0; i < tuple.length; i++) { + String alias = aliases[i]; + if (alias.equals("type")) { + alias = "@type"; + } + if (alias != null) { + result.put(alias, tuple[i]); + } + } + + return result; + } + + @Override + public List transformList(List collection) { + return collection; + } + } ) + .list(); + +// //this will fetch the whole object fields +// if ( (( allParams!= null) && ( allParams.size()>0)) ) { +// List resultlist = new ArrayList<>(); +// for (ProductOfferingPrice s : alist) { +// resultlist.add( findByUuid( s.getUuid() )); +// } +// return resultlist; +// } + + + + return mapaEntity; + + + + + } finally { + tx.commit(); + session.close(); + } + + } + +// @Transactional(propagation=Propagation.REQUIRED , readOnly=true, +// noRollbackFor=Exception.class) + public ProductOfferingPrice findByUuid(String id) { + Optional optionalCat = this.prodsOfferingRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + public ProductOfferingPrice findByUuidEager(String id) { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); // instead of begin transaction, is it possible to continue? + ProductOfferingPrice dd = null; + try { + dd = session.get(ProductOfferingPrice.class, id); + if (dd == null) { + return this.findByUuid(id);// last resort + } + Hibernate.initialize(dd.getConstraint() ); + Hibernate.initialize(dd.getPlace() ); + Hibernate.initialize(dd.getBundledPopRelationship()); + Hibernate.initialize(dd.getProductOfferingTerm()); + Hibernate.initialize(dd.getTax() ); + for (ProductSpecificationCharacteristicValueUse schar : dd.getProdSpecCharValueUse()) { + Hibernate.initialize(schar.getProductSpecCharacteristicValue() ); + + } + Hibernate.initialize(dd.getPricingLogicAlgorithm() ) ; + + tx.commit(); + } finally { + session.close(); + } + return dd; + } + + public Void deleteByUuid(String id) { + Optional optionalCat = this.prodsOfferingRepo.findByUuid(id); + ProductOfferingPrice s = optionalCat.get(); + if (s == null) { + return null; + } + + + /** + * prior deleting we need to delete other dependency objects + */ + + this.prodsOfferingRepo.delete(s); + return null; + } + + + @Transactional + public ProductOfferingPrice updateProductOfferingPrice(String id, + @Valid ProductOfferingPriceUpdate aProductOfferingPrice) { + + ProductOfferingPrice s = this.findByUuid(id); + if (s == null) { + return null; + } + ProductOfferingPrice prodOff = s; + prodOff = this.updateProductOfferingPriceDataFromAPIcall(prodOff, aProductOfferingPrice); + + prodOff = this.prodsOfferingRepo.save(prodOff); + + + + return this.prodsOfferingRepo.save(prodOff); + + } + + + @Transactional + private ProductOfferingPrice updateProductOfferingPriceDataFromAPIcall(ProductOfferingPrice prodOffering, + ProductOfferingPriceUpdate prodOfferingUpd) { + + + + if (prodOfferingUpd.getName() != null) { + prodOffering.setName(prodOfferingUpd.getName()); + } + + if (prodOfferingUpd.getDescription() != null) { + prodOffering.setDescription(prodOfferingUpd.getDescription()); + + } + + if (prodOfferingUpd.isIsBundle() != null) { + prodOffering.isBundle(prodOfferingUpd.isIsBundle()); + } + + + + prodOffering.setLastUpdate(OffsetDateTime.now(ZoneOffset.UTC)); + + + if (prodOfferingUpd.getLifecycleStatus() != null) { + prodOffering.setLifecycleStatusEnum(ELifecycle.getEnum(prodOfferingUpd.getLifecycleStatus())); + } + + if (prodOfferingUpd.getVersion() != null) { + prodOffering.setVersion(prodOfferingUpd.getVersion()); + } + + + + + + + /** + * Update ServiceSpecCharacteristic list We need to compare by name, since IDs + * will not exist + */ + if (prodOfferingUpd.getProdSpecCharValueUse() != null) { + // reattach attachments fromDB + + Map idAddedUpdated = new HashMap<>(); + + for (ProductSpecificationCharacteristicValueUse charUpd : prodOfferingUpd.getProdSpecCharValueUse()) { + + boolean nameExists = false; + for (ProductSpecificationCharacteristicValueUse originalProdChar : prodOffering.getProdSpecCharValueUse()) { + if (originalProdChar.getName().equals(charUpd.getName())) { + nameExists = true; + idAddedUpdated.put(originalProdChar.getName(), true); + originalProdChar.updateWith(charUpd); + break; + } + } + + if (!nameExists) { + prodOffering.getProdSpecCharValueUse().add(new ProductSpecificationCharacteristicValueUse(charUpd)); + idAddedUpdated.put(charUpd.getName(), true); + } + + } + + List toRemove = new ArrayList<>(); + for (ProductSpecificationCharacteristicValueUse ss : prodOffering.getProdSpecCharValueUse()) { + if (idAddedUpdated.get(ss.getName()) == null) { + toRemove.add(ss); + } + } + + for (ProductSpecificationCharacteristicValueUse serviceSpecCharacteristic : toRemove) { + prodOffering.getProdSpecCharValueUse().remove(serviceSpecCharacteristic); + } + + } + + + + + + + TimePeriod tp = new TimePeriod(); + if (prodOfferingUpd.getValidFor() != null) { + tp.setStartDateTime(prodOfferingUpd.getValidFor().getStartDateTime()); + tp.setEndDateTime(prodOfferingUpd.getValidFor().getEndDateTime()); + prodOffering.setValidFor(tp); + } + + + + return prodOffering; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductOfferingRepoService.java b/src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductOfferingRepoService.java new file mode 100644 index 0000000..b53dd5b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductOfferingRepoService.java @@ -0,0 +1,546 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.reposervices; + +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.etsi.osl.tmf.am651.model.AgreementRef; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.ELifecycle; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.pcm620.model.BundledProductOffering; +import org.etsi.osl.tmf.pcm620.model.ProductOffering; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingCreate; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingPriceRef; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingUpdate; +import org.etsi.osl.tmf.pcm620.model.ProductSpecificationCharacteristicValueUse; +import org.etsi.osl.tmf.pcm620.repo.ProductOfferingRepository; +import org.hibernate.Hibernate; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.transform.ResultTransformer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + +@Service +public class ProductOfferingRepoService { + + + @Autowired + ProductOfferingRepository prodsOfferingRepo; + + + + private SessionFactory sessionFactory; + + + /** + * from + * https://stackoverflow.com/questions/25063995/spring-boot-handle-to-hibernate-sessionfactory + * + * @param factory + */ + @Autowired + public ProductOfferingRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + public ProductOffering addProductOffering(@Valid ProductOfferingCreate serviceProductOffering) { + + ProductOffering serviceSpec = new ProductOffering(); + serviceSpec = this.updateProductOfferingDataFromAPIcall(serviceSpec, serviceProductOffering); + serviceSpec = this.prodsOfferingRepo.save(serviceSpec); + + + return this.prodsOfferingRepo.save(serviceSpec); + } + + public List findAll() { + return (List) this.prodsOfferingRepo.findByOrderByName(); + } + + /** + * + * This findAll is optimized on fields. + * @param fields + * @param allParams + * @return + * @throws UnsupportedEncodingException + */ + @Transactional + public List findAll(@Valid String fields, Map allParams) + throws UnsupportedEncodingException { + + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + List alist = null; + try { +// String sql = "SELECT s FROM ProductOffering s"; + String sql = "SELECT " + + "s.uuid as uuid," + + "s.name as name," + + "s.description as description," + + "s.isBundle as isBundle," + + "s.version as version," + + "s.type as type"; + + if (fields != null) { + String[] field = fields.split(","); + for (String f : field) { + sql += ", s." + f + " as " + f ; + } + + } + sql += " FROM ProductOffering s"; + if (allParams.size() > 0) { + sql += " WHERE "; + for (String pname : allParams.keySet()) { + sql += " " + pname + " LIKE "; + String pval = URLDecoder.decode(allParams.get(pname), StandardCharsets.UTF_8.toString()); + sql += "'" + pval + "'"; + } + + } + sql += " ORDER BY s.name"; + + + + List mapaEntity = session + .createQuery(sql ) + .setResultTransformer( new ResultTransformer() { + + @Override + public Object transformTuple(Object[] tuple, String[] aliases) { + Map result = new LinkedHashMap(tuple.length); + for (int i = 0; i < tuple.length; i++) { + String alias = aliases[i]; + if (alias.equals("uuid")) { + result.put("id", tuple[i]); + } + if (alias.equals("type")) { + alias = "@type"; + } + if (alias != null) { + result.put(alias, tuple[i]); + } + } + + return result; + } + + @Override + public List transformList(List collection) { + return collection; + } + } ) + .list(); + +// //this will fetch the whole object fields +// if ( (( allParams!= null) && ( allParams.size()>0)) ) { +// List resultlist = new ArrayList<>(); +// for (ProductOffering s : alist) { +// resultlist.add( findByUuid( s.getUuid() )); +// } +// return resultlist; +// } + + + + return mapaEntity; + + + + + } finally { + tx.commit(); + session.close(); + } + + } + +// @Transactional(propagation=Propagation.REQUIRED , readOnly=true, +// noRollbackFor=Exception.class) + public ProductOffering findByUuid(String id) { + Optional optionalCat = this.prodsOfferingRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + public ProductOffering findByUuidEager(String id) { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); // instead of begin transaction, is it possible to continue? + ProductOffering dd = null; + try { + dd = session.get(ProductOffering.class, id); + if (dd == null) { + return this.findByUuid(id);// last resort + } + Hibernate.initialize(dd.getAttachment()); + Hibernate.initialize(dd.getAgreement() ); + Hibernate.initialize(dd.getBundledProductOffering() ); + Hibernate.initialize(dd.getCategory()); + Hibernate.initialize(dd.getMarketSegment()); + for (ProductSpecificationCharacteristicValueUse schar : dd.getProdSpecCharValueUse()) { + Hibernate.initialize(schar.getProductSpecCharacteristicValue() ); + + } + Hibernate.initialize(dd.getPlace() ); + Hibernate.initialize(dd.getProductOfferingPrice() ); + Hibernate.initialize(dd.getProductOfferingTerm() ); + Hibernate.initialize(dd.getServiceCandidate() ); + Hibernate.initialize(dd.getResourceCandidate() ); + + tx.commit(); + } finally { + session.close(); + } + return dd; + } + + public Void deleteByUuid(String id) { + Optional optionalCat = this.prodsOfferingRepo.findByUuid(id); + ProductOffering s = optionalCat.get(); + if (s == null) { + return null; + } + + + /** + * prior deleting we need to delete other dependency objects + */ + + this.prodsOfferingRepo.delete(s); + return null; + } + + + @Transactional + public ProductOffering updateProductOffering(String id, + @Valid ProductOfferingUpdate aProductOffering) { + + ProductOffering s = this.findByUuid(id); + if (s == null) { + return null; + } + ProductOffering prodOff = s; + prodOff = this.updateProductOfferingDataFromAPIcall(prodOff, aProductOffering); + + prodOff = this.prodsOfferingRepo.save(prodOff); + + + + return this.prodsOfferingRepo.save(prodOff); + + } + + + @Transactional + private ProductOffering updateProductOfferingDataFromAPIcall(ProductOffering prodOffering, + ProductOfferingUpdate prodOfferingUpd) { + + + + if (prodOfferingUpd.getName() != null) { + prodOffering.setName(prodOfferingUpd.getName()); + } + + if (prodOfferingUpd.getDescription() != null) { + prodOffering.setDescription(prodOfferingUpd.getDescription()); + + } + + if (prodOfferingUpd.isIsBundle() != null) { + prodOffering.isBundle(prodOfferingUpd.isIsBundle()); + } + + if (prodOfferingUpd.isIsSellable() != null) { + prodOffering.isSellable(prodOfferingUpd.isIsSellable()); + + } + + if (prodOfferingUpd.getStatusReason() != null) { + prodOffering.setStatusReason(prodOfferingUpd.getStatusReason()); + + } + + prodOffering.setLastUpdate(OffsetDateTime.now(ZoneOffset.UTC)); + + + if (prodOfferingUpd.getLifecycleStatus() != null) { + prodOffering.setLifecycleStatusEnum(ELifecycle.getEnum(prodOfferingUpd.getLifecycleStatus())); + } + + if (prodOfferingUpd.getVersion() != null) { + prodOffering.setVersion(prodOfferingUpd.getVersion()); + } + + if ( prodOfferingUpd.getServiceLevelAgreement() != null ) { + prodOffering.setServiceLevelAgreement( prodOfferingUpd.getServiceLevelAgreement() ); + } + + if ( prodOfferingUpd.getServiceCandidate() != null ) { + prodOffering.setServiceCandidate( prodOfferingUpd.getServiceCandidate() ); + } + + if ( prodOfferingUpd.getResourceCandidate() != null ) { + prodOffering.setResourceCandidate( prodOfferingUpd.getResourceCandidate() ); + } + + if ( prodOfferingUpd.getProductSpecification() != null ) { + prodOffering.setProductSpecification( prodOfferingUpd.getProductSpecification() ); + } + + + /** + * Update Attachment list + */ + if (prodOfferingUpd.getAttachment() != null) { + // reattach attachments fromDB + + Map idAddedUpdated = new HashMap<>(); + + for (AttachmentRefOrValue ar : prodOfferingUpd.getAttachment()) { + // find attachmet by id and reload it here. + // we need the attachment model from resource spec models + boolean idexists = false; + for (AttachmentRefOrValue orinalAtt : prodOffering.getAttachment()) { + if (orinalAtt.getId().equals(ar.getId())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getId(), true); + break; + } + } + + if (!idexists) { + prodOffering.getAttachment().add(ar); + idAddedUpdated.put(ar.getId(), true); + } + } + + List toRemove = new ArrayList<>(); + for (AttachmentRefOrValue ss : prodOffering.getAttachment()) { + if (idAddedUpdated.get(ss.getId()) == null) { + toRemove.add(ss); + } + } + + for (AttachmentRefOrValue ar : toRemove) { + prodOffering.getAttachment().remove(ar); + } + + } + + + + + + /** + * Update ServiceSpecCharacteristic list We need to compare by name, since IDs + * will not exist + */ + if (prodOfferingUpd.getProdSpecCharValueUse() != null) { + // reattach attachments fromDB + + Map idAddedUpdated = new HashMap<>(); + + for (ProductSpecificationCharacteristicValueUse charUpd : prodOfferingUpd.getProdSpecCharValueUse()) { + + boolean nameExists = false; + for (ProductSpecificationCharacteristicValueUse originalProdChar : prodOffering.getProdSpecCharValueUse()) { + if (originalProdChar.getName().equals(charUpd.getName())) { + nameExists = true; + idAddedUpdated.put(originalProdChar.getName(), true); + originalProdChar.updateWith(charUpd); + break; + } + } + + if (!nameExists) { + prodOffering.getProdSpecCharValueUse().add(new ProductSpecificationCharacteristicValueUse(charUpd)); + idAddedUpdated.put(charUpd.getName(), true); + } + + } + + List toRemove = new ArrayList<>(); + for (ProductSpecificationCharacteristicValueUse ss : prodOffering.getProdSpecCharValueUse()) { + if (idAddedUpdated.get(ss.getName()) == null) { + toRemove.add(ss); + } + } + + for (ProductSpecificationCharacteristicValueUse serviceSpecCharacteristic : toRemove) { + prodOffering.getProdSpecCharValueUse().remove(serviceSpecCharacteristic); + } + + } + + + + /** + * Update ProductOfferingPriceRef list + */ + if (prodOfferingUpd.getProductOfferingPrice() != null) { + + // reattach attachments fromDB + Map idAddedUpdated = new HashMap<>(); + + for (ProductOfferingPriceRef ar : prodOfferingUpd.getProductOfferingPrice()) { + // find attachmet by id and reload it here. + // we need the attachment model from resource spec models + boolean idexists = false; + for (ProductOfferingPriceRef orinalAtt : prodOffering.getProductOfferingPrice()) { + if (orinalAtt.getId().equals(ar.getId())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getId(), true); + break; + } + } + + if (!idexists) { + prodOffering.getProductOfferingPrice().add(ar); + idAddedUpdated.put(ar.getId(), true); + } + } + + List toRemove = new ArrayList<>(); + for (ProductOfferingPriceRef ss : prodOffering.getProductOfferingPrice()) { + if (idAddedUpdated.get(ss.getId()) == null) { + toRemove.add(ss); + } + } + + for (ProductOfferingPriceRef ar : toRemove) { + prodOffering.getProductOfferingPrice().remove(ar); + } + + } + + + + /** + * Update BundledProductOffering list + */ + if (prodOfferingUpd.getBundledProductOffering() != null) { + + // reattach attachments fromDB + Map idAddedUpdated = new HashMap<>(); + + for (BundledProductOffering ar : prodOfferingUpd.getBundledProductOffering()) { + // find attachmet by id and reload it here. + // we need the attachment model from resource spec models + boolean idexists = false; + for (BundledProductOffering orinalAtt : prodOffering.getBundledProductOffering()) { + if (orinalAtt.getId().equals(ar.getId())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getId(), true); + break; + } + } + + if (!idexists) { + prodOffering.getBundledProductOffering().add(ar); + idAddedUpdated.put(ar.getId(), true); + } + } + + List toRemove = new ArrayList<>(); + for (BundledProductOffering ss : prodOffering.getBundledProductOffering()) { + if (idAddedUpdated.get(ss.getId()) == null) { + toRemove.add(ss); + } + } + + for (BundledProductOffering ar : toRemove) { + prodOffering.getBundledProductOffering().remove(ar); + } + + } + + + + /** + * Update BundledProductOffering list + */ + if (prodOfferingUpd.getAgreement() != null) { + + // reattach attachments fromDB + Map idAddedUpdated = new HashMap<>(); + + for (AgreementRef ar : prodOfferingUpd.getAgreement()) { + // find attachmet by id and reload it here. + // we need the attachment model from resource spec models + boolean idexists = false; + for (AgreementRef orinalAtt : prodOffering.getAgreement()) { + if (orinalAtt.getId().equals(ar.getId())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getId(), true); + break; + } + } + + if (!idexists) { + prodOffering.getAgreement().add(ar); + idAddedUpdated.put(ar.getId(), true); + } + } + + List toRemove = new ArrayList<>(); + for (AgreementRef ss : prodOffering.getAgreement()) { + if (idAddedUpdated.get(ss.getId()) == null) { + toRemove.add(ss); + } + } + + for (AgreementRef ar : toRemove) { + prodOffering.getAgreement().remove(ar); + } + + } + + + TimePeriod tp = new TimePeriod(); + if (prodOfferingUpd.getValidFor() != null) { + tp.setStartDateTime(prodOfferingUpd.getValidFor().getStartDateTime()); + tp.setEndDateTime(prodOfferingUpd.getValidFor().getEndDateTime()); + prodOffering.setValidFor(tp); + } + + + + return prodOffering; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductSpecificationRepoService.java b/src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductSpecificationRepoService.java new file mode 100644 index 0000000..2994b2a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pcm620/reposervices/ProductSpecificationRepoService.java @@ -0,0 +1,601 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pcm620.reposervices; + +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.ELifecycle; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.etsi.osl.tmf.pcm620.model.BundledProductSpecification; +import org.etsi.osl.tmf.pcm620.model.ProductSpecification; +import org.etsi.osl.tmf.pcm620.model.ProductSpecificationCharacteristic; +import org.etsi.osl.tmf.pcm620.model.ProductSpecificationCreate; +import org.etsi.osl.tmf.pcm620.model.ProductSpecificationRelationship; +import org.etsi.osl.tmf.pcm620.model.ProductSpecificationUpdate; +import org.etsi.osl.tmf.pcm620.repo.ProductSpecificationRepository; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.hibernate.Hibernate; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.transform.ResultTransformer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + +@Service +public class ProductSpecificationRepoService { + + + @Autowired + ProductSpecificationRepository prodsOfferingRepo; + + + + private SessionFactory sessionFactory; + + + /** + * from + * https://stackoverflow.com/questions/25063995/spring-boot-handle-to-hibernate-sessionfactory + * + * @param factory + */ + @Autowired + public ProductSpecificationRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + public ProductSpecification addProductSpecification(@Valid ProductSpecificationCreate serviceProductSpecification) { + + ProductSpecification serviceSpec = new ProductSpecification(); + serviceSpec = this.updateProductSpecificationDataFromAPIcall(serviceSpec, serviceProductSpecification); + serviceSpec = this.prodsOfferingRepo.save(serviceSpec); + + + return this.prodsOfferingRepo.save(serviceSpec); + } + + public List findAll() { + return (List) this.prodsOfferingRepo.findByOrderByName(); + } + + /** + * + * This findAll is optimized on fields. + * @param fields + * @param allParams + * @return + * @throws UnsupportedEncodingException + */ + @Transactional + public List findAll(@Valid String fields, Map allParams) + throws UnsupportedEncodingException { + + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + List alist = null; + try { +// String sql = "SELECT s FROM ProductSpecification s"; + String sql = "SELECT " + + "s.uuid as uuid," + + "s.name as name," + + "s.description as description," + + "s.isBundle as isBundle," + + "s.version as version," + + "s.type as type"; + + if (fields != null) { + String[] field = fields.split(","); + for (String f : field) { + sql += ", s." + f + " as " + f ; + } + + } + sql += " FROM ProductSpecification s"; + if (allParams.size() > 0) { + sql += " WHERE "; + for (String pname : allParams.keySet()) { + sql += " " + pname + " LIKE "; + String pval = URLDecoder.decode(allParams.get(pname), StandardCharsets.UTF_8.toString()); + sql += "'" + pval + "'"; + } + + } + sql += " ORDER BY s.name"; + + + + List mapaEntity = session + .createQuery(sql ) + .setResultTransformer( new ResultTransformer() { + + @Override + public Object transformTuple(Object[] tuple, String[] aliases) { + Map result = new LinkedHashMap(tuple.length); + for (int i = 0; i < tuple.length; i++) { + String alias = aliases[i]; + if (alias.equals("uuid")) { + result.put("id", tuple[i]); + } + if (alias.equals("type")) { + alias = "@type"; + } + if (alias != null) { + result.put(alias, tuple[i]); + } + } + + return result; + } + + @Override + public List transformList(List collection) { + return collection; + } + } ) + .list(); + +// //this will fetch the whole object fields +// if ( (( allParams!= null) && ( allParams.size()>0)) ) { +// List resultlist = new ArrayList<>(); +// for (ProductSpecification s : alist) { +// resultlist.add( findByUuid( s.getUuid() )); +// } +// return resultlist; +// } + + + + return mapaEntity; + + + + + } finally { + tx.commit(); + session.close(); + } + + } + +// @Transactional(propagation=Propagation.REQUIRED , readOnly=true, +// noRollbackFor=Exception.class) + public ProductSpecification findByUuid(String id) { + Optional optionalCat = this.prodsOfferingRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + public ProductSpecification findByUuidEager(String id) { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); // instead of begin transaction, is it possible to continue? + ProductSpecification dd = null; + try { + dd = session.get(ProductSpecification.class, id); + if (dd == null) { + return this.findByUuid(id);// last resort + } + Hibernate.initialize(dd.getAttachment()); + Hibernate.initialize(dd.getRelatedParty() ); + Hibernate.initialize(dd.getBundledProductSpecification() ); + Hibernate.initialize(dd.getResourceSpecification() ); + Hibernate.initialize(dd.getServiceSpecification() ); + for (ProductSpecificationCharacteristic schar : dd.getProductSpecCharacteristic() ) { + Hibernate.initialize(schar.getProductSpecCharacteristicValue() ); + + } + + + tx.commit(); + } finally { + session.close(); + } + return dd; + } + + public Void deleteByUuid(String id) { + Optional optionalCat = this.prodsOfferingRepo.findByUuid(id); + ProductSpecification s = optionalCat.get(); + if (s == null) { + return null; + } + + + /** + * prior deleting we need to delete other dependency objects + */ + + this.prodsOfferingRepo.delete(s); + return null; + } + + + @Transactional + public ProductSpecification updateProductSpecification(String id, + @Valid ProductSpecificationUpdate aProductSpecification) { + + ProductSpecification s = this.findByUuid(id); + if (s == null) { + return null; + } + ProductSpecification prodOff = s; + prodOff = this.updateProductSpecificationDataFromAPIcall(prodOff, aProductSpecification); + + prodOff = this.prodsOfferingRepo.save(prodOff); + + + + return this.prodsOfferingRepo.save(prodOff); + + } + + + @Transactional + private ProductSpecification updateProductSpecificationDataFromAPIcall(ProductSpecification prodSpec, + ProductSpecificationUpdate prodSpecUpd) { + + + + if (prodSpecUpd.getName() != null) { + prodSpec.setName(prodSpecUpd.getName()); + } + + if (prodSpecUpd.getDescription() != null) { + prodSpec.setDescription(prodSpecUpd.getDescription()); + + } + + if (prodSpecUpd.isIsBundle() != null) { + prodSpec.isBundle(prodSpecUpd.isIsBundle()); + } + + if (prodSpecUpd.getBrand() != null) { + prodSpec.setBrand( prodSpecUpd.getBrand() ); + + } + + if (prodSpecUpd.getProductNumber() != null) { + prodSpec.setProductNumber(prodSpecUpd.getProductNumber()); + + } + + prodSpec.setLastUpdate(OffsetDateTime.now(ZoneOffset.UTC)); + + + if (prodSpecUpd.getLifecycleStatus() != null) { + prodSpec.setLifecycleStatusEnum(ELifecycle.getEnum(prodSpecUpd.getLifecycleStatus())); + } + + if (prodSpecUpd.getVersion() != null) { + prodSpec.setVersion(prodSpecUpd.getVersion()); + } + + + + /** + * Update Attachment list + */ + if (prodSpecUpd.getAttachment() != null) { + // reattach attachments fromDB + + Map idAddedUpdated = new HashMap<>(); + + for (AttachmentRefOrValue ar : prodSpecUpd.getAttachment()) { + // find attachmet by id and reload it here. + // we need the attachment model from resource spec models + boolean idexists = false; + for (AttachmentRefOrValue orinalAtt : prodSpec.getAttachment()) { + if (orinalAtt.getId().equals(ar.getId())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getId(), true); + break; + } + } + + if (!idexists) { + prodSpec.getAttachment().add(ar); + idAddedUpdated.put(ar.getId(), true); + } + } + + List toRemove = new ArrayList<>(); + for (AttachmentRefOrValue ss : prodSpec.getAttachment()) { + if (idAddedUpdated.get(ss.getId()) == null) { + toRemove.add(ss); + } + } + + for (AttachmentRefOrValue ar : toRemove) { + prodSpec.getAttachment().remove(ar); + } + + } + + + + + /** + * Update BundledProductSpecification list + */ + if (prodSpecUpd.getBundledProductSpecification() != null) { + + // reattach attachments fromDB + Map idAddedUpdated = new HashMap<>(); + + for (BundledProductSpecification ar : prodSpecUpd.getBundledProductSpecification()) { + // find attachmet by id and reload it here. + // we need the attachment model from resource spec models + boolean idexists = false; + for (BundledProductSpecification orinalAtt : prodSpec.getBundledProductSpecification()) { + if (orinalAtt.getId().equals(ar.getId())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getId(), true); + break; + } + } + + if (!idexists) { + prodSpec.getBundledProductSpecification().add(ar); + idAddedUpdated.put(ar.getId(), true); + } + } + + List toRemove = new ArrayList<>(); + for (BundledProductSpecification ss : prodSpec.getBundledProductSpecification()) { + if (idAddedUpdated.get(ss.getId()) == null) { + toRemove.add(ss); + } + } + + for (BundledProductSpecification ar : toRemove) { + prodSpec.getBundledProductSpecification().remove(ar); + } + + } + + + /** + * Update ProductSpecificationCharacteristic list + */ + if (prodSpecUpd.getProductSpecCharacteristic() != null) { + + // reattach attachments fromDB + Map idAddedUpdated = new HashMap<>(); + + for (ProductSpecificationCharacteristic ar : prodSpecUpd.getProductSpecCharacteristic()) { + // find attachmet by id and reload it here. + // we need the attachment model from resource spec models + boolean idexists = false; + for (ProductSpecificationCharacteristic orinalAtt : prodSpec.getProductSpecCharacteristic()) { + if (orinalAtt.getName().equals(ar.getName())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getName(), true); + break; + } + } + + if (!idexists) { + prodSpec.getProductSpecCharacteristic().add(ar); + idAddedUpdated.put(ar.getName(), true); + } + } + + List toRemove = new ArrayList<>(); + for (ProductSpecificationCharacteristic ss : prodSpec.getProductSpecCharacteristic()) { + if (idAddedUpdated.get(ss.getName()) == null) { + toRemove.add(ss); + } + } + + for (ProductSpecificationCharacteristic ar : toRemove) { + prodSpec.getProductSpecCharacteristic().remove(ar); + } + + } + + + + + /** + * Update ProductSpecificationRelationship list + */ + if (prodSpecUpd.getProductSpecificationRelationship() != null) { + + // reattach attachments fromDB + Map idAddedUpdated = new HashMap<>(); + + for (ProductSpecificationRelationship ar : prodSpecUpd.getProductSpecificationRelationship() ) { + // find attachmet by id and reload it here. + // we need the attachment model from resource spec models + boolean idexists = false; + for (ProductSpecificationRelationship orinalAtt : prodSpec.getProductSpecificationRelationship()) { + if (orinalAtt.getUuid().equals(ar.getUuid())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getUuid(), true); + break; + } + } + + if (!idexists) { + prodSpec.getProductSpecificationRelationship().add(ar); + idAddedUpdated.put(ar.getUuid(), true); + } + } + + List toRemove = new ArrayList<>(); + for (ProductSpecificationRelationship ss : prodSpec.getProductSpecificationRelationship()) { + if (idAddedUpdated.get(ss.getUuid()) == null) { + toRemove.add(ss); + } + } + + for (ProductSpecificationRelationship ar : toRemove) { + prodSpec.getProductSpecificationRelationship().remove(ar); + } + + } + + /** + * Update RelatedParty list + */ + if (prodSpecUpd.getRelatedParty() != null) { + + // reattach attachments fromDB + Map idAddedUpdated = new HashMap<>(); + + for (RelatedParty ar : prodSpecUpd.getRelatedParty() ) { + // find attachmet by id and reload it here. + // we need the attachment model from resource spec models + boolean idexists = false; + for (RelatedParty orinalAtt : prodSpec.getRelatedParty()) { + if (orinalAtt.getUuid().equals(ar.getUuid())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getUuid(), true); + break; + } + } + + if (!idexists) { + prodSpec.getRelatedParty().add(ar); + idAddedUpdated.put(ar.getUuid(), true); + } + } + + List toRemove = new ArrayList<>(); + for (RelatedParty ss : prodSpec.getRelatedParty()) { + if (idAddedUpdated.get(ss.getUuid()) == null) { + toRemove.add(ss); + } + } + + for (RelatedParty ar : toRemove) { + prodSpec.getRelatedParty().remove(ar); + } + + } + + + /** + * Update ResourceSpecificationRef list + */ + if (prodSpecUpd.getResourceSpecification() != null) { + + // reattach attachments fromDB + Map idAddedUpdated = new HashMap<>(); + + for (ResourceSpecificationRef ar : prodSpecUpd.getResourceSpecification() ) { + // find attachmet by id and reload it here. + // we need the attachment model from resource spec models + boolean idexists = false; + for (ResourceSpecificationRef orinalAtt : prodSpec.getResourceSpecification()) { + if (orinalAtt.getUuid().equals(ar.getUuid())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getUuid(), true); + break; + } + } + + if (!idexists) { + prodSpec.getResourceSpecification().add(ar); + idAddedUpdated.put(ar.getUuid(), true); + } + } + + List toRemove = new ArrayList<>(); + for (ResourceSpecificationRef ss : prodSpec.getResourceSpecification()) { + if (idAddedUpdated.get(ss.getUuid()) == null) { + toRemove.add(ss); + } + } + + for (ResourceSpecificationRef ar : toRemove) { + prodSpec.getResourceSpecification().remove(ar); + } + } + + /** + * Update ResourceSpecificationRef list + */ + if (prodSpecUpd.getServiceSpecification() != null) { + + // reattach attachments fromDB + Map idAddedUpdated = new HashMap<>(); + + for (ServiceSpecificationRef ar : prodSpecUpd.getServiceSpecification() ) { + // find attachmet by id and reload it here. + // we need the attachment model from resource spec models + boolean idexists = false; + for (ServiceSpecificationRef orinalAtt : prodSpec.getServiceSpecification()) { + if (orinalAtt.getUuid().equals(ar.getUuid())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getUuid(), true); + break; + } + } + + if (!idexists) { + prodSpec.getServiceSpecification().add(ar); + idAddedUpdated.put(ar.getUuid(), true); + } + } + + List toRemove = new ArrayList<>(); + for (ServiceSpecificationRef ss : prodSpec.getServiceSpecification()) { + if (idAddedUpdated.get(ss.getUuid()) == null) { + toRemove.add(ss); + } + } + + for (ServiceSpecificationRef ar : toRemove) { + prodSpec.getServiceSpecification().remove(ar); + } + } + + + TimePeriod tp = new TimePeriod(); + if (prodSpecUpd.getValidFor() != null) { + tp.setStartDateTime(prodSpecUpd.getValidFor().getStartDateTime()); + tp.setEndDateTime(prodSpecUpd.getValidFor().getEndDateTime()); + prodSpec.setValidFor(tp); + } + + + + return prodSpec; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/api/ApiException.java b/src/main/java/org/etsi/osl/tmf/pm632/api/ApiException.java new file mode 100644 index 0000000..6a6aac0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/api/ApiException.java @@ -0,0 +1,30 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/api/ApiOriginFilter.java b/src/main/java/org/etsi/osl/tmf/pm632/api/ApiOriginFilter.java new file mode 100644 index 0000000..88dcbed --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/api/ApiOriginFilter.java @@ -0,0 +1,51 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.api; + +import java.io.IOException; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class ApiOriginFilter implements jakarta.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/api/ApiResponseMessage.java b/src/main/java/org/etsi/osl/tmf/pm632/api/ApiResponseMessage.java new file mode 100644 index 0000000..a6b544e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/api/ApiResponseMessage.java @@ -0,0 +1,89 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.api; + +import jakarta.xml.bind.annotation.XmlTransient; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@jakarta.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/pm632/api/HubApi.java new file mode 100644 index 0000000..49a9b2a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/api/HubApi.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pm632.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pm632.model.EventSubscription; +import org.etsi.osl.tmf.pm632.model.EventSubscriptionInput; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Tag(name = "hub", description = "the hub API") +public interface HubApi { + + Logger log = LoggerFactory.getLogger(HubApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Register a listener", operationId = "registerListener", description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Subscribed" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Unregister a listener", operationId = "unregisterListener", description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method not allowed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/pm632/api/HubApiController.java new file mode 100644 index 0000000..f9ea2e6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/api/HubApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Controller("HubApiController632") +@RequestMapping("/party/v4/") +public class HubApiController implements HubApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public HubApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/api/IndividualApi.java b/src/main/java/org/etsi/osl/tmf/pm632/api/IndividualApi.java new file mode 100644 index 0000000..64bb315 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/api/IndividualApi.java @@ -0,0 +1,215 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pm632.api; + +import java.io.IOException; +import java.security.Principal; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pm632.model.Individual; +import org.etsi.osl.tmf.pm632.model.IndividualCreate; +import org.etsi.osl.tmf.pm632.model.IndividualUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Tag(name = "individual", description = "the individual API") +public interface IndividualApi { + + Logger log = LoggerFactory.getLogger(IndividualApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a Individual", operationId = "createIndividual", description = "This operation creates a Individual entity.", tags={ "individual", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/individual", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createIndividual(@Parameter(description = "The Individual to be created" ,required=true ) @Valid @RequestBody IndividualCreate individual) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"taxExemptionCertificate\" : [ { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"partyCharacteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"aristocraticTitle\" : \"aristocraticTitle\", \"gender\" : \"gender\", \"disability\" : [ { \"@baseType\" : \"@baseType\", \"disabilityCode\" : \"disabilityCode\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"disabilityName\" : \"disabilityName\", \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@baseType\" : \"@baseType\", \"disabilityCode\" : \"disabilityCode\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"disabilityName\" : \"disabilityName\", \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@type\" : \"@type\", \"formattedName\" : \"formattedName\", \"individualIdentification\" : [ { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" }, { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" } ], \"title\" : \"title\", \"legalName\" : \"legalName\", \"@baseType\" : \"@baseType\", \"countryOfBirth\" : \"countryOfBirth\", \"familyName\" : \"familyName\", \"skill\" : [ { \"skillName\" : \"skillName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"evaluatedLevel\" : \"evaluatedLevel\", \"skillCode\" : \"skillCode\", \"comment\" : \"comment\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"skillName\" : \"skillName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"evaluatedLevel\" : \"evaluatedLevel\", \"skillCode\" : \"skillCode\", \"comment\" : \"comment\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"deathDate\" : \"2000-01-23T04:56:07.000+00:00\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"creditRating\" : [ { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 }, { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 } ], \"generation\" : \"generation\", \"placeOfBirth\" : \"placeOfBirth\", \"givenName\" : \"givenName\", \"fullName\" : \"fullName\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"birthDate\" : \"2000-01-23T04:56:07.000+00:00\", \"externalReference\" : [ { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"languageAbility\" : [ { \"readingProficiency\" : \"readingProficiency\", \"writingProficiency\" : \"writingProficiency\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isFavouriteLanguage\" : true, \"speakingProficiency\" : \"speakingProficiency\", \"listeningProficiency\" : \"listeningProficiency\", \"languageCode\" : \"languageCode\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"languageName\" : \"languageName\" }, { \"readingProficiency\" : \"readingProficiency\", \"writingProficiency\" : \"writingProficiency\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isFavouriteLanguage\" : true, \"speakingProficiency\" : \"speakingProficiency\", \"listeningProficiency\" : \"listeningProficiency\", \"languageCode\" : \"languageCode\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"languageName\" : \"languageName\" } ], \"nationality\" : \"nationality\", \"preferredGivenName\" : \"preferredGivenName\", \"familyNamePrefix\" : \"familyNamePrefix\", \"location\" : \"location\", \"middleName\" : \"middleName\", \"otherName\" : [ { \"generation\" : \"generation\", \"aristocraticTitle\" : \"aristocraticTitle\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"formattedName\" : \"formattedName\", \"givenName\" : \"givenName\", \"fullName\" : \"fullName\", \"title\" : \"title\", \"legalName\" : \"legalName\", \"@baseType\" : \"@baseType\", \"preferredGivenName\" : \"preferredGivenName\", \"familyName\" : \"familyName\", \"familyNamePrefix\" : \"familyNamePrefix\", \"middleName\" : \"middleName\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"generation\" : \"generation\", \"aristocraticTitle\" : \"aristocraticTitle\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"formattedName\" : \"formattedName\", \"givenName\" : \"givenName\", \"fullName\" : \"fullName\", \"title\" : \"title\", \"legalName\" : \"legalName\", \"@baseType\" : \"@baseType\", \"preferredGivenName\" : \"preferredGivenName\", \"familyName\" : \"familyName\", \"familyNamePrefix\" : \"familyNamePrefix\", \"middleName\" : \"middleName\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"maritalStatus\" : \"maritalStatus\", \"status\" : { }}", Individual.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default IndividualApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a Individual", operationId = "deleteIndividual", description = "This operation deletes a Individual entity.", tags={ "individual", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/individual/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteIndividual(@Parameter(description = "Identifier of the Individual",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default IndividualApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find Individual objects", operationId = "listIndividual", description = "This operation list or find Individual entities" , tags={ "individual", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/individual", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listIndividual(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"taxExemptionCertificate\" : [ { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"partyCharacteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"aristocraticTitle\" : \"aristocraticTitle\", \"gender\" : \"gender\", \"disability\" : [ { \"@baseType\" : \"@baseType\", \"disabilityCode\" : \"disabilityCode\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"disabilityName\" : \"disabilityName\", \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@baseType\" : \"@baseType\", \"disabilityCode\" : \"disabilityCode\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"disabilityName\" : \"disabilityName\", \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@type\" : \"@type\", \"formattedName\" : \"formattedName\", \"individualIdentification\" : [ { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" }, { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" } ], \"title\" : \"title\", \"legalName\" : \"legalName\", \"@baseType\" : \"@baseType\", \"countryOfBirth\" : \"countryOfBirth\", \"familyName\" : \"familyName\", \"skill\" : [ { \"skillName\" : \"skillName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"evaluatedLevel\" : \"evaluatedLevel\", \"skillCode\" : \"skillCode\", \"comment\" : \"comment\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"skillName\" : \"skillName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"evaluatedLevel\" : \"evaluatedLevel\", \"skillCode\" : \"skillCode\", \"comment\" : \"comment\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"deathDate\" : \"2000-01-23T04:56:07.000+00:00\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"creditRating\" : [ { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 }, { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 } ], \"generation\" : \"generation\", \"placeOfBirth\" : \"placeOfBirth\", \"givenName\" : \"givenName\", \"fullName\" : \"fullName\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"birthDate\" : \"2000-01-23T04:56:07.000+00:00\", \"externalReference\" : [ { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"languageAbility\" : [ { \"readingProficiency\" : \"readingProficiency\", \"writingProficiency\" : \"writingProficiency\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isFavouriteLanguage\" : true, \"speakingProficiency\" : \"speakingProficiency\", \"listeningProficiency\" : \"listeningProficiency\", \"languageCode\" : \"languageCode\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"languageName\" : \"languageName\" }, { \"readingProficiency\" : \"readingProficiency\", \"writingProficiency\" : \"writingProficiency\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isFavouriteLanguage\" : true, \"speakingProficiency\" : \"speakingProficiency\", \"listeningProficiency\" : \"listeningProficiency\", \"languageCode\" : \"languageCode\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"languageName\" : \"languageName\" } ], \"nationality\" : \"nationality\", \"preferredGivenName\" : \"preferredGivenName\", \"familyNamePrefix\" : \"familyNamePrefix\", \"location\" : \"location\", \"middleName\" : \"middleName\", \"otherName\" : [ { \"generation\" : \"generation\", \"aristocraticTitle\" : \"aristocraticTitle\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"formattedName\" : \"formattedName\", \"givenName\" : \"givenName\", \"fullName\" : \"fullName\", \"title\" : \"title\", \"legalName\" : \"legalName\", \"@baseType\" : \"@baseType\", \"preferredGivenName\" : \"preferredGivenName\", \"familyName\" : \"familyName\", \"familyNamePrefix\" : \"familyNamePrefix\", \"middleName\" : \"middleName\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"generation\" : \"generation\", \"aristocraticTitle\" : \"aristocraticTitle\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"formattedName\" : \"formattedName\", \"givenName\" : \"givenName\", \"fullName\" : \"fullName\", \"title\" : \"title\", \"legalName\" : \"legalName\", \"@baseType\" : \"@baseType\", \"preferredGivenName\" : \"preferredGivenName\", \"familyName\" : \"familyName\", \"familyNamePrefix\" : \"familyNamePrefix\", \"middleName\" : \"middleName\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"maritalStatus\" : \"maritalStatus\", \"status\" : { }}, { \"taxExemptionCertificate\" : [ { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"partyCharacteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"aristocraticTitle\" : \"aristocraticTitle\", \"gender\" : \"gender\", \"disability\" : [ { \"@baseType\" : \"@baseType\", \"disabilityCode\" : \"disabilityCode\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"disabilityName\" : \"disabilityName\", \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@baseType\" : \"@baseType\", \"disabilityCode\" : \"disabilityCode\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"disabilityName\" : \"disabilityName\", \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@type\" : \"@type\", \"formattedName\" : \"formattedName\", \"individualIdentification\" : [ { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" }, { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" } ], \"title\" : \"title\", \"legalName\" : \"legalName\", \"@baseType\" : \"@baseType\", \"countryOfBirth\" : \"countryOfBirth\", \"familyName\" : \"familyName\", \"skill\" : [ { \"skillName\" : \"skillName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"evaluatedLevel\" : \"evaluatedLevel\", \"skillCode\" : \"skillCode\", \"comment\" : \"comment\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"skillName\" : \"skillName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"evaluatedLevel\" : \"evaluatedLevel\", \"skillCode\" : \"skillCode\", \"comment\" : \"comment\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"deathDate\" : \"2000-01-23T04:56:07.000+00:00\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"creditRating\" : [ { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 }, { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 } ], \"generation\" : \"generation\", \"placeOfBirth\" : \"placeOfBirth\", \"givenName\" : \"givenName\", \"fullName\" : \"fullName\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"birthDate\" : \"2000-01-23T04:56:07.000+00:00\", \"externalReference\" : [ { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"languageAbility\" : [ { \"readingProficiency\" : \"readingProficiency\", \"writingProficiency\" : \"writingProficiency\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isFavouriteLanguage\" : true, \"speakingProficiency\" : \"speakingProficiency\", \"listeningProficiency\" : \"listeningProficiency\", \"languageCode\" : \"languageCode\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"languageName\" : \"languageName\" }, { \"readingProficiency\" : \"readingProficiency\", \"writingProficiency\" : \"writingProficiency\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isFavouriteLanguage\" : true, \"speakingProficiency\" : \"speakingProficiency\", \"listeningProficiency\" : \"listeningProficiency\", \"languageCode\" : \"languageCode\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"languageName\" : \"languageName\" } ], \"nationality\" : \"nationality\", \"preferredGivenName\" : \"preferredGivenName\", \"familyNamePrefix\" : \"familyNamePrefix\", \"location\" : \"location\", \"middleName\" : \"middleName\", \"otherName\" : [ { \"generation\" : \"generation\", \"aristocraticTitle\" : \"aristocraticTitle\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"formattedName\" : \"formattedName\", \"givenName\" : \"givenName\", \"fullName\" : \"fullName\", \"title\" : \"title\", \"legalName\" : \"legalName\", \"@baseType\" : \"@baseType\", \"preferredGivenName\" : \"preferredGivenName\", \"familyName\" : \"familyName\", \"familyNamePrefix\" : \"familyNamePrefix\", \"middleName\" : \"middleName\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"generation\" : \"generation\", \"aristocraticTitle\" : \"aristocraticTitle\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"formattedName\" : \"formattedName\", \"givenName\" : \"givenName\", \"fullName\" : \"fullName\", \"title\" : \"title\", \"legalName\" : \"legalName\", \"@baseType\" : \"@baseType\", \"preferredGivenName\" : \"preferredGivenName\", \"familyName\" : \"familyName\", \"familyNamePrefix\" : \"familyNamePrefix\", \"middleName\" : \"middleName\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"maritalStatus\" : \"maritalStatus\", \"status\" : { }} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default IndividualApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a Individual", operationId = "patchIndividual", description = "This operation updates partially a Individual entity.", tags={ "individual", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/individual/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchIndividual(@Parameter(description = "Identifier of the Individual",required=true) @PathVariable("id") String id,@Parameter(description = "The Individual to be updated" ,required=true ) @Valid @RequestBody IndividualUpdate individual) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"taxExemptionCertificate\" : [ { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"partyCharacteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"aristocraticTitle\" : \"aristocraticTitle\", \"gender\" : \"gender\", \"disability\" : [ { \"@baseType\" : \"@baseType\", \"disabilityCode\" : \"disabilityCode\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"disabilityName\" : \"disabilityName\", \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@baseType\" : \"@baseType\", \"disabilityCode\" : \"disabilityCode\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"disabilityName\" : \"disabilityName\", \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@type\" : \"@type\", \"formattedName\" : \"formattedName\", \"individualIdentification\" : [ { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" }, { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" } ], \"title\" : \"title\", \"legalName\" : \"legalName\", \"@baseType\" : \"@baseType\", \"countryOfBirth\" : \"countryOfBirth\", \"familyName\" : \"familyName\", \"skill\" : [ { \"skillName\" : \"skillName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"evaluatedLevel\" : \"evaluatedLevel\", \"skillCode\" : \"skillCode\", \"comment\" : \"comment\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"skillName\" : \"skillName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"evaluatedLevel\" : \"evaluatedLevel\", \"skillCode\" : \"skillCode\", \"comment\" : \"comment\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"deathDate\" : \"2000-01-23T04:56:07.000+00:00\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"creditRating\" : [ { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 }, { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 } ], \"generation\" : \"generation\", \"placeOfBirth\" : \"placeOfBirth\", \"givenName\" : \"givenName\", \"fullName\" : \"fullName\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"birthDate\" : \"2000-01-23T04:56:07.000+00:00\", \"externalReference\" : [ { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"languageAbility\" : [ { \"readingProficiency\" : \"readingProficiency\", \"writingProficiency\" : \"writingProficiency\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isFavouriteLanguage\" : true, \"speakingProficiency\" : \"speakingProficiency\", \"listeningProficiency\" : \"listeningProficiency\", \"languageCode\" : \"languageCode\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"languageName\" : \"languageName\" }, { \"readingProficiency\" : \"readingProficiency\", \"writingProficiency\" : \"writingProficiency\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isFavouriteLanguage\" : true, \"speakingProficiency\" : \"speakingProficiency\", \"listeningProficiency\" : \"listeningProficiency\", \"languageCode\" : \"languageCode\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"languageName\" : \"languageName\" } ], \"nationality\" : \"nationality\", \"preferredGivenName\" : \"preferredGivenName\", \"familyNamePrefix\" : \"familyNamePrefix\", \"location\" : \"location\", \"middleName\" : \"middleName\", \"otherName\" : [ { \"generation\" : \"generation\", \"aristocraticTitle\" : \"aristocraticTitle\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"formattedName\" : \"formattedName\", \"givenName\" : \"givenName\", \"fullName\" : \"fullName\", \"title\" : \"title\", \"legalName\" : \"legalName\", \"@baseType\" : \"@baseType\", \"preferredGivenName\" : \"preferredGivenName\", \"familyName\" : \"familyName\", \"familyNamePrefix\" : \"familyNamePrefix\", \"middleName\" : \"middleName\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"generation\" : \"generation\", \"aristocraticTitle\" : \"aristocraticTitle\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"formattedName\" : \"formattedName\", \"givenName\" : \"givenName\", \"fullName\" : \"fullName\", \"title\" : \"title\", \"legalName\" : \"legalName\", \"@baseType\" : \"@baseType\", \"preferredGivenName\" : \"preferredGivenName\", \"familyName\" : \"familyName\", \"familyNamePrefix\" : \"familyNamePrefix\", \"middleName\" : \"middleName\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"maritalStatus\" : \"maritalStatus\", \"status\" : { }}", Individual.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default IndividualApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a Individual by ID", operationId = "retrieveIndividual", description = "This operation retrieves a Individual entity. Attribute selection is enabled for all first level attributes.", tags={ "individual", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/individual/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveIndividual( + Principal principal, + @Parameter(description = "Identifier of the Individual",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"taxExemptionCertificate\" : [ { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"partyCharacteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"aristocraticTitle\" : \"aristocraticTitle\", \"gender\" : \"gender\", \"disability\" : [ { \"@baseType\" : \"@baseType\", \"disabilityCode\" : \"disabilityCode\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"disabilityName\" : \"disabilityName\", \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@baseType\" : \"@baseType\", \"disabilityCode\" : \"disabilityCode\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"disabilityName\" : \"disabilityName\", \"@type\" : \"@type\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@type\" : \"@type\", \"formattedName\" : \"formattedName\", \"individualIdentification\" : [ { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" }, { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" } ], \"title\" : \"title\", \"legalName\" : \"legalName\", \"@baseType\" : \"@baseType\", \"countryOfBirth\" : \"countryOfBirth\", \"familyName\" : \"familyName\", \"skill\" : [ { \"skillName\" : \"skillName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"evaluatedLevel\" : \"evaluatedLevel\", \"skillCode\" : \"skillCode\", \"comment\" : \"comment\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"skillName\" : \"skillName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"evaluatedLevel\" : \"evaluatedLevel\", \"skillCode\" : \"skillCode\", \"comment\" : \"comment\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"deathDate\" : \"2000-01-23T04:56:07.000+00:00\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"creditRating\" : [ { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 }, { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 } ], \"generation\" : \"generation\", \"placeOfBirth\" : \"placeOfBirth\", \"givenName\" : \"givenName\", \"fullName\" : \"fullName\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"birthDate\" : \"2000-01-23T04:56:07.000+00:00\", \"externalReference\" : [ { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"languageAbility\" : [ { \"readingProficiency\" : \"readingProficiency\", \"writingProficiency\" : \"writingProficiency\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isFavouriteLanguage\" : true, \"speakingProficiency\" : \"speakingProficiency\", \"listeningProficiency\" : \"listeningProficiency\", \"languageCode\" : \"languageCode\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"languageName\" : \"languageName\" }, { \"readingProficiency\" : \"readingProficiency\", \"writingProficiency\" : \"writingProficiency\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"isFavouriteLanguage\" : true, \"speakingProficiency\" : \"speakingProficiency\", \"listeningProficiency\" : \"listeningProficiency\", \"languageCode\" : \"languageCode\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"languageName\" : \"languageName\" } ], \"nationality\" : \"nationality\", \"preferredGivenName\" : \"preferredGivenName\", \"familyNamePrefix\" : \"familyNamePrefix\", \"location\" : \"location\", \"middleName\" : \"middleName\", \"otherName\" : [ { \"generation\" : \"generation\", \"aristocraticTitle\" : \"aristocraticTitle\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"formattedName\" : \"formattedName\", \"givenName\" : \"givenName\", \"fullName\" : \"fullName\", \"title\" : \"title\", \"legalName\" : \"legalName\", \"@baseType\" : \"@baseType\", \"preferredGivenName\" : \"preferredGivenName\", \"familyName\" : \"familyName\", \"familyNamePrefix\" : \"familyNamePrefix\", \"middleName\" : \"middleName\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"generation\" : \"generation\", \"aristocraticTitle\" : \"aristocraticTitle\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"formattedName\" : \"formattedName\", \"givenName\" : \"givenName\", \"fullName\" : \"fullName\", \"title\" : \"title\", \"legalName\" : \"legalName\", \"@baseType\" : \"@baseType\", \"preferredGivenName\" : \"preferredGivenName\", \"familyName\" : \"familyName\", \"familyNamePrefix\" : \"familyNamePrefix\", \"middleName\" : \"middleName\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"maritalStatus\" : \"maritalStatus\", \"status\" : { }}", Individual.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default IndividualApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/api/IndividualApiController.java b/src/main/java/org/etsi/osl/tmf/pm632/api/IndividualApiController.java new file mode 100644 index 0000000..1e8d006 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/api/IndividualApiController.java @@ -0,0 +1,202 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.api; + +import java.security.Principal; +import java.util.List; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pm632.model.ContactMedium; +import org.etsi.osl.tmf.pm632.model.Individual; +import org.etsi.osl.tmf.pm632.model.IndividualCreate; +import org.etsi.osl.tmf.pm632.model.IndividualUpdate; +import org.etsi.osl.tmf.pm632.model.MediumCharacteristic; +import org.etsi.osl.tmf.pm632.reposervices.IndividualRepoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.oauth2.jwt.Jwt; +import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import org.etsi.osl.model.UserRoleType; +import io.swagger.v3.oas.annotations.Parameter; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Controller +@RequestMapping("/party/v4/") +public class IndividualApiController implements IndividualApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public IndividualApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Autowired + IndividualRepoService individualRepoService; + + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity> listIndividual(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + + + + + try { + + + + return new ResponseEntity>(individualRepoService.findAll(), HttpStatus.OK); + + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + +// @PreAuthorize("hasAnyAuthority('USER" }) + @PreAuthorize("hasAnyAuthority('ROLE_USER', 'ROLE_ADMIN')") + public ResponseEntity retrieveIndividual( + Principal principal, + @Parameter(description = "Identifier of the Individual",required=true) @PathVariable("id") String id, + @Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + + + + try { + + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + + if ( id.equals( "myuser" ) ) { + + log.debug("principal= " + principal.toString()); + + Individual ind = individualRepoService.findByUsername( principal.getName() ); + + + if ( ind != null ) { + log.debug("principal.name {} ", principal.getName()); + return new ResponseEntity< Individual >( ind , HttpStatus.OK); + } else + { + @Valid + IndividualCreate individualnew = new IndividualCreate(); + individualnew.setPreferredGivenName( principal.getName() ); + individualnew.setFamilyName("N/A"); + individualnew.setGivenName("N/A"); + ContactMedium contactMediumItem = new ContactMedium(); + contactMediumItem.setPreferred(true); + contactMediumItem.setMediumType("main"); + MediumCharacteristic mc = new MediumCharacteristic(); + contactMediumItem.setCharacteristic(mc ); + individualnew.addContactMediumItem(contactMediumItem ); + mc.setEmailAddress( "na@example.com" ); + + if ( principal instanceof JwtAuthenticationToken) { + JwtAuthenticationToken pr = ( JwtAuthenticationToken ) principal; + + + Jwt lp = (Jwt) pr.getPrincipal(); + individualnew.setPreferredGivenName( lp.getClaimAsString("preferred_username") ); + individualnew.setFamilyName( lp.getClaimAsString("name") ); + individualnew.setGivenName( lp.getClaimAsString("given_name") ); + + mc.setEmailAddress( lp.getClaimAsString("email") ); + + + } + return new ResponseEntity< Individual > ( individualRepoService.addIndividual(individualnew) , HttpStatus.OK); + } + + + + } else if ( authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_ADMIN.getValue() ) ) ) { + + return new ResponseEntity< Individual >(individualRepoService.findById(id) , HttpStatus.OK); + }else { + return new ResponseEntity< Individual >(HttpStatus.FORBIDDEN ); + } + + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity< Individual >(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity createIndividual( + @Parameter(description = "The Individual to be created", required = true) @Valid @RequestBody IndividualCreate individual) { + + try { + Individual c = individualRepoService.addIndividual(individual); + + return new ResponseEntity(c, HttpStatus.OK); + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN' , 'ROLE_USER')" ) + public ResponseEntity patchIndividual(@Parameter(description = "Identifier of the Individual",required=true) @PathVariable("id") String id,@Parameter(description = "The Individual to be updated" ,required=true ) @Valid @RequestBody IndividualUpdate individual) { + + try { + Individual c = individualRepoService.updateIndividual(id, individual); + + return new ResponseEntity(c, HttpStatus.OK); + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + public ResponseEntity deleteIndividual(@Parameter(description = "Identifier of the Individual",required=true) @PathVariable("id") String id) { + try { + + return new ResponseEntity( individualRepoService.deleteById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/api/IndividualApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/pm632/api/IndividualApiRouteBuilder.java new file mode 100644 index 0000000..ccc920f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/api/IndividualApiRouteBuilder.java @@ -0,0 +1,111 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.api; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.centrallog.client.CLevel; +import org.etsi.osl.centrallog.client.CentralLogger; +import org.etsi.osl.tmf.pm632.model.IndividualAttributeValueChangeEvent; +import org.etsi.osl.tmf.pm632.model.IndividualCreateEvent; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +@Configuration +@Component +public class IndividualApiRouteBuilder extends RouteBuilder { + + private static final transient Log logger = LogFactory.getLog(IndividualApiRouteBuilder.class.getName()); + + @Value("${EVENT_INDIVIDUAL_CREATE}") + private String EVENT_INDIVIDUAL_CREATE = ""; + + @Value("${EVENT_INDIVIDUAL_CHANGED}") + private String EVENT_INDIVIDUAL_CHANGED = ""; + + @Autowired + private ProducerTemplate template; + + + @Value("${spring.application.name}") + private String compname; + + @Autowired + private CentralLogger centralLogger; + + @Override + public void configure() throws Exception { + + } + + /** + * @param ce + * @param id + */ + public void publishEvent(Object ce, String objId) { + try { + String msgtopic = ""; + + Map map = new HashMap<>(); + map.put("objId", objId); + + if (ce instanceof IndividualCreateEvent) { + msgtopic = EVENT_INDIVIDUAL_CREATE; + ((IndividualCreateEvent) ce).setEventType(ce.getClass().getName()); + map.put("eventid", ((IndividualCreateEvent) ce).getEventId()); + logger.info("will send Event for type " + ((IndividualCreateEvent) ce).getEventType()); + } else if (ce instanceof IndividualAttributeValueChangeEvent) { + msgtopic = EVENT_INDIVIDUAL_CHANGED; + + ((IndividualAttributeValueChangeEvent) ce).setEventType(ce.getClass().getName()); + map.put("eventid", ((IndividualAttributeValueChangeEvent) ce).getEventId()); + logger.info("will send Event for type " + ((IndividualAttributeValueChangeEvent) ce).getEventType()); + } + + String apayload = toJsonString( ce ); + template.sendBodyAndHeaders(msgtopic, apayload, map); + + centralLogger.log(CLevel.INFO, apayload, compname); + + } catch (Exception e) { + e.printStackTrace(); + logger.error("Cannot send Event . " + e.getMessage()); + } + + } + + static String toJsonString(Object object) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.writeValueAsString(object); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/api/ListenerApi.java b/src/main/java/org/etsi/osl/tmf/pm632/api/ListenerApi.java new file mode 100644 index 0000000..cb51914 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/api/ListenerApi.java @@ -0,0 +1,320 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pm632.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pm632.model.EventSubscription; +import org.etsi.osl.tmf.pm632.model.IndividualAttributeValueChangeEvent; +import org.etsi.osl.tmf.pm632.model.IndividualCreateEvent; +import org.etsi.osl.tmf.pm632.model.IndividualDeleteEvent; +import org.etsi.osl.tmf.pm632.model.IndividualStateChangeEvent; +import org.etsi.osl.tmf.pm632.model.OrganizationAttributeValueChangeEvent; +import org.etsi.osl.tmf.pm632.model.OrganizationCreateEvent; +import org.etsi.osl.tmf.pm632.model.OrganizationDeleteEvent; +import org.etsi.osl.tmf.pm632.model.OrganizationStateChangeEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Tag(name = "listener", description = "the listener API") +public interface ListenerApi { + + Logger log = LoggerFactory.getLogger(ListenerApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Client listener for entity IndividualAttributeValueChangeEvent", operationId = "listenToIndividualAttributeValueChangeEvent", description = "Example of a client listener for receiving the notification IndividualAttributeValueChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/individualAttributeValueChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToIndividualAttributeValueChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody IndividualAttributeValueChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity IndividualCreateEvent", operationId = "listenToIndividualCreateEvent", description = "Example of a client listener for receiving the notification IndividualCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/individualCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToIndividualCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody IndividualCreateEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity IndividualDeleteEvent", operationId = "listenToIndividualDeleteEvent", description = "Example of a client listener for receiving the notification IndividualDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/individualDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToIndividualDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody IndividualDeleteEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity IndividualStateChangeEvent", operationId = "listenToIndividualStateChangeEvent", description = "Example of a client listener for receiving the notification IndividualStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/individualStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToIndividualStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody IndividualStateChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity OrganizationAttributeValueChangeEvent", operationId = "listenToOrganizationAttributeValueChangeEvent", description = "Example of a client listener for receiving the notification OrganizationAttributeValueChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/organizationAttributeValueChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToOrganizationAttributeValueChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody OrganizationAttributeValueChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity OrganizationCreateEvent", operationId = "listenToOrganizationCreateEvent", description = "Example of a client listener for receiving the notification OrganizationCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/organizationCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToOrganizationCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody OrganizationCreateEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity OrganizationDeleteEvent", operationId = "listenToOrganizationDeleteEvent", description = "Example of a client listener for receiving the notification OrganizationDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/organizationDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToOrganizationDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody OrganizationDeleteEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity OrganizationStateChangeEvent", operationId = "listenToOrganizationStateChangeEvent", description = "Example of a client listener for receiving the notification OrganizationStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/organizationStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToOrganizationStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody OrganizationStateChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/api/ListenerApiController.java b/src/main/java/org/etsi/osl/tmf/pm632/api/ListenerApiController.java new file mode 100644 index 0000000..140fb93 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/api/ListenerApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Controller("ListenerApiController632") +@RequestMapping("/party/v4/") +public class ListenerApiController implements ListenerApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ListenerApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/api/NotFoundException.java b/src/main/java/org/etsi/osl/tmf/pm632/api/NotFoundException.java new file mode 100644 index 0000000..02157b1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/api/NotFoundException.java @@ -0,0 +1,30 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class NotFoundException extends ApiException { + private int code; + public NotFoundException (int code, String msg) { + super(code, msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/api/OrganizationApi.java b/src/main/java/org/etsi/osl/tmf/pm632/api/OrganizationApi.java new file mode 100644 index 0000000..1152ff6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/api/OrganizationApi.java @@ -0,0 +1,215 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pm632.api; + +import java.io.IOException; +import java.security.Principal; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pm632.model.Organization; +import org.etsi.osl.tmf.pm632.model.OrganizationCreate; +import org.etsi.osl.tmf.pm632.model.OrganizationUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Tag(name = "organization", description = "the organization API") +public interface OrganizationApi { + + Logger log = LoggerFactory.getLogger(OrganizationApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a Organization", operationId = "createOrganization", description = "This operation creates a Organization entity.", tags={ "organization", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/organization", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createOrganization( + Principal principal, + @Parameter(description = "The Organization to be created" ,required=true ) @Valid @RequestBody OrganizationCreate organization) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"tradingName\" : \"tradingName\", \"taxExemptionCertificate\" : [ { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"partyCharacteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"organizationChildRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"organization\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"organization\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@type\" : \"@type\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"nameType\" : \"nameType\", \"organizationType\" : \"organizationType\", \"externalReference\" : [ { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"existsDuring\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"isHeadOffice\" : true, \"name\" : \"name\", \"isLegalEntity\" : true, \"otherName\" : [ { \"nameType\" : \"nameType\", \"tradingName\" : \"tradingName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"nameType\" : \"nameType\", \"tradingName\" : \"tradingName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"organizationIdentification\" : [ { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" }, { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" } ], \"creditRating\" : [ { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 }, { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 } ], \"organizationParentRelationship\" : { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"organization\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"status\" : { }}", Organization.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default OrganizationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a Organization", operationId = "deleteOrganization", description = "This operation deletes a Organization entity.", tags={ "organization", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/organization/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteOrganization(@Parameter(description = "Identifier of the Organization",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default OrganizationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find Organization objects", operationId = "listOrganization", description = "This operation list or find Organization entities" , tags={ "organization", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/organization", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listOrganization(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"tradingName\" : \"tradingName\", \"taxExemptionCertificate\" : [ { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"partyCharacteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"organizationChildRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"organization\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"organization\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@type\" : \"@type\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"nameType\" : \"nameType\", \"organizationType\" : \"organizationType\", \"externalReference\" : [ { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"existsDuring\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"isHeadOffice\" : true, \"name\" : \"name\", \"isLegalEntity\" : true, \"otherName\" : [ { \"nameType\" : \"nameType\", \"tradingName\" : \"tradingName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"nameType\" : \"nameType\", \"tradingName\" : \"tradingName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"organizationIdentification\" : [ { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" }, { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" } ], \"creditRating\" : [ { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 }, { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 } ], \"organizationParentRelationship\" : { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"organization\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"status\" : { }}, { \"tradingName\" : \"tradingName\", \"taxExemptionCertificate\" : [ { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"partyCharacteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"organizationChildRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"organization\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"organization\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@type\" : \"@type\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"nameType\" : \"nameType\", \"organizationType\" : \"organizationType\", \"externalReference\" : [ { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"existsDuring\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"isHeadOffice\" : true, \"name\" : \"name\", \"isLegalEntity\" : true, \"otherName\" : [ { \"nameType\" : \"nameType\", \"tradingName\" : \"tradingName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"nameType\" : \"nameType\", \"tradingName\" : \"tradingName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"organizationIdentification\" : [ { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" }, { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" } ], \"creditRating\" : [ { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 }, { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 } ], \"organizationParentRelationship\" : { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"organization\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"status\" : { }} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default OrganizationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a Organization", operationId = "patchOrganization", description = "This operation updates partially a Organization entity.", tags={ "organization", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/organization/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchOrganization(@Parameter(description = "Identifier of the Organization",required=true) @PathVariable("id") String id,@Parameter(description = "The Organization to be updated" ,required=true ) @Valid @RequestBody OrganizationUpdate organization) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"tradingName\" : \"tradingName\", \"taxExemptionCertificate\" : [ { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"partyCharacteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"organizationChildRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"organization\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"organization\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@type\" : \"@type\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"nameType\" : \"nameType\", \"organizationType\" : \"organizationType\", \"externalReference\" : [ { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"existsDuring\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"isHeadOffice\" : true, \"name\" : \"name\", \"isLegalEntity\" : true, \"otherName\" : [ { \"nameType\" : \"nameType\", \"tradingName\" : \"tradingName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"nameType\" : \"nameType\", \"tradingName\" : \"tradingName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"organizationIdentification\" : [ { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" }, { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" } ], \"creditRating\" : [ { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 }, { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 } ], \"organizationParentRelationship\" : { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"organization\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"status\" : { }}", Organization.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default OrganizationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a Organization by ID", operationId = "retrieveOrganization", description = "This operation retrieves a Organization entity. Attribute selection is enabled for all first level attributes.", tags={ "organization", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/organization/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveOrganization(@Parameter(description = "Identifier of the Organization",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"tradingName\" : \"tradingName\", \"taxExemptionCertificate\" : [ { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"taxDefinition\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"taxType\" : \"taxType\" } ], \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"partyCharacteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"organizationChildRelationship\" : [ { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"organization\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"organization\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@type\" : \"@type\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"nameType\" : \"nameType\", \"organizationType\" : \"organizationType\", \"externalReference\" : [ { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"externalReferenceType\" : \"externalReferenceType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"@baseType\" : \"@baseType\", \"existsDuring\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"isHeadOffice\" : true, \"name\" : \"name\", \"isLegalEntity\" : true, \"otherName\" : [ { \"nameType\" : \"nameType\", \"tradingName\" : \"tradingName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"nameType\" : \"nameType\", \"tradingName\" : \"tradingName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"organizationIdentification\" : [ { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" }, { \"issuingAuthority\" : \"issuingAuthority\", \"attachment\" : { \"@referredType\" : \"@referredType\", \"attachmentType\" : \"attachmentType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"description\" : \"description\", \"mimeType\" : \"mimeType\", \"content\" : \"content\", \"url\" : \"url\", \"size\" : { \"amount\" : 6.0274563, \"units\" : \"units\" }, \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@baseType\" : \"@baseType\", \"issuingDate\" : \"2000-01-23T04:56:07.000+00:00\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"identificationType\" : \"identificationType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"identificationId\" : \"identificationId\" } ], \"creditRating\" : [ { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 }, { \"creditAgencyName\" : \"creditAgencyName\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"creditAgencyType\" : \"creditAgencyType\", \"@type\" : \"@type\", \"ratingReference\" : \"ratingReference\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"ratingScore\" : 0 } ], \"organizationParentRelationship\" : { \"relationshipType\" : \"relationshipType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"organization\" : { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"status\" : { }}", Organization.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default OrganizationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/api/OrganizationApiController.java b/src/main/java/org/etsi/osl/tmf/pm632/api/OrganizationApiController.java new file mode 100644 index 0000000..7ec60ba --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/api/OrganizationApiController.java @@ -0,0 +1,179 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.api; + +import java.security.Principal; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pm632.model.Organization; +import org.etsi.osl.tmf.pm632.model.OrganizationCreate; +import org.etsi.osl.tmf.pm632.model.OrganizationUpdate; +import org.etsi.osl.tmf.pm632.reposervices.OrganizationRepoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Parameter; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Controller +@RequestMapping("/party/v4/") +public class OrganizationApiController implements OrganizationApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public OrganizationApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + @Autowired + OrganizationRepoService organizationRepoService; + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity> listOrganization(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + + + + + try { +// Object attr = request.getSession().getAttribute("SPRING_SECURITY_CONTEXT"); +// SecurityContextHolder.setContext( (SecurityContext) attr ); +// +// Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); +// log.info("authentication= " + authentication.toString()); +// +// log.info("principal ROLE_ADMIN = " + authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_ADMIN.getValue() ) )); +// log.info("principal ROLE_NFV_DEVELOPER = " + authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_NFV_DEVELOPER.getValue() ) )); +// log.info("principal ROLE_EXPERIMENTER = " + authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_EXPERIMENTER.getValue() ) )); +// +// if ( authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_ADMIN.getValue() ) ) ) { +// +// return new ResponseEntity>(organizationRepoService.findAll(), HttpStatus.OK); +// }else { +// return new ResponseEntity>(HttpStatus.FORBIDDEN ); +// } + return new ResponseEntity>(organizationRepoService.findAll(), HttpStatus.OK); + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity retrieveOrganization(@Parameter(description = "Identifier of the Organization",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + + + try { +// Object attr = request.getSession().getAttribute("SPRING_SECURITY_CONTEXT"); +// SecurityContextHolder.setContext( (SecurityContext) attr ); +// +// Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); +// log.info("authentication= " + authentication.toString()); +// +// log.info("principal ROLE_ADMIN = " + authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_ADMIN.getValue() ) )); +// log.info("principal ROLE_NFV_DEVELOPER = " + authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_NFV_DEVELOPER.getValue() ) )); +// log.info("principal ROLE_EXPERIMENTER = " + authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_EXPERIMENTER.getValue() ) )); +// +// if ( authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_ADMIN.getValue() ) ) ) { +// +// return new ResponseEntity< Organization >(organizationRepoService.findById(id) , HttpStatus.OK); +// }else { +// return new ResponseEntity< Organization >(HttpStatus.FORBIDDEN ); +// } +// + + return new ResponseEntity< Organization >(organizationRepoService.findById(id) , HttpStatus.OK); + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity< Organization >(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity createOrganization( Principal principal, + @Parameter(description = "The Organization to be created", required = true) @Valid @RequestBody OrganizationCreate organization) { + + try { + log.info("principal= " + principal.toString()); + Organization c = organizationRepoService.addOrganization(organization); + + return new ResponseEntity(c, HttpStatus.OK); + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity patchOrganization(@Parameter(description = "Identifier of the Organization",required=true) @PathVariable("id") String id,@Parameter(description = "The Organization to be updated" ,required=true ) @Valid @RequestBody OrganizationUpdate organization) { + + try { + Organization c = organizationRepoService.updateOrganization(id, organization); + + return new ResponseEntity(c, HttpStatus.OK); + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity deleteOrganization(@Parameter(description = "Identifier of the Organization",required=true) @PathVariable("id") String id) { + try { + + return new ResponseEntity( organizationRepoService.deleteById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/api/OrganizationApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/pm632/api/OrganizationApiRouteBuilder.java new file mode 100644 index 0000000..36740fd --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/api/OrganizationApiRouteBuilder.java @@ -0,0 +1,110 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.api; + +import java.io.IOException; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.camel.LoggingLevel; +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.model.dataformat.JsonLibrary; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.centrallog.client.CentralLogger; +import org.etsi.osl.tmf.pm632.model.Organization; +import org.etsi.osl.tmf.pm632.reposervices.OrganizationRepoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +@Configuration +@Component +public class OrganizationApiRouteBuilder extends RouteBuilder { + + private static final transient Log logger = LogFactory.getLog(OrganizationApiRouteBuilder.class.getName()); + + @Value("${EVENT_ORGANIZATION_CREATE}") + private String EVENT_ORGANIZATION_CREATE = ""; + + @Value("${EVENT_ORGANIZATION_CHANGED}") + private String EVENT_ORGANIZATION_CHANGED = ""; + + @Value("${CATALOG_GET_EXTERNAL_SERVICE_PARTNERS}") + private String CATALOG_GET_EXTERNAL_SERVICE_PARTNERS = ""; + + + @Value("${CATALOG_GET_PARTNER_ORGANIZATON_BY_ID}") + private String CATALOG_GET_PARTNER_ORGANIZATON_BY_ID = ""; + + + @Value("${CATALOG_UPDATE_PARTNER_ORGANIZATION}") + private String CATALOG_UPDATE_PARTNER_ORGANIZATION = ""; + + @Autowired + private ProducerTemplate template; + + @Autowired + OrganizationRepoService organizationRepoService; + + @Value("${spring.application.name}") + private String compname; + + @Autowired + private CentralLogger centralLogger; + + @Override + public void configure() throws Exception { + + from( CATALOG_GET_EXTERNAL_SERVICE_PARTNERS ) + .log(LoggingLevel.INFO, log, CATALOG_GET_EXTERNAL_SERVICE_PARTNERS + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean( organizationRepoService, "getPartnerOrganizationsWithAPI") + //.marshal().json( JsonLibrary.Jackson, String.class) + .convertBodyTo( String.class ); + + from( CATALOG_GET_PARTNER_ORGANIZATON_BY_ID ) + .log(LoggingLevel.INFO, log, CATALOG_GET_PARTNER_ORGANIZATON_BY_ID + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean( organizationRepoService, "findByUuidJson"); + + + from( CATALOG_UPDATE_PARTNER_ORGANIZATION ) + .log(LoggingLevel.INFO, log, CATALOG_UPDATE_PARTNER_ORGANIZATION + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal() + .json(JsonLibrary.Jackson, Organization.class, true) + .bean( organizationRepoService, "updateOrganization( ${header.orgid}, ${body})") + .marshal().json( JsonLibrary.Jackson, String.class) + .convertBodyTo( String.class ); + + } + + + static String toJsonString(Object object) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.writeValueAsString(object); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/api/OrganizationApiRouteBuilderEvents.java b/src/main/java/org/etsi/osl/tmf/pm632/api/OrganizationApiRouteBuilderEvents.java new file mode 100644 index 0000000..b36b478 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/api/OrganizationApiRouteBuilderEvents.java @@ -0,0 +1,112 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.api; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.centrallog.client.CLevel; +import org.etsi.osl.centrallog.client.CentralLogger; +import org.etsi.osl.tmf.pm632.model.OrganizationAttributeValueChangeEvent; +import org.etsi.osl.tmf.pm632.model.OrganizationCreateEvent; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +@Configuration +@Component +public class OrganizationApiRouteBuilderEvents extends RouteBuilder { + + private static final transient Log logger = LogFactory.getLog(OrganizationApiRouteBuilderEvents.class.getName()); + + @Value("${EVENT_ORGANIZATION_CREATE}") + private String EVENT_ORGANIZATION_CREATE = ""; + + @Value("${EVENT_ORGANIZATION_CHANGED}") + private String EVENT_ORGANIZATION_CHANGED = ""; + + + @Autowired + private ProducerTemplate template; + + @Value("${spring.application.name}") + private String compname; + + @Autowired + private CentralLogger centralLogger; + + @Override + public void configure() throws Exception { + + + } + + /** + * @param ce + * @param id + */ + public void publishEvent(Object ce, String objId) { + try { + String msgtopic = ""; + + Map map = new HashMap<>(); + map.put("objId", objId); + + if (ce instanceof OrganizationCreateEvent) { + msgtopic = EVENT_ORGANIZATION_CREATE; + ((OrganizationCreateEvent) ce).setEventType(ce.getClass().getName()); + map.put("eventid", ((OrganizationCreateEvent) ce).getEventId()); + logger.info("will send Event for type " + ((OrganizationCreateEvent) ce).getEventType()); + } else if (ce instanceof OrganizationAttributeValueChangeEvent) { + msgtopic = EVENT_ORGANIZATION_CHANGED; + + ((OrganizationAttributeValueChangeEvent) ce).setEventType(ce.getClass().getName()); + map.put("eventid", ((OrganizationAttributeValueChangeEvent) ce).getEventId()); + logger.info("will send Event for type " + ((OrganizationAttributeValueChangeEvent) ce).getEventType()); + } + + String apayload = toJsonString( ce ); + template.sendBodyAndHeaders(msgtopic, apayload, map); + + centralLogger.log(CLevel.INFO, apayload, compname); + + } catch (Exception e) { + e.printStackTrace(); + logger.error("Cannot send Event . " + e.getMessage()); + } + + } + + static String toJsonString(Object object) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.writeValueAsString(object); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/Characteristic.java b/src/main/java/org/etsi/osl/tmf/pm632/model/Characteristic.java new file mode 100644 index 0000000..7221070 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/Characteristic.java @@ -0,0 +1,161 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Describes a given characteristic of an object or entity through a name/value + * pair. + */ +@Schema(description = "Describes a given characteristic of an object or entity through a name/value pair.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") +@Entity(name = "PM632_Characteristic") +public class Characteristic extends BaseRootNamedEntity { + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("value") + private Any value = null; + + + public Characteristic() { + super(); + this.baseType = "BaseRootEntity"; + this.type = this.getClass().getName(); + } + + public Characteristic(Characteristic src) { + this(); + name = src.name; + valueType = src.valueType; + value = new Any( src.value ) ; + + } + + public Characteristic name(String name) { + this.name = name; + return this; + } + + public Characteristic valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * Data type of the value of the characteristic + * + * @return valueType + **/ + @Schema(description = "Data type of the value of the characteristic") + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public Characteristic value(Any value) { + this.value = value; + return this; + } + + /** + * The value of the characteristic + * + * @return value + **/ + @Schema(description = "The value of the characteristic") + @NotNull + + @Valid + + public Any getValue() { + return value; + } + + public void setValue(Any value) { + this.value = value; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Characteristic characteristic = (Characteristic) o; + return Objects.equals(this.name, characteristic.name) + && Objects.equals(this.valueType, characteristic.valueType) + && Objects.equals(this.value, characteristic.value) + && Objects.equals(this.baseType, characteristic.baseType) + && Objects.equals(this.schemaLocation, characteristic.schemaLocation) + && Objects.equals(this.type, characteristic.type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Characteristic {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public void updateWith(Characteristic cmUpd) { + this.setName( cmUpd.getName()); + this.setValue(new Any( cmUpd.getValue().getValue(), cmUpd.getValue().getAlias())); + this.setValueType(cmUpd.getValueType()); + + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/ContactMedium.java b/src/main/java/org/etsi/osl/tmf/pm632/model/ContactMedium.java new file mode 100644 index 0000000..ca515e2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/ContactMedium.java @@ -0,0 +1,199 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Indicates the contact medium that could be used to contact the party. + */ +@Schema(description = "Indicates the contact medium that could be used to contact the party.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-12-19T23:13:44.649+02:00") +@Entity(name = "ContactMedium") +public class ContactMedium extends BaseRootEntity { + @JsonProperty("mediumType") + private String mediumType = null; + + @JsonProperty("preferred") + private Boolean preferred = null; + + @JsonProperty("characteristic") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn( referencedColumnName = "uuid") + private MediumCharacteristic characteristic = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + public ContactMedium mediumType(String mediumType) { + this.mediumType = mediumType; + return this; + } + + /** + * Type of the contact medium, such as: email address, telephone number, postal + * address + * + * @return mediumType + **/ + @Schema(description = "Type of the contact medium, such as: email address, telephone number, postal address") + @NotNull + + public String getMediumType() { + return mediumType; + } + + public void setMediumType(String mediumType) { + this.mediumType = mediumType; + } + + public ContactMedium preferred(Boolean preferred) { + this.preferred = preferred; + return this; + } + + /** + * If true, indicates that is the preferred contact medium + * + * @return preferred + **/ + @Schema(description = "If true, indicates that is the preferred contact medium") + + public Boolean isPreferred() { + return preferred; + } + + public void setPreferred(Boolean preferred) { + this.preferred = preferred; + } + + public ContactMedium characteristic(MediumCharacteristic characteristic) { + this.characteristic = characteristic; + return this; + } + + /** + * Any additional characteristic(s) of this contact medium + * + * @return characteristic + **/ + @Schema(description = "Any additional characteristic(s) of this contact medium") + @NotNull + + @Valid + + public MediumCharacteristic getCharacteristic() { + return characteristic; + } + + public void setCharacteristic(MediumCharacteristic characteristic) { + this.characteristic = characteristic; + } + + public ContactMedium validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The time period that the contact medium is valid for + * + * @return validFor + **/ + @Schema(description = "The time period that the contact medium is valid for") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ContactMedium contactMedium = (ContactMedium) o; + return Objects.equals(this.mediumType, contactMedium.mediumType) + && Objects.equals(this.preferred, contactMedium.preferred) + && Objects.equals(this.characteristic, contactMedium.characteristic) + && Objects.equals(this.validFor, contactMedium.validFor) + && Objects.equals(this.baseType, contactMedium.baseType) + && Objects.equals(this.schemaLocation, contactMedium.schemaLocation) + && Objects.equals(this.type, contactMedium.type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ContactMedium {\n"); + + sb.append(" mediumType: ").append(toIndentedString(mediumType)).append("\n"); + sb.append(" preferred: ").append(toIndentedString(preferred)).append("\n"); + sb.append(" characteristic: ").append(toIndentedString(characteristic)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public void updateWith(ContactMedium cmUpd) { + this.mediumType = cmUpd.getMediumType(); + this.preferred = cmUpd.isPreferred(); + this.validFor = cmUpd.getValidFor(); + if ( cmUpd.getCharacteristic() !=null) { + this.characteristic = new MediumCharacteristic( cmUpd.getCharacteristic() ); + } + + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/Disability.java b/src/main/java/org/etsi/osl/tmf/pm632/model/Disability.java new file mode 100644 index 0000000..96a9f68 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/Disability.java @@ -0,0 +1,160 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; + +/** + * Lack or inadequate strength or ability. + */ +@Schema(description = "Lack or inadequate strength or ability.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") +@Entity +public class Disability extends BaseRootEntity { + @JsonProperty("disabilityCode") + private String disabilityCode = null; + + @JsonProperty("disabilityName") + private String disabilityName = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + + public Disability disabilityCode(String disabilityCode) { + this.disabilityCode = disabilityCode; + return this; + } + + /** + * Code of the disability + * @return disabilityCode + **/ + @Schema(description = "Code of the disability") + + + public String getDisabilityCode() { + return disabilityCode; + } + + public void setDisabilityCode(String disabilityCode) { + this.disabilityCode = disabilityCode; + } + + public Disability disabilityName(String disabilityName) { + this.disabilityName = disabilityName; + return this; + } + + /** + * Name of the disability + * @return disabilityName + **/ + @Schema(description = "Name of the disability") + + + public String getDisabilityName() { + return disabilityName; + } + + public void setDisabilityName(String disabilityName) { + this.disabilityName = disabilityName; + } + + public Disability validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * @return validFor + **/ + @Schema(description = "") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Disability disability = (Disability) o; + return Objects.equals(this.disabilityCode, disability.disabilityCode) && + Objects.equals(this.disabilityName, disability.disabilityName) && + Objects.equals(this.validFor, disability.validFor) && + Objects.equals(this.baseType, disability.baseType) && + Objects.equals(this.schemaLocation, disability.schemaLocation) && + Objects.equals(this.type, disability.type); + } + + @Override + public int hashCode() { + return Objects.hash(disabilityCode, disabilityName, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Disability {\n"); + + sb.append(" disabilityCode: ").append(toIndentedString(disabilityCode)).append("\n"); + sb.append(" disabilityName: ").append(toIndentedString(disabilityName)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/EntityRef.java b/src/main/java/org/etsi/osl/tmf/pm632/model/EntityRef.java new file mode 100644 index 0000000..32b2719 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/EntityRef.java @@ -0,0 +1,252 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Entity reference schema to be use for all entityRef class. + */ +@Schema(description = "Entity reference schema to be use for all entityRef class.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class EntityRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public EntityRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EntityRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public EntityRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public EntityRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public EntityRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public EntityRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public EntityRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntityRef entityRef = (EntityRef) o; + return Objects.equals(this.id, entityRef.id) && + Objects.equals(this.href, entityRef.href) && + Objects.equals(this.name, entityRef.name) && + Objects.equals(this.baseType, entityRef.baseType) && + Objects.equals(this.schemaLocation, entityRef.schemaLocation) && + Objects.equals(this.type, entityRef.type) && + Objects.equals(this.referredType, entityRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntityRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/Error.java b/src/main/java/org/etsi/osl/tmf/pm632/model/Error.java new file mode 100644 index 0000000..b0966c5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/Error.java @@ -0,0 +1,278 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx) + */ +@Schema(description = "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class Error { + @JsonProperty("code") + private String code = null; + + @JsonProperty("reason") + private String reason = null; + + @JsonProperty("message") + private String message = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("referenceError") + private String referenceError = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Error code(String code) { + this.code = code; + return this; + } + + /** + * Application relevant detail, defined in the API or a common list. + * @return code + **/ + @Schema(description = "Application relevant detail, defined in the API or a common list.") + @NotNull + + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public Error reason(String reason) { + this.reason = reason; + return this; + } + + /** + * Explanation of the reason for the error which can be shown to a client user. + * @return reason + **/ + @Schema(description = "Explanation of the reason for the error which can be shown to a client user.") + @NotNull + + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public Error message(String message) { + this.message = message; + return this; + } + + /** + * More details and corrective actions related to the error which can be shown to a client user. + * @return message + **/ + @Schema(description = "More details and corrective actions related to the error which can be shown to a client user.") + + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Error status(String status) { + this.status = status; + return this; + } + + /** + * HTTP Error code extension + * @return status + **/ + @Schema(description = "HTTP Error code extension") + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Error referenceError(String referenceError) { + this.referenceError = referenceError; + return this; + } + + /** + * URI of documentation describing the error. + * @return referenceError + **/ + @Schema(description = "URI of documentation describing the error.") + + + public String getReferenceError() { + return referenceError; + } + + public void setReferenceError(String referenceError) { + this.referenceError = referenceError; + } + + public Error baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class. + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class.") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public Error schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Error type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name. + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name.") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Error error = (Error) o; + return Objects.equals(this.code, error.code) && + Objects.equals(this.reason, error.reason) && + Objects.equals(this.message, error.message) && + Objects.equals(this.status, error.status) && + Objects.equals(this.referenceError, error.referenceError) && + Objects.equals(this.baseType, error.baseType) && + Objects.equals(this.schemaLocation, error.schemaLocation) && + Objects.equals(this.type, error.type); + } + + @Override + public int hashCode() { + return Objects.hash(code, reason, message, status, referenceError, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Error {\n"); + + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" referenceError: ").append(toIndentedString(referenceError)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/pm632/model/EventSubscription.java new file mode 100644 index 0000000..f3cdc2d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/EventSubscription.java @@ -0,0 +1,153 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class EventSubscription { + @JsonProperty("id") + private String id = null; + + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscription id(String id) { + this.id = id; + return this; + } + + /** + * Id of the listener + * @return id + **/ + @Schema(description = "Id of the listener") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EventSubscription callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscription query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscription eventSubscription = (EventSubscription) o; + return Objects.equals(this.id, eventSubscription.id) && + Objects.equals(this.callback, eventSubscription.callback) && + Objects.equals(this.query, eventSubscription.query); + } + + @Override + public int hashCode() { + return Objects.hash(id, callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscription {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/EventSubscriptionInput.java b/src/main/java/org/etsi/osl/tmf/pm632/model/EventSubscriptionInput.java new file mode 100644 index 0000000..989ad96 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/EventSubscriptionInput.java @@ -0,0 +1,127 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class EventSubscriptionInput { + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscriptionInput callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscriptionInput query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscriptionInput eventSubscriptionInput = (EventSubscriptionInput) o; + return Objects.equals(this.callback, eventSubscriptionInput.callback) && + Objects.equals(this.query, eventSubscriptionInput.query); + } + + @Override + public int hashCode() { + return Objects.hash(callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscriptionInput {\n"); + + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/ExternalReference.java b/src/main/java/org/etsi/osl/tmf/pm632/model/ExternalReference.java new file mode 100644 index 0000000..16c0ff3 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/ExternalReference.java @@ -0,0 +1,110 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * External reference of the individual or reference in other system + */ +@Schema(description = "External reference of the individual or reference in other system") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Entity +public class ExternalReference extends BaseRootNamedEntity { + @JsonProperty("externalReferenceType") + private String externalReferenceType = null; + + + public ExternalReference externalReferenceType(String externalReferenceType) { + this.externalReferenceType = externalReferenceType; + return this; + } + + /** + * Type of the external reference + * @return externalReferenceType + **/ + @Schema(description = "Type of the external reference") + + + public String getExternalReferenceType() { + return externalReferenceType; + } + + public void setExternalReferenceType(String externalReferenceType) { + this.externalReferenceType = externalReferenceType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExternalReference externalReference = (ExternalReference) o; + return Objects.equals(this.externalReferenceType, externalReference.externalReferenceType) && + Objects.equals(this.name, externalReference.name) && + Objects.equals(this.baseType, externalReference.baseType) && + Objects.equals(this.schemaLocation, externalReference.schemaLocation) && + Objects.equals(this.type, externalReference.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(externalReferenceType, name, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ExternalReference {\n"); + + sb.append(" externalReferenceType: ").append(toIndentedString(externalReferenceType)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/Individual.java b/src/main/java/org/etsi/osl/tmf/pm632/model/Individual.java new file mode 100644 index 0000000..1d06327 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/Individual.java @@ -0,0 +1,1119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.Index; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * Individual represents a single human being (a man, woman or child). The + * individual can be a customer, an employee or any other person that the + * organization needs to store information about. + */ +@Schema(description = "Individual represents a single human being (a man, woman or child). The individual can be a customer, an employee or any other person that the organization needs to store information about.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") +@Entity +@Table(indexes = { @Index(name = "IX_FAMILYNAME", columnList = "familyName") }) +public class Individual extends BaseRootEntity { + + + @JsonProperty("id") + private String id = null; + + @JsonProperty("aristocraticTitle") + private String aristocraticTitle = null; + + private OffsetDateTime birthDate = null; + + @JsonProperty("countryOfBirth") + private String countryOfBirth = null; + + private OffsetDateTime deathDate = null; + + @JsonProperty("familyName") + private String familyName = null; + + @JsonProperty("familyNamePrefix") + private String familyNamePrefix = null; + + @JsonProperty("formattedName") + private String formattedName = null; + + @JsonProperty("fullName") + private String fullName = null; + + @JsonProperty("gender") + private String gender = null; + + @JsonProperty("generation") + private String generation = null; + + @JsonProperty("givenName") + private String givenName = null; + + @JsonProperty("legalName") + private String legalName = null; + + @JsonProperty("location") + private String location = null; + + @JsonProperty("maritalStatus") + private String maritalStatus = null; + + @JsonProperty("middleName") + private String middleName = null; + + @JsonProperty("nationality") + private String nationality = null; + + @JsonProperty("placeOfBirth") + private String placeOfBirth = null; + + @JsonProperty("preferredGivenName") + private String preferredGivenName = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("contactMedium") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set contactMedium = new HashSet<>(); + + @JsonProperty("creditRating") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set creditRating = new HashSet<>(); + + @JsonProperty("disability") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set disability = new HashSet<>(); + + @JsonProperty("externalReference") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set externalReference = new HashSet<>(); + + @JsonProperty("individualIdentification") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set individualIdentification = new HashSet<>(); + + @JsonProperty("languageAbility") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set languageAbility = new HashSet<>(); + + @JsonProperty("otherName") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set otherName = new HashSet<>(); + + @JsonProperty("partyCharacteristic") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set partyCharacteristic = new HashSet<>(); + + @JsonProperty("relatedParty") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set relatedParty = new HashSet<>(); + + @JsonProperty("skill") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set skill = new HashSet<>(); + + @JsonProperty("status") + private IndividualStateType status = null; + + @JsonProperty("taxExemptionCertificate") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set taxExemptionCertificate = new HashSet<>(); + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + + /** + * Unique identifier of the organization + * + * @return id + **/ + @Schema(description = "Unique identifier of the organization") + + public String getId() { + return uuid; + } + + + public Individual aristocraticTitle(String aristocraticTitle) { + this.aristocraticTitle = aristocraticTitle; + return this; + } + + /** + * e.g. Baron, Graf, Earl,… + * + * @return aristocraticTitle + **/ + @Schema(description = "e.g. Baron, Graf, Earl,…") + + public String getAristocraticTitle() { + return aristocraticTitle; + } + + public void setAristocraticTitle(String aristocraticTitle) { + this.aristocraticTitle = aristocraticTitle; + } + + public Individual birthDate(OffsetDateTime birthDate) { + this.birthDate = birthDate; + return this; + } + + /** + * Birth date + * + * @return birthDate + **/ + @Schema(description = "Birth date") + + @Valid + + @JsonProperty("birthDate") + public String getBirthDateString() { + + if ( birthDate == null ) { + return null; + } + return birthDate.toString(); + } + + public OffsetDateTime getBirthDate() { + return birthDate; + } + + public void setBirthDate(OffsetDateTime birthDate) { + this.birthDate = birthDate; + } + + public Individual countryOfBirth(String countryOfBirth) { + this.countryOfBirth = countryOfBirth; + return this; + } + + /** + * Country where the individual was born + * + * @return countryOfBirth + **/ + @Schema(description = "Country where the individual was born") + + public String getCountryOfBirth() { + return countryOfBirth; + } + + public void setCountryOfBirth(String countryOfBirth) { + this.countryOfBirth = countryOfBirth; + } + + public Individual deathDate(OffsetDateTime deathDate) { + this.deathDate = deathDate; + return this; + } + + /** + * Date of death + * + * @return deathDate + **/ + @Schema(description = "Date of death") + + @Valid + + @JsonProperty("deathDate") + public String getDeathDateStr() { + + if ( deathDate == null ) { + return null; + } + return deathDate.toString(); + } + + public OffsetDateTime getDeathDate() { + return deathDate; + } + + public void setDeathDate(OffsetDateTime deathDate) { + this.deathDate = deathDate; + } + + public Individual familyName(String familyName) { + this.familyName = familyName; + return this; + } + + /** + * Contains the non-chosen or inherited name. Also known as last name in the + * Western context + * + * @return familyName + **/ + @Schema(description = "Contains the non-chosen or inherited name. Also known as last name in the Western context") + + public String getFamilyName() { + return familyName; + } + + public void setFamilyName(String familyName) { + this.familyName = familyName; + } + + public Individual familyNamePrefix(String familyNamePrefix) { + this.familyNamePrefix = familyNamePrefix; + return this; + } + + /** + * Family name prefix + * + * @return familyNamePrefix + **/ + @Schema(description = "Family name prefix") + + public String getFamilyNamePrefix() { + return familyNamePrefix; + } + + public void setFamilyNamePrefix(String familyNamePrefix) { + this.familyNamePrefix = familyNamePrefix; + } + + public Individual formattedName(String formattedName) { + this.formattedName = formattedName; + return this; + } + + /** + * A fully formatted name in one string with all of its pieces in their proper + * place and all of the necessary punctuation. Useful for specific contexts + * (Chinese, Japanese, Korean,…) + * + * @return formattedName + **/ + @Schema(description = "A fully formatted name in one string with all of its pieces in their proper place and all of the necessary punctuation. Useful for specific contexts (Chinese, Japanese, Korean,…)") + + public String getFormattedName() { + return formattedName; + } + + public void setFormattedName(String formattedName) { + this.formattedName = formattedName; + } + + public Individual fullName(String fullName) { + this.fullName = fullName; + return this; + } + + /** + * Full name flatten (first, middle, and last names) + * + * @return fullName + **/ + @Schema(description = "Full name flatten (first, middle, and last names)") + + public String getFullName() { + return fullName; + } + + public void setFullName(String fullName) { + this.fullName = fullName; + } + + public Individual gender(String gender) { + this.gender = gender; + return this; + } + + /** + * Gender + * + * @return gender + **/ + @Schema(description = "Gender") + + public String getGender() { + return gender; + } + + public void setGender(String gender) { + this.gender = gender; + } + + public Individual generation(String generation) { + this.generation = generation; + return this; + } + + /** + * e.g.. Sr, Jr, III (the third),… + * + * @return generation + **/ + @Schema(description = "e.g.. Sr, Jr, III (the third),…") + + public String getGeneration() { + return generation; + } + + public void setGeneration(String generation) { + this.generation = generation; + } + + public Individual givenName(String givenName) { + this.givenName = givenName; + return this; + } + + /** + * First name of the individual + * + * @return givenName + **/ + @Schema(description = "First name of the individual") + + public String getGivenName() { + return givenName; + } + + public void setGivenName(String givenName) { + this.givenName = givenName; + } + + public Individual legalName(String legalName) { + this.legalName = legalName; + return this; + } + + /** + * Legal name or birth name (name one has for official purposes) + * + * @return legalName + **/ + @Schema(description = "Legal name or birth name (name one has for official purposes)") + + public String getLegalName() { + return legalName; + } + + public void setLegalName(String legalName) { + this.legalName = legalName; + } + + public Individual location(String location) { + this.location = location; + return this; + } + + /** + * Temporary current location od the individual (may be used if the individual + * has approved its sharing) + * + * @return location + **/ + @Schema(description = "Temporary current location od the individual (may be used if the individual has approved its sharing)") + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public Individual maritalStatus(String maritalStatus) { + this.maritalStatus = maritalStatus; + return this; + } + + /** + * Marital status (married, divorced, widow ...) + * + * @return maritalStatus + **/ + @Schema(description = "Marital status (married, divorced, widow ...)") + + public String getMaritalStatus() { + return maritalStatus; + } + + public void setMaritalStatus(String maritalStatus) { + this.maritalStatus = maritalStatus; + } + + public Individual middleName(String middleName) { + this.middleName = middleName; + return this; + } + + /** + * Middles name or initial + * + * @return middleName + **/ + @Schema(description = "Middles name or initial") + + public String getMiddleName() { + return middleName; + } + + public void setMiddleName(String middleName) { + this.middleName = middleName; + } + + public Individual nationality(String nationality) { + this.nationality = nationality; + return this; + } + + /** + * Nationality + * + * @return nationality + **/ + @Schema(description = "Nationality") + + public String getNationality() { + return nationality; + } + + public void setNationality(String nationality) { + this.nationality = nationality; + } + + public Individual placeOfBirth(String placeOfBirth) { + this.placeOfBirth = placeOfBirth; + return this; + } + + /** + * Reference to the place where the individual was born + * + * @return placeOfBirth + **/ + @Schema(description = "Reference to the place where the individual was born") + + public String getPlaceOfBirth() { + return placeOfBirth; + } + + public void setPlaceOfBirth(String placeOfBirth) { + this.placeOfBirth = placeOfBirth; + } + + public Individual preferredGivenName(String preferredGivenName) { + this.preferredGivenName = preferredGivenName; + return this; + } + + /** + * Contains the chosen name by which the individual prefers to be addressed. + * Note: This name may be a name other than a given name, such as a nickname + * + * @return preferredGivenName + **/ + @Schema(description = "Contains the chosen name by which the individual prefers to be addressed. Note: This name may be a name other than a given name, such as a nickname") + + public String getPreferredGivenName() { + return preferredGivenName; + } + + public void setPreferredGivenName(String preferredGivenName) { + this.preferredGivenName = preferredGivenName; + } + + public Individual title(String title) { + this.title = title; + return this; + } + + /** + * Useful for titles (aristocratic, social,...) Pr, Dr, Sir, ... + * + * @return title + **/ + @Schema(description = "Useful for titles (aristocratic, social,...) Pr, Dr, Sir, ...") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public Individual contactMedium(Set contactMedium) { + this.contactMedium = contactMedium; + return this; + } + + public Individual addContactMediumItem(ContactMedium contactMediumItem) { + if (this.contactMedium == null) { + this.contactMedium = new HashSet<>(); + } + this.contactMedium.add(contactMediumItem); + return this; + } + + /** + * Get contactMedium + * + * @return contactMedium + **/ + @Schema(description = "") + + @Valid + + public Set getContactMedium() { + return contactMedium; + } + + public void setContactMedium(Set contactMedium) { + this.contactMedium = contactMedium; + } + + public Individual creditRating(Set creditRating) { + this.creditRating = creditRating; + return this; + } + + public Individual addCreditRatingItem(PartyCreditProfile creditRatingItem) { + if (this.creditRating == null) { + this.creditRating = new HashSet<>(); + } + this.creditRating.add(creditRatingItem); + return this; + } + + /** + * Get creditRating + * + * @return creditRating + **/ + @Schema(description = "") + + @Valid + + public Set getCreditRating() { + return creditRating; + } + + public void setCreditRating(Set creditRating) { + this.creditRating = creditRating; + } + + public Individual disability(Set disability) { + this.disability = disability; + return this; + } + + public Individual addDisabilityItem(Disability disabilityItem) { + if (this.disability == null) { + this.disability = new HashSet<>(); + } + this.disability.add(disabilityItem); + return this; + } + + /** + * Get disability + * + * @return disability + **/ + @Schema(description = "") + + @Valid + + public Set getDisability() { + return disability; + } + + public void setDisability(Set disability) { + this.disability = disability; + } + + public Individual externalReference(Set externalReference) { + this.externalReference = externalReference; + return this; + } + + public Individual addExternalReferenceItem(ExternalReference externalReferenceItem) { + if (this.externalReference == null) { + this.externalReference = new HashSet<>(); + } + this.externalReference.add(externalReferenceItem); + return this; + } + + /** + * Get externalReference + * + * @return externalReference + **/ + @Schema(description = "") + + @Valid + + public Set getExternalReference() { + return externalReference; + } + + public void setExternalReference(Set externalReference) { + this.externalReference = externalReference; + } + + public Individual individualIdentification(Set individualIdentification) { + this.individualIdentification = individualIdentification; + return this; + } + + public Individual addIndividualIdentificationItem(IndividualIdentification individualIdentificationItem) { + if (this.individualIdentification == null) { + this.individualIdentification = new HashSet<>(); + } + this.individualIdentification.add(individualIdentificationItem); + return this; + } + + /** + * Get individualIdentification + * + * @return individualIdentification + **/ + @Schema(description = "") + + @Valid + + public Set getIndividualIdentification() { + return individualIdentification; + } + + public void setIndividualIdentification(Set individualIdentification) { + this.individualIdentification = individualIdentification; + } + + public Individual languageAbility(Set languageAbility) { + this.languageAbility = languageAbility; + return this; + } + + public Individual addLanguageAbilityItem(LanguageAbility languageAbilityItem) { + if (this.languageAbility == null) { + this.languageAbility = new HashSet<>(); + } + this.languageAbility.add(languageAbilityItem); + return this; + } + + /** + * Get languageAbility + * + * @return languageAbility + **/ + @Schema(description = "") + + @Valid + + public Set getLanguageAbility() { + return languageAbility; + } + + public void setLanguageAbility(Set languageAbility) { + this.languageAbility = languageAbility; + } + + public Individual otherName(Set otherName) { + this.otherName = otherName; + return this; + } + + public Individual addOtherNameItem(OtherNameIndividual otherNameItem) { + if (this.otherName == null) { + this.otherName = new HashSet<>(); + } + this.otherName.add(otherNameItem); + return this; + } + + /** + * Get otherName + * + * @return otherName + **/ + @Schema(description = "") + + @Valid + + public Set getOtherName() { + return otherName; + } + + public void setOtherName(Set otherName) { + this.otherName = otherName; + } + + public Individual partyCharacteristic(Set partyCharacteristic) { + this.partyCharacteristic = partyCharacteristic; + return this; + } + + public Individual addPartyCharacteristicItem(Characteristic partyCharacteristicItem) { + if (this.partyCharacteristic == null) { + this.partyCharacteristic = new HashSet<>(); + } + this.partyCharacteristic.add(partyCharacteristicItem); + return this; + } + + /** + * Get partyCharacteristic + * + * @return partyCharacteristic + **/ + @Schema(description = "") + + @Valid + + public Set getPartyCharacteristic() { + return partyCharacteristic; + } + + public void setPartyCharacteristic(Set partyCharacteristic) { + this.partyCharacteristic = partyCharacteristic; + } + + public Individual relatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public Individual addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new HashSet<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public Set getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + } + + public Individual skill(Set skill) { + this.skill = skill; + return this; + } + + public Individual addSkillItem(Skill skillItem) { + if (this.skill == null) { + this.skill = new HashSet<>(); + } + this.skill.add(skillItem); + return this; + } + + /** + * Get skill + * + * @return skill + **/ + @Schema(description = "") + + @Valid + + public Set getSkill() { + return skill; + } + + public void setSkill(Set skill) { + this.skill = skill; + } + + public Individual status(IndividualStateType status) { + this.status = status; + return this; + } + + /** + * Status of the individual + * + * @return status + **/ + @Schema(description = "Status of the individual") + + @Valid + + public IndividualStateType getStatus() { + return status; + } + + public void setStatus(IndividualStateType status) { + this.status = status; + } + + public Individual taxExemptionCertificate(Set taxExemptionCertificate) { + this.taxExemptionCertificate = taxExemptionCertificate; + return this; + } + + public Individual addTaxExemptionCertificateItem(TaxExemptionCertificate taxExemptionCertificateItem) { + if (this.taxExemptionCertificate == null) { + this.taxExemptionCertificate = new HashSet<>(); + } + this.taxExemptionCertificate.add(taxExemptionCertificateItem); + return this; + } + + /** + * Get taxExemptionCertificate + * + * @return taxExemptionCertificate + **/ + @Schema(description = "") + + @Valid + + public Set getTaxExemptionCertificate() { + return taxExemptionCertificate; + } + + public void setTaxExemptionCertificate(Set taxExemptionCertificate) { + this.taxExemptionCertificate = taxExemptionCertificate; + } + + public Individual baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public Individual schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Individual type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Individual individual = (Individual) o; + return Objects.equals(this.uuid, individual.uuid) && Objects.equals(this.href, individual.href) + && Objects.equals(this.aristocraticTitle, individual.aristocraticTitle) + && Objects.equals(this.birthDate, individual.birthDate) + && Objects.equals(this.countryOfBirth, individual.countryOfBirth) + && Objects.equals(this.deathDate, individual.deathDate) + && Objects.equals(this.familyName, individual.familyName) + && Objects.equals(this.familyNamePrefix, individual.familyNamePrefix) + && Objects.equals(this.formattedName, individual.formattedName) + && Objects.equals(this.fullName, individual.fullName) && Objects.equals(this.gender, individual.gender) + && Objects.equals(this.generation, individual.generation) + && Objects.equals(this.givenName, individual.givenName) + && Objects.equals(this.legalName, individual.legalName) + && Objects.equals(this.location, individual.location) + && Objects.equals(this.maritalStatus, individual.maritalStatus) + && Objects.equals(this.middleName, individual.middleName) + && Objects.equals(this.nationality, individual.nationality) + && Objects.equals(this.placeOfBirth, individual.placeOfBirth) + && Objects.equals(this.preferredGivenName, individual.preferredGivenName) + && Objects.equals(this.title, individual.title) + && Objects.equals(this.contactMedium, individual.contactMedium) + && Objects.equals(this.creditRating, individual.creditRating) + && Objects.equals(this.disability, individual.disability) + && Objects.equals(this.externalReference, individual.externalReference) + && Objects.equals(this.individualIdentification, individual.individualIdentification) + && Objects.equals(this.languageAbility, individual.languageAbility) + && Objects.equals(this.otherName, individual.otherName) + && Objects.equals(this.partyCharacteristic, individual.partyCharacteristic) + && Objects.equals(this.relatedParty, individual.relatedParty) + && Objects.equals(this.skill, individual.skill) && Objects.equals(this.status, individual.status) + && Objects.equals(this.taxExemptionCertificate, individual.taxExemptionCertificate) + && Objects.equals(this.baseType, individual.baseType) + && Objects.equals(this.schemaLocation, individual.schemaLocation) + && Objects.equals(this.type, individual.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, aristocraticTitle, birthDate, countryOfBirth, deathDate, familyName, +// familyNamePrefix, formattedName, fullName, gender, generation, givenName, legalName, location, +// maritalStatus, middleName, nationality, placeOfBirth, preferredGivenName, title, contactMedium, +// creditRating, disability, externalReference, individualIdentification, languageAbility, otherName, +// partyCharacteristic, relatedParty, skill, status, taxExemptionCertificate, baseType, schemaLocation, +// type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Individual {\n"); + + sb.append(" id: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" aristocraticTitle: ").append(toIndentedString(aristocraticTitle)).append("\n"); + sb.append(" birthDate: ").append(toIndentedString(birthDate)).append("\n"); + sb.append(" countryOfBirth: ").append(toIndentedString(countryOfBirth)).append("\n"); + sb.append(" deathDate: ").append(toIndentedString(deathDate)).append("\n"); + sb.append(" familyName: ").append(toIndentedString(familyName)).append("\n"); + sb.append(" familyNamePrefix: ").append(toIndentedString(familyNamePrefix)).append("\n"); + sb.append(" formattedName: ").append(toIndentedString(formattedName)).append("\n"); + sb.append(" fullName: ").append(toIndentedString(fullName)).append("\n"); + sb.append(" gender: ").append(toIndentedString(gender)).append("\n"); + sb.append(" generation: ").append(toIndentedString(generation)).append("\n"); + sb.append(" givenName: ").append(toIndentedString(givenName)).append("\n"); + sb.append(" legalName: ").append(toIndentedString(legalName)).append("\n"); + sb.append(" location: ").append(toIndentedString(location)).append("\n"); + sb.append(" maritalStatus: ").append(toIndentedString(maritalStatus)).append("\n"); + sb.append(" middleName: ").append(toIndentedString(middleName)).append("\n"); + sb.append(" nationality: ").append(toIndentedString(nationality)).append("\n"); + sb.append(" placeOfBirth: ").append(toIndentedString(placeOfBirth)).append("\n"); + sb.append(" preferredGivenName: ").append(toIndentedString(preferredGivenName)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" contactMedium: ").append(toIndentedString(contactMedium)).append("\n"); + sb.append(" creditRating: ").append(toIndentedString(creditRating)).append("\n"); + sb.append(" disability: ").append(toIndentedString(disability)).append("\n"); + sb.append(" externalReference: ").append(toIndentedString(externalReference)).append("\n"); + sb.append(" individualIdentification: ").append(toIndentedString(individualIdentification)).append("\n"); + sb.append(" languageAbility: ").append(toIndentedString(languageAbility)).append("\n"); + sb.append(" otherName: ").append(toIndentedString(otherName)).append("\n"); + sb.append(" partyCharacteristic: ").append(toIndentedString(partyCharacteristic)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" skill: ").append(toIndentedString(skill)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" taxExemptionCertificate: ").append(toIndentedString(taxExemptionCertificate)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualAttributeValueChangeEvent.java new file mode 100644 index 0000000..41afa3c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualAttributeValueChangeEvent.java @@ -0,0 +1,355 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class IndividualAttributeValueChangeEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("event") + private IndividualAttributeValueChangeEventPayload event = null; + + public IndividualAttributeValueChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public IndividualAttributeValueChangeEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public IndividualAttributeValueChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public IndividualAttributeValueChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public IndividualAttributeValueChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public IndividualAttributeValueChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public IndividualAttributeValueChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public IndividualAttributeValueChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public IndividualAttributeValueChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public IndividualAttributeValueChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public IndividualAttributeValueChangeEvent event(IndividualAttributeValueChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public IndividualAttributeValueChangeEventPayload getEvent() { + return event; + } + + public void setEvent(IndividualAttributeValueChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IndividualAttributeValueChangeEvent individualAttributeValueChangeEvent = (IndividualAttributeValueChangeEvent) o; + return Objects.equals(this.eventId, individualAttributeValueChangeEvent.eventId) && + Objects.equals(this.fieldPath, individualAttributeValueChangeEvent.fieldPath) && + Objects.equals(this.eventTime, individualAttributeValueChangeEvent.eventTime) && + Objects.equals(this.description, individualAttributeValueChangeEvent.description) && + Objects.equals(this.timeOcurred, individualAttributeValueChangeEvent.timeOcurred) && + Objects.equals(this.title, individualAttributeValueChangeEvent.title) && + Objects.equals(this.eventType, individualAttributeValueChangeEvent.eventType) && + Objects.equals(this.domain, individualAttributeValueChangeEvent.domain) && + Objects.equals(this.priority, individualAttributeValueChangeEvent.priority) && + Objects.equals(this.correlationId, individualAttributeValueChangeEvent.correlationId) && + Objects.equals(this.event, individualAttributeValueChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, fieldPath, eventTime, description, timeOcurred, title, eventType, domain, priority, correlationId, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IndividualAttributeValueChangeEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualAttributeValueChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualAttributeValueChangeEventPayload.java new file mode 100644 index 0000000..9a5cdca --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualAttributeValueChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class IndividualAttributeValueChangeEventPayload { + @JsonProperty("individual") + private Individual individual = null; + + public IndividualAttributeValueChangeEventPayload individual(Individual individual) { + this.individual = individual; + return this; + } + + /** + * The involved resource data for the event + * @return individual + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Individual getIndividual() { + return individual; + } + + public void setIndividual(Individual individual) { + this.individual = individual; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IndividualAttributeValueChangeEventPayload individualAttributeValueChangeEventPayload = (IndividualAttributeValueChangeEventPayload) o; + return Objects.equals(this.individual, individualAttributeValueChangeEventPayload.individual); + } + + @Override + public int hashCode() { + return Objects.hash(individual); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IndividualAttributeValueChangeEventPayload {\n"); + + sb.append(" individual: ").append(toIndentedString(individual)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualCreate.java b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualCreate.java new file mode 100644 index 0000000..34861fe --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualCreate.java @@ -0,0 +1,139 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Individual represents a single human being (a man, woman or child). The individual can be a customer, an employee or any other person that the organization needs to store information about. Skipped properties: id,href + */ +@Schema(description = "Individual represents a single human being (a man, woman or child). The individual can be a customer, an employee or any other person that the organization needs to store information about. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class IndividualCreate extends IndividualUpdate { + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IndividualCreate individualCreate = (IndividualCreate) o; + return Objects.equals(this.aristocraticTitle, individualCreate.aristocraticTitle) && + Objects.equals(this.birthDate, individualCreate.birthDate) && + Objects.equals(this.countryOfBirth, individualCreate.countryOfBirth) && + Objects.equals(this.deathDate, individualCreate.deathDate) && + Objects.equals(this.familyName, individualCreate.familyName) && + Objects.equals(this.familyNamePrefix, individualCreate.familyNamePrefix) && + Objects.equals(this.formattedName, individualCreate.formattedName) && + Objects.equals(this.fullName, individualCreate.fullName) && + Objects.equals(this.gender, individualCreate.gender) && + Objects.equals(this.generation, individualCreate.generation) && + Objects.equals(this.givenName, individualCreate.givenName) && + Objects.equals(this.legalName, individualCreate.legalName) && + Objects.equals(this.location, individualCreate.location) && + Objects.equals(this.maritalStatus, individualCreate.maritalStatus) && + Objects.equals(this.middleName, individualCreate.middleName) && + Objects.equals(this.nationality, individualCreate.nationality) && + Objects.equals(this.placeOfBirth, individualCreate.placeOfBirth) && + Objects.equals(this.preferredGivenName, individualCreate.preferredGivenName) && + Objects.equals(this.title, individualCreate.title) && + Objects.equals(this.contactMedium, individualCreate.contactMedium) && + Objects.equals(this.creditRating, individualCreate.creditRating) && + Objects.equals(this.disability, individualCreate.disability) && + Objects.equals(this.externalReference, individualCreate.externalReference) && + Objects.equals(this.individualIdentification, individualCreate.individualIdentification) && + Objects.equals(this.languageAbility, individualCreate.languageAbility) && + Objects.equals(this.otherName, individualCreate.otherName) && + Objects.equals(this.partyCharacteristic, individualCreate.partyCharacteristic) && + Objects.equals(this.relatedParty, individualCreate.relatedParty) && + Objects.equals(this.skill, individualCreate.skill) && + Objects.equals(this.status, individualCreate.status) && + Objects.equals(this.taxExemptionCertificate, individualCreate.taxExemptionCertificate) && + Objects.equals(this.baseType, individualCreate.baseType) && + Objects.equals(this.schemaLocation, individualCreate.schemaLocation) && + Objects.equals(this.type, individualCreate.type); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IndividualCreate {\n"); + + sb.append(" aristocraticTitle: ").append(toIndentedString(aristocraticTitle)).append("\n"); + sb.append(" birthDate: ").append(toIndentedString(birthDate)).append("\n"); + sb.append(" countryOfBirth: ").append(toIndentedString(countryOfBirth)).append("\n"); + sb.append(" deathDate: ").append(toIndentedString(deathDate)).append("\n"); + sb.append(" familyName: ").append(toIndentedString(familyName)).append("\n"); + sb.append(" familyNamePrefix: ").append(toIndentedString(familyNamePrefix)).append("\n"); + sb.append(" formattedName: ").append(toIndentedString(formattedName)).append("\n"); + sb.append(" fullName: ").append(toIndentedString(fullName)).append("\n"); + sb.append(" gender: ").append(toIndentedString(gender)).append("\n"); + sb.append(" generation: ").append(toIndentedString(generation)).append("\n"); + sb.append(" givenName: ").append(toIndentedString(givenName)).append("\n"); + sb.append(" legalName: ").append(toIndentedString(legalName)).append("\n"); + sb.append(" location: ").append(toIndentedString(location)).append("\n"); + sb.append(" maritalStatus: ").append(toIndentedString(maritalStatus)).append("\n"); + sb.append(" middleName: ").append(toIndentedString(middleName)).append("\n"); + sb.append(" nationality: ").append(toIndentedString(nationality)).append("\n"); + sb.append(" placeOfBirth: ").append(toIndentedString(placeOfBirth)).append("\n"); + sb.append(" preferredGivenName: ").append(toIndentedString(preferredGivenName)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" contactMedium: ").append(toIndentedString(contactMedium)).append("\n"); + sb.append(" creditRating: ").append(toIndentedString(creditRating)).append("\n"); + sb.append(" disability: ").append(toIndentedString(disability)).append("\n"); + sb.append(" externalReference: ").append(toIndentedString(externalReference)).append("\n"); + sb.append(" individualIdentification: ").append(toIndentedString(individualIdentification)).append("\n"); + sb.append(" languageAbility: ").append(toIndentedString(languageAbility)).append("\n"); + sb.append(" otherName: ").append(toIndentedString(otherName)).append("\n"); + sb.append(" partyCharacteristic: ").append(toIndentedString(partyCharacteristic)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" skill: ").append(toIndentedString(skill)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" taxExemptionCertificate: ").append(toIndentedString(taxExemptionCertificate)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualCreateEvent.java b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualCreateEvent.java new file mode 100644 index 0000000..fc12211 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualCreateEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class IndividualCreateEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("event") + private IndividualCreateEventPayload event = null; + + public IndividualCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public IndividualCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public IndividualCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public IndividualCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public IndividualCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public IndividualCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public IndividualCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public IndividualCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public IndividualCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public IndividualCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public IndividualCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public IndividualCreateEvent event(IndividualCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public IndividualCreateEventPayload getEvent() { + return event; + } + + public void setEvent(IndividualCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IndividualCreateEvent individualCreateEvent = (IndividualCreateEvent) o; + return Objects.equals(this.eventId, individualCreateEvent.eventId) && + Objects.equals(this.eventTime, individualCreateEvent.eventTime) && + Objects.equals(this.description, individualCreateEvent.description) && + Objects.equals(this.timeOcurred, individualCreateEvent.timeOcurred) && + Objects.equals(this.title, individualCreateEvent.title) && + Objects.equals(this.eventType, individualCreateEvent.eventType) && + Objects.equals(this.domain, individualCreateEvent.domain) && + Objects.equals(this.priority, individualCreateEvent.priority) && + Objects.equals(this.href, individualCreateEvent.href) && + Objects.equals(this.id, individualCreateEvent.id) && + Objects.equals(this.correlationId, individualCreateEvent.correlationId) && + Objects.equals(this.event, individualCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, description, timeOcurred, title, eventType, domain, priority, href, id, correlationId, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IndividualCreateEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualCreateEventPayload.java new file mode 100644 index 0000000..41c37ee --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualCreateEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class IndividualCreateEventPayload { + @JsonProperty("individual") + private Individual individual = null; + + public IndividualCreateEventPayload individual(Individual individual) { + this.individual = individual; + return this; + } + + /** + * The involved resource data for the event + * @return individual + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Individual getIndividual() { + return individual; + } + + public void setIndividual(Individual individual) { + this.individual = individual; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IndividualCreateEventPayload individualCreateEventPayload = (IndividualCreateEventPayload) o; + return Objects.equals(this.individual, individualCreateEventPayload.individual); + } + + @Override + public int hashCode() { + return Objects.hash(individual); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IndividualCreateEventPayload {\n"); + + sb.append(" individual: ").append(toIndentedString(individual)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualDeleteEvent.java new file mode 100644 index 0000000..320fff9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualDeleteEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class IndividualDeleteEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("event") + private IndividualDeleteEventPayload event = null; + + public IndividualDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public IndividualDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public IndividualDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public IndividualDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public IndividualDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public IndividualDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public IndividualDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public IndividualDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public IndividualDeleteEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public IndividualDeleteEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public IndividualDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public IndividualDeleteEvent event(IndividualDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public IndividualDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(IndividualDeleteEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IndividualDeleteEvent individualDeleteEvent = (IndividualDeleteEvent) o; + return Objects.equals(this.eventId, individualDeleteEvent.eventId) && + Objects.equals(this.eventTime, individualDeleteEvent.eventTime) && + Objects.equals(this.description, individualDeleteEvent.description) && + Objects.equals(this.timeOcurred, individualDeleteEvent.timeOcurred) && + Objects.equals(this.title, individualDeleteEvent.title) && + Objects.equals(this.eventType, individualDeleteEvent.eventType) && + Objects.equals(this.domain, individualDeleteEvent.domain) && + Objects.equals(this.priority, individualDeleteEvent.priority) && + Objects.equals(this.href, individualDeleteEvent.href) && + Objects.equals(this.id, individualDeleteEvent.id) && + Objects.equals(this.correlationId, individualDeleteEvent.correlationId) && + Objects.equals(this.event, individualDeleteEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, description, timeOcurred, title, eventType, domain, priority, href, id, correlationId, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IndividualDeleteEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualDeleteEventPayload.java new file mode 100644 index 0000000..ecec106 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualDeleteEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class IndividualDeleteEventPayload { + @JsonProperty("individual") + private Individual individual = null; + + public IndividualDeleteEventPayload individual(Individual individual) { + this.individual = individual; + return this; + } + + /** + * The involved resource data for the event + * @return individual + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Individual getIndividual() { + return individual; + } + + public void setIndividual(Individual individual) { + this.individual = individual; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IndividualDeleteEventPayload individualDeleteEventPayload = (IndividualDeleteEventPayload) o; + return Objects.equals(this.individual, individualDeleteEventPayload.individual); + } + + @Override + public int hashCode() { + return Objects.hash(individual); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IndividualDeleteEventPayload {\n"); + + sb.append(" individual: ").append(toIndentedString(individual)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualIdentification.java b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualIdentification.java new file mode 100644 index 0000000..d1797d9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualIdentification.java @@ -0,0 +1,253 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; + +/** + * Represents our registration of information used as proof of identity by an + * individual (passport, national identity card, drivers license, social + * security number, birth certificate) + */ +@Schema(description = "Represents our registration of information used as proof of identity by an individual (passport, national identity card, drivers license, social security number, birth certificate)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Entity +public class IndividualIdentification extends BaseRootEntity { + @JsonProperty("identificationId") + private String identificationId = null; + + @JsonProperty("identificationType") + private String identificationType = null; + + @JsonProperty("issuingAuthority") + private String issuingAuthority = null; + + private OffsetDateTime issuingDate = null; + + @JsonProperty("attachment") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "attachmentrv_refid", referencedColumnName = "uuid") + private AttachmentRefOrValue attachment = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + public IndividualIdentification identificationId(String identificationId) { + this.identificationId = identificationId; + return this; + } + + /** + * Identifier + * + * @return identificationId + **/ + @Schema(description = "Identifier") + + public String getIdentificationId() { + return identificationId; + } + + public void setIdentificationId(String identificationId) { + this.identificationId = identificationId; + } + + public IndividualIdentification identificationType(String identificationType) { + this.identificationType = identificationType; + return this; + } + + /** + * Identification type (passport, national identity card, drivers license, + * social security number, birth certificate) + * + * @return identificationType + **/ + @Schema(description = "Identification type (passport, national identity card, drivers license, social security number, birth certificate)") + + public String getIdentificationType() { + return identificationType; + } + + public void setIdentificationType(String identificationType) { + this.identificationType = identificationType; + } + + public IndividualIdentification issuingAuthority(String issuingAuthority) { + this.issuingAuthority = issuingAuthority; + return this; + } + + /** + * Authority which has issued the identifier, such as: social security, town + * hall + * + * @return issuingAuthority + **/ + @Schema(description = "Authority which has issued the identifier, such as: social security, town hall") + + public String getIssuingAuthority() { + return issuingAuthority; + } + + public void setIssuingAuthority(String issuingAuthority) { + this.issuingAuthority = issuingAuthority; + } + + public IndividualIdentification issuingDate(OffsetDateTime issuingDate) { + this.issuingDate = issuingDate; + return this; + } + + /** + * Date at which the identifier was issued + * + * @return issuingDate + **/ + @Schema(description = "Date at which the identifier was issued") + + @Valid + + @JsonProperty("issuingDate") + public String getIssuingDateString() { + return issuingDate.toString(); + } + + public OffsetDateTime getIssuingDate() { + return issuingDate; + } + + public void setIssuingDate(OffsetDateTime issuingDate) { + this.issuingDate = issuingDate; + } + + public IndividualIdentification attachment(AttachmentRefOrValue attachment) { + this.attachment = attachment; + return this; + } + + /** + * Get attachment + * + * @return attachment + **/ + @Schema(description = "") + + @Valid + + public AttachmentRefOrValue getAttachment() { + return attachment; + } + + public void setAttachment(AttachmentRefOrValue attachment) { + this.attachment = attachment; + } + + public IndividualIdentification validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the identification information is valid. + * + * @return validFor + **/ + @Schema(description = "The period for which the identification information is valid.") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IndividualIdentification individualIdentification = (IndividualIdentification) o; + return Objects.equals(this.identificationId, individualIdentification.identificationId) + && Objects.equals(this.identificationType, individualIdentification.identificationType) + && Objects.equals(this.issuingAuthority, individualIdentification.issuingAuthority) + && Objects.equals(this.issuingDate, individualIdentification.issuingDate) + && Objects.equals(this.attachment, individualIdentification.attachment) + && Objects.equals(this.validFor, individualIdentification.validFor) + && Objects.equals(this.baseType, individualIdentification.baseType) + && Objects.equals(this.schemaLocation, individualIdentification.schemaLocation) + && Objects.equals(this.type, individualIdentification.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(identificationId, identificationType, issuingAuthority, issuingDate, attachment, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IndividualIdentification {\n"); + + sb.append(" identificationId: ").append(toIndentedString(identificationId)).append("\n"); + sb.append(" identificationType: ").append(toIndentedString(identificationType)).append("\n"); + sb.append(" issuingAuthority: ").append(toIndentedString(issuingAuthority)).append("\n"); + sb.append(" issuingDate: ").append(toIndentedString(issuingDate)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualStateChangeEvent.java new file mode 100644 index 0000000..b2db1c0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualStateChangeEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class IndividualStateChangeEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("event") + private IndividualStateChangeEventPayload event = null; + + public IndividualStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public IndividualStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public IndividualStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public IndividualStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public IndividualStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public IndividualStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public IndividualStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public IndividualStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public IndividualStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public IndividualStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public IndividualStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public IndividualStateChangeEvent event(IndividualStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public IndividualStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(IndividualStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IndividualStateChangeEvent individualStateChangeEvent = (IndividualStateChangeEvent) o; + return Objects.equals(this.eventId, individualStateChangeEvent.eventId) && + Objects.equals(this.eventTime, individualStateChangeEvent.eventTime) && + Objects.equals(this.description, individualStateChangeEvent.description) && + Objects.equals(this.timeOcurred, individualStateChangeEvent.timeOcurred) && + Objects.equals(this.title, individualStateChangeEvent.title) && + Objects.equals(this.eventType, individualStateChangeEvent.eventType) && + Objects.equals(this.domain, individualStateChangeEvent.domain) && + Objects.equals(this.priority, individualStateChangeEvent.priority) && + Objects.equals(this.href, individualStateChangeEvent.href) && + Objects.equals(this.id, individualStateChangeEvent.id) && + Objects.equals(this.correlationId, individualStateChangeEvent.correlationId) && + Objects.equals(this.event, individualStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, description, timeOcurred, title, eventType, domain, priority, href, id, correlationId, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IndividualStateChangeEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualStateChangeEventPayload.java new file mode 100644 index 0000000..1757e83 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualStateChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class IndividualStateChangeEventPayload { + @JsonProperty("individual") + private Individual individual = null; + + public IndividualStateChangeEventPayload individual(Individual individual) { + this.individual = individual; + return this; + } + + /** + * The involved resource data for the event + * @return individual + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Individual getIndividual() { + return individual; + } + + public void setIndividual(Individual individual) { + this.individual = individual; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IndividualStateChangeEventPayload individualStateChangeEventPayload = (IndividualStateChangeEventPayload) o; + return Objects.equals(this.individual, individualStateChangeEventPayload.individual); + } + + @Override + public int hashCode() { + return Objects.hash(individual); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IndividualStateChangeEventPayload {\n"); + + sb.append(" individual: ").append(toIndentedString(individual)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualStateType.java b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualStateType.java new file mode 100644 index 0000000..8c8679a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualStateType.java @@ -0,0 +1,58 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Valid values for the lifecycle state of the individual + */ +public enum IndividualStateType { + + INITIALIZED("initialized"), + + VALIDATED("validated"), + + DECEADED("deceaded"); + + private String value; + + IndividualStateType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static IndividualStateType fromValue(String text) { + for (IndividualStateType b : IndividualStateType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualUpdate.java b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualUpdate.java new file mode 100644 index 0000000..4944c7c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/IndividualUpdate.java @@ -0,0 +1,1079 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Individual represents a single human being (a man, woman or child). The + * individual can be a customer, an employee or any other person that the + * organization needs to store information about. Skipped properties: id,href + */ +@Schema(description = "Individual represents a single human being (a man, woman or child). The individual can be a customer, an employee or any other person that the organization needs to store information about. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class IndividualUpdate { + @JsonProperty("aristocraticTitle") + protected String aristocraticTitle = null; + + protected OffsetDateTime birthDate = null; + + @JsonProperty("countryOfBirth") + protected String countryOfBirth = null; + + protected OffsetDateTime deathDate = null; + + @JsonProperty("familyName") + protected String familyName = null; + + @JsonProperty("familyNamePrefix") + protected String familyNamePrefix = null; + + @JsonProperty("formattedName") + protected String formattedName = null; + + @JsonProperty("fullName") + protected String fullName = null; + + @JsonProperty("gender") + protected String gender = null; + + @JsonProperty("generation") + protected String generation = null; + + @JsonProperty("givenName") + protected String givenName = null; + + @JsonProperty("legalName") + protected String legalName = null; + + @JsonProperty("location") + protected String location = null; + + @JsonProperty("maritalStatus") + protected String maritalStatus = null; + + @JsonProperty("middleName") + protected String middleName = null; + + @JsonProperty("nationality") + protected String nationality = null; + + @JsonProperty("placeOfBirth") + protected String placeOfBirth = null; + + @JsonProperty("preferredGivenName") + protected String preferredGivenName = null; + + @JsonProperty("title") + protected String title = null; + + @JsonProperty("contactMedium") + @Valid + protected List contactMedium = null; + + @JsonProperty("creditRating") + @Valid + protected List creditRating = null; + + @JsonProperty("disability") + @Valid + protected List disability = null; + + @JsonProperty("externalReference") + @Valid + protected List externalReference = null; + + @JsonProperty("individualIdentification") + @Valid + protected List individualIdentification = null; + + @JsonProperty("languageAbility") + @Valid + protected List languageAbility = null; + + @JsonProperty("otherName") + @Valid + protected List otherName = null; + + @JsonProperty("partyCharacteristic") + @Valid + protected List partyCharacteristic = null; + + @JsonProperty("relatedParty") + @Valid + protected List relatedParty = null; + + @JsonProperty("skill") + @Valid + protected List skill = null; + + @JsonProperty("status") + protected IndividualStateType status = null; + + @JsonProperty("taxExemptionCertificate") + @Valid + protected List taxExemptionCertificate = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@type") + protected String type = null; + + public IndividualUpdate aristocraticTitle(String aristocraticTitle) { + this.aristocraticTitle = aristocraticTitle; + return this; + } + + /** + * e.g. Baron, Graf, Earl,… + * + * @return aristocraticTitle + **/ + @Schema(description = "e.g. Baron, Graf, Earl,…") + + public String getAristocraticTitle() { + return aristocraticTitle; + } + + public void setAristocraticTitle(String aristocraticTitle) { + this.aristocraticTitle = aristocraticTitle; + } + + public IndividualUpdate birthDate(OffsetDateTime birthDate) { + this.birthDate = birthDate; + return this; + } + + /** + * Birth date + * + * @return birthDate + **/ + @Schema(description = "Birth date") + + @Valid + + @JsonProperty("birthDate") + public String getBirthDateString() { + if ( birthDate == null ) { + return null; + } + return birthDate.toString(); + } + + public OffsetDateTime getBirthDate() { + return birthDate; + } + + public void setBirthDate(OffsetDateTime birthDate) { + this.birthDate = birthDate; + } + + public IndividualUpdate countryOfBirth(String countryOfBirth) { + this.countryOfBirth = countryOfBirth; + return this; + } + + /** + * Country where the individual was born + * + * @return countryOfBirth + **/ + @Schema(description = "Country where the individual was born") + + public String getCountryOfBirth() { + return countryOfBirth; + } + + public void setCountryOfBirth(String countryOfBirth) { + this.countryOfBirth = countryOfBirth; + } + + public IndividualUpdate deathDate(OffsetDateTime deathDate) { + this.deathDate = deathDate; + return this; + } + + /** + * Date of death + * + * @return deathDate + **/ + @Schema(description = "Date of death") + + @Valid + + @JsonProperty("deathDate") + public String getDeathDateString() { + if ( deathDate == null ) { + return null; + } + return deathDate.toString(); + } + + public OffsetDateTime getDeathDate() { + return deathDate; + } + + public void setDeathDate(OffsetDateTime deathDate) { + this.deathDate = deathDate; + } + + public IndividualUpdate familyName(String familyName) { + this.familyName = familyName; + return this; + } + + /** + * Contains the non-chosen or inherited name. Also known as last name in the + * Western context + * + * @return familyName + **/ + @Schema(description = "Contains the non-chosen or inherited name. Also known as last name in the Western context") + + public String getFamilyName() { + return familyName; + } + + public void setFamilyName(String familyName) { + this.familyName = familyName; + } + + public IndividualUpdate familyNamePrefix(String familyNamePrefix) { + this.familyNamePrefix = familyNamePrefix; + return this; + } + + /** + * Family name prefix + * + * @return familyNamePrefix + **/ + @Schema(description = "Family name prefix") + + public String getFamilyNamePrefix() { + return familyNamePrefix; + } + + public void setFamilyNamePrefix(String familyNamePrefix) { + this.familyNamePrefix = familyNamePrefix; + } + + public IndividualUpdate formattedName(String formattedName) { + this.formattedName = formattedName; + return this; + } + + /** + * A fully formatted name in one string with all of its pieces in their proper + * place and all of the necessary punctuation. Useful for specific contexts + * (Chinese, Japanese, Korean,…) + * + * @return formattedName + **/ + @Schema(description = "A fully formatted name in one string with all of its pieces in their proper place and all of the necessary punctuation. Useful for specific contexts (Chinese, Japanese, Korean,…)") + + public String getFormattedName() { + return formattedName; + } + + public void setFormattedName(String formattedName) { + this.formattedName = formattedName; + } + + public IndividualUpdate fullName(String fullName) { + this.fullName = fullName; + return this; + } + + /** + * Full name flatten (first, middle, and last names) + * + * @return fullName + **/ + @Schema(description = "Full name flatten (first, middle, and last names)") + + public String getFullName() { + return fullName; + } + + public void setFullName(String fullName) { + this.fullName = fullName; + } + + public IndividualUpdate gender(String gender) { + this.gender = gender; + return this; + } + + /** + * Gender + * + * @return gender + **/ + @Schema(description = "Gender") + + public String getGender() { + return gender; + } + + public void setGender(String gender) { + this.gender = gender; + } + + public IndividualUpdate generation(String generation) { + this.generation = generation; + return this; + } + + /** + * e.g.. Sr, Jr, III (the third),… + * + * @return generation + **/ + @Schema(description = "e.g.. Sr, Jr, III (the third),…") + + public String getGeneration() { + return generation; + } + + public void setGeneration(String generation) { + this.generation = generation; + } + + public IndividualUpdate givenName(String givenName) { + this.givenName = givenName; + return this; + } + + /** + * First name of the individual + * + * @return givenName + **/ + @Schema(description = "First name of the individual") + + public String getGivenName() { + return givenName; + } + + public void setGivenName(String givenName) { + this.givenName = givenName; + } + + public IndividualUpdate legalName(String legalName) { + this.legalName = legalName; + return this; + } + + /** + * Legal name or birth name (name one has for official purposes) + * + * @return legalName + **/ + @Schema(description = "Legal name or birth name (name one has for official purposes)") + + public String getLegalName() { + return legalName; + } + + public void setLegalName(String legalName) { + this.legalName = legalName; + } + + public IndividualUpdate location(String location) { + this.location = location; + return this; + } + + /** + * Temporary current location od the individual (may be used if the individual + * has approved its sharing) + * + * @return location + **/ + @Schema(description = "Temporary current location od the individual (may be used if the individual has approved its sharing)") + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public IndividualUpdate maritalStatus(String maritalStatus) { + this.maritalStatus = maritalStatus; + return this; + } + + /** + * Marital status (married, divorced, widow ...) + * + * @return maritalStatus + **/ + @Schema(description = "Marital status (married, divorced, widow ...)") + + public String getMaritalStatus() { + return maritalStatus; + } + + public void setMaritalStatus(String maritalStatus) { + this.maritalStatus = maritalStatus; + } + + public IndividualUpdate middleName(String middleName) { + this.middleName = middleName; + return this; + } + + /** + * Middles name or initial + * + * @return middleName + **/ + @Schema(description = "Middles name or initial") + + public String getMiddleName() { + return middleName; + } + + public void setMiddleName(String middleName) { + this.middleName = middleName; + } + + public IndividualUpdate nationality(String nationality) { + this.nationality = nationality; + return this; + } + + /** + * Nationality + * + * @return nationality + **/ + @Schema(description = "Nationality") + + public String getNationality() { + return nationality; + } + + public void setNationality(String nationality) { + this.nationality = nationality; + } + + public IndividualUpdate placeOfBirth(String placeOfBirth) { + this.placeOfBirth = placeOfBirth; + return this; + } + + /** + * Reference to the place where the individual was born + * + * @return placeOfBirth + **/ + @Schema(description = "Reference to the place where the individual was born") + + public String getPlaceOfBirth() { + return placeOfBirth; + } + + public void setPlaceOfBirth(String placeOfBirth) { + this.placeOfBirth = placeOfBirth; + } + + public IndividualUpdate preferredGivenName(String preferredGivenName) { + this.preferredGivenName = preferredGivenName; + return this; + } + + /** + * Contains the chosen name by which the individual prefers to be addressed. + * Note: This name may be a name other than a given name, such as a nickname + * + * @return preferredGivenName + **/ + @Schema(description = "Contains the chosen name by which the individual prefers to be addressed. Note: This name may be a name other than a given name, such as a nickname") + + public String getPreferredGivenName() { + return preferredGivenName; + } + + public void setPreferredGivenName(String preferredGivenName) { + this.preferredGivenName = preferredGivenName; + } + + public IndividualUpdate title(String title) { + this.title = title; + return this; + } + + /** + * Useful for titles (aristocratic, social,...) Pr, Dr, Sir, ... + * + * @return title + **/ + @Schema(description = "Useful for titles (aristocratic, social,...) Pr, Dr, Sir, ...") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public IndividualUpdate contactMedium(List contactMedium) { + this.contactMedium = contactMedium; + return this; + } + + public IndividualUpdate addContactMediumItem(ContactMedium contactMediumItem) { + if (this.contactMedium == null) { + this.contactMedium = new ArrayList<>(); + } + this.contactMedium.add(contactMediumItem); + return this; + } + + /** + * Get contactMedium + * + * @return contactMedium + **/ + @Schema(description = "") + + @Valid + + public List getContactMedium() { + return contactMedium; + } + + public void setContactMedium(List contactMedium) { + this.contactMedium = contactMedium; + } + + public IndividualUpdate creditRating(List creditRating) { + this.creditRating = creditRating; + return this; + } + + public IndividualUpdate addCreditRatingItem(PartyCreditProfile creditRatingItem) { + if (this.creditRating == null) { + this.creditRating = new ArrayList<>(); + } + this.creditRating.add(creditRatingItem); + return this; + } + + /** + * Get creditRating + * + * @return creditRating + **/ + @Schema(description = "") + + @Valid + + public List getCreditRating() { + return creditRating; + } + + public void setCreditRating(List creditRating) { + this.creditRating = creditRating; + } + + public IndividualUpdate disability(List disability) { + this.disability = disability; + return this; + } + + public IndividualUpdate addDisabilityItem(Disability disabilityItem) { + if (this.disability == null) { + this.disability = new ArrayList<>(); + } + this.disability.add(disabilityItem); + return this; + } + + /** + * Get disability + * + * @return disability + **/ + @Schema(description = "") + + @Valid + + public List getDisability() { + return disability; + } + + public void setDisability(List disability) { + this.disability = disability; + } + + public IndividualUpdate externalReference(List externalReference) { + this.externalReference = externalReference; + return this; + } + + public IndividualUpdate addExternalReferenceItem(ExternalReference externalReferenceItem) { + if (this.externalReference == null) { + this.externalReference = new ArrayList<>(); + } + this.externalReference.add(externalReferenceItem); + return this; + } + + /** + * Get externalReference + * + * @return externalReference + **/ + @Schema(description = "") + + @Valid + + public List getExternalReference() { + return externalReference; + } + + public void setExternalReference(List externalReference) { + this.externalReference = externalReference; + } + + public IndividualUpdate individualIdentification(List individualIdentification) { + this.individualIdentification = individualIdentification; + return this; + } + + public IndividualUpdate addIndividualIdentificationItem(IndividualIdentification individualIdentificationItem) { + if (this.individualIdentification == null) { + this.individualIdentification = new ArrayList<>(); + } + this.individualIdentification.add(individualIdentificationItem); + return this; + } + + /** + * Get individualIdentification + * + * @return individualIdentification + **/ + @Schema(description = "") + + @Valid + + public List getIndividualIdentification() { + return individualIdentification; + } + + public void setIndividualIdentification(List individualIdentification) { + this.individualIdentification = individualIdentification; + } + + public IndividualUpdate languageAbility(List languageAbility) { + this.languageAbility = languageAbility; + return this; + } + + public IndividualUpdate addLanguageAbilityItem(LanguageAbility languageAbilityItem) { + if (this.languageAbility == null) { + this.languageAbility = new ArrayList<>(); + } + this.languageAbility.add(languageAbilityItem); + return this; + } + + /** + * Get languageAbility + * + * @return languageAbility + **/ + @Schema(description = "") + + @Valid + + public List getLanguageAbility() { + return languageAbility; + } + + public void setLanguageAbility(List languageAbility) { + this.languageAbility = languageAbility; + } + + public IndividualUpdate otherName(List otherName) { + this.otherName = otherName; + return this; + } + + public IndividualUpdate addOtherNameItem(OtherNameIndividual otherNameItem) { + if (this.otherName == null) { + this.otherName = new ArrayList<>(); + } + this.otherName.add(otherNameItem); + return this; + } + + /** + * Get otherName + * + * @return otherName + **/ + @Schema(description = "") + + @Valid + + public List getOtherName() { + return otherName; + } + + public void setOtherName(List otherName) { + this.otherName = otherName; + } + + public IndividualUpdate partyCharacteristic(List partyCharacteristic) { + this.partyCharacteristic = partyCharacteristic; + return this; + } + + public IndividualUpdate addPartyCharacteristicItem(Characteristic partyCharacteristicItem) { + if (this.partyCharacteristic == null) { + this.partyCharacteristic = new ArrayList<>(); + } + this.partyCharacteristic.add(partyCharacteristicItem); + return this; + } + + /** + * Get partyCharacteristic + * + * @return partyCharacteristic + **/ + @Schema(description = "") + + @Valid + + public List getPartyCharacteristic() { + return partyCharacteristic; + } + + public void setPartyCharacteristic(List partyCharacteristic) { + this.partyCharacteristic = partyCharacteristic; + } + + public IndividualUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public IndividualUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public IndividualUpdate skill(List skill) { + this.skill = skill; + return this; + } + + public IndividualUpdate addSkillItem(Skill skillItem) { + if (this.skill == null) { + this.skill = new ArrayList<>(); + } + this.skill.add(skillItem); + return this; + } + + /** + * Get skill + * + * @return skill + **/ + @Schema(description = "") + + @Valid + + public List getSkill() { + return skill; + } + + public void setSkill(List skill) { + this.skill = skill; + } + + public IndividualUpdate status(IndividualStateType status) { + this.status = status; + return this; + } + + /** + * Status of the individual + * + * @return status + **/ + @Schema(description = "Status of the individual") + + @Valid + + public IndividualStateType getStatus() { + return status; + } + + public void setStatus(IndividualStateType status) { + this.status = status; + } + + public IndividualUpdate taxExemptionCertificate(List taxExemptionCertificate) { + this.taxExemptionCertificate = taxExemptionCertificate; + return this; + } + + public IndividualUpdate addTaxExemptionCertificateItem(TaxExemptionCertificate taxExemptionCertificateItem) { + if (this.taxExemptionCertificate == null) { + this.taxExemptionCertificate = new ArrayList<>(); + } + this.taxExemptionCertificate.add(taxExemptionCertificateItem); + return this; + } + + /** + * Get taxExemptionCertificate + * + * @return taxExemptionCertificate + **/ + @Schema(description = "") + + @Valid + + public List getTaxExemptionCertificate() { + return taxExemptionCertificate; + } + + public void setTaxExemptionCertificate(List taxExemptionCertificate) { + this.taxExemptionCertificate = taxExemptionCertificate; + } + + public IndividualUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public IndividualUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public IndividualUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IndividualUpdate individualUpdate = (IndividualUpdate) o; + return Objects.equals(this.aristocraticTitle, individualUpdate.aristocraticTitle) + && Objects.equals(this.birthDate, individualUpdate.birthDate) + && Objects.equals(this.countryOfBirth, individualUpdate.countryOfBirth) + && Objects.equals(this.deathDate, individualUpdate.deathDate) + && Objects.equals(this.familyName, individualUpdate.familyName) + && Objects.equals(this.familyNamePrefix, individualUpdate.familyNamePrefix) + && Objects.equals(this.formattedName, individualUpdate.formattedName) + && Objects.equals(this.fullName, individualUpdate.fullName) + && Objects.equals(this.gender, individualUpdate.gender) + && Objects.equals(this.generation, individualUpdate.generation) + && Objects.equals(this.givenName, individualUpdate.givenName) + && Objects.equals(this.legalName, individualUpdate.legalName) + && Objects.equals(this.location, individualUpdate.location) + && Objects.equals(this.maritalStatus, individualUpdate.maritalStatus) + && Objects.equals(this.middleName, individualUpdate.middleName) + && Objects.equals(this.nationality, individualUpdate.nationality) + && Objects.equals(this.placeOfBirth, individualUpdate.placeOfBirth) + && Objects.equals(this.preferredGivenName, individualUpdate.preferredGivenName) + && Objects.equals(this.title, individualUpdate.title) + && Objects.equals(this.contactMedium, individualUpdate.contactMedium) + && Objects.equals(this.creditRating, individualUpdate.creditRating) + && Objects.equals(this.disability, individualUpdate.disability) + && Objects.equals(this.externalReference, individualUpdate.externalReference) + && Objects.equals(this.individualIdentification, individualUpdate.individualIdentification) + && Objects.equals(this.languageAbility, individualUpdate.languageAbility) + && Objects.equals(this.otherName, individualUpdate.otherName) + && Objects.equals(this.partyCharacteristic, individualUpdate.partyCharacteristic) + && Objects.equals(this.relatedParty, individualUpdate.relatedParty) + && Objects.equals(this.skill, individualUpdate.skill) + && Objects.equals(this.status, individualUpdate.status) + && Objects.equals(this.taxExemptionCertificate, individualUpdate.taxExemptionCertificate) + && Objects.equals(this.baseType, individualUpdate.baseType) + && Objects.equals(this.schemaLocation, individualUpdate.schemaLocation) + && Objects.equals(this.type, individualUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(aristocraticTitle, birthDate, countryOfBirth, deathDate, familyName, familyNamePrefix, + formattedName, fullName, gender, generation, givenName, legalName, location, maritalStatus, middleName, + nationality, placeOfBirth, preferredGivenName, title, contactMedium, creditRating, disability, + externalReference, individualIdentification, languageAbility, otherName, partyCharacteristic, + relatedParty, skill, status, taxExemptionCertificate, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IndividualUpdate {\n"); + + sb.append(" aristocraticTitle: ").append(toIndentedString(aristocraticTitle)).append("\n"); + sb.append(" birthDate: ").append(toIndentedString(birthDate)).append("\n"); + sb.append(" countryOfBirth: ").append(toIndentedString(countryOfBirth)).append("\n"); + sb.append(" deathDate: ").append(toIndentedString(deathDate)).append("\n"); + sb.append(" familyName: ").append(toIndentedString(familyName)).append("\n"); + sb.append(" familyNamePrefix: ").append(toIndentedString(familyNamePrefix)).append("\n"); + sb.append(" formattedName: ").append(toIndentedString(formattedName)).append("\n"); + sb.append(" fullName: ").append(toIndentedString(fullName)).append("\n"); + sb.append(" gender: ").append(toIndentedString(gender)).append("\n"); + sb.append(" generation: ").append(toIndentedString(generation)).append("\n"); + sb.append(" givenName: ").append(toIndentedString(givenName)).append("\n"); + sb.append(" legalName: ").append(toIndentedString(legalName)).append("\n"); + sb.append(" location: ").append(toIndentedString(location)).append("\n"); + sb.append(" maritalStatus: ").append(toIndentedString(maritalStatus)).append("\n"); + sb.append(" middleName: ").append(toIndentedString(middleName)).append("\n"); + sb.append(" nationality: ").append(toIndentedString(nationality)).append("\n"); + sb.append(" placeOfBirth: ").append(toIndentedString(placeOfBirth)).append("\n"); + sb.append(" preferredGivenName: ").append(toIndentedString(preferredGivenName)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" contactMedium: ").append(toIndentedString(contactMedium)).append("\n"); + sb.append(" creditRating: ").append(toIndentedString(creditRating)).append("\n"); + sb.append(" disability: ").append(toIndentedString(disability)).append("\n"); + sb.append(" externalReference: ").append(toIndentedString(externalReference)).append("\n"); + sb.append(" individualIdentification: ").append(toIndentedString(individualIdentification)).append("\n"); + sb.append(" languageAbility: ").append(toIndentedString(languageAbility)).append("\n"); + sb.append(" otherName: ").append(toIndentedString(otherName)).append("\n"); + sb.append(" partyCharacteristic: ").append(toIndentedString(partyCharacteristic)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" skill: ").append(toIndentedString(skill)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" taxExemptionCertificate: ").append(toIndentedString(taxExemptionCertificate)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/LanguageAbility.java b/src/main/java/org/etsi/osl/tmf/pm632/model/LanguageAbility.java new file mode 100644 index 0000000..b5a7106 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/LanguageAbility.java @@ -0,0 +1,287 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; + +/** + * Ability of an individual to understand or converse in a language. + */ +@Schema(description = "Ability of an individual to understand or converse in a language.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") +@Entity +public class LanguageAbility extends BaseRootEntity { + @JsonProperty("isFavouriteLanguage") + private Boolean isFavouriteLanguage = null; + + @JsonProperty("languageCode") + private String languageCode = null; + + @JsonProperty("languageName") + private String languageName = null; + + @JsonProperty("listeningProficiency") + private String listeningProficiency = null; + + @JsonProperty("readingProficiency") + private String readingProficiency = null; + + @JsonProperty("speakingProficiency") + private String speakingProficiency = null; + + @JsonProperty("writingProficiency") + private String writingProficiency = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + + public LanguageAbility isFavouriteLanguage(Boolean isFavouriteLanguage) { + this.isFavouriteLanguage = isFavouriteLanguage; + return this; + } + + /** + * A “true” value specifies whether the language is considered by the individual as his favourite one + * @return isFavouriteLanguage + **/ + @Schema(description = "A “true” value specifies whether the language is considered by the individual as his favourite one") + + + public Boolean isIsFavouriteLanguage() { + return isFavouriteLanguage; + } + + public void setIsFavouriteLanguage(Boolean isFavouriteLanguage) { + this.isFavouriteLanguage = isFavouriteLanguage; + } + + public LanguageAbility languageCode(String languageCode) { + this.languageCode = languageCode; + return this; + } + + /** + * Language code (RFC 5646) + * @return languageCode + **/ + @Schema(description = "Language code (RFC 5646)") + + + public String getLanguageCode() { + return languageCode; + } + + public void setLanguageCode(String languageCode) { + this.languageCode = languageCode; + } + + public LanguageAbility languageName(String languageName) { + this.languageName = languageName; + return this; + } + + /** + * Language name + * @return languageName + **/ + @Schema(description = "Language name") + + + public String getLanguageName() { + return languageName; + } + + public void setLanguageName(String languageName) { + this.languageName = languageName; + } + + public LanguageAbility listeningProficiency(String listeningProficiency) { + this.listeningProficiency = listeningProficiency; + return this; + } + + /** + * Listening proficiency evaluated for this language + * @return listeningProficiency + **/ + @Schema(description = "Listening proficiency evaluated for this language") + + + public String getListeningProficiency() { + return listeningProficiency; + } + + public void setListeningProficiency(String listeningProficiency) { + this.listeningProficiency = listeningProficiency; + } + + public LanguageAbility readingProficiency(String readingProficiency) { + this.readingProficiency = readingProficiency; + return this; + } + + /** + * Reading proficiency evaluated for this language + * @return readingProficiency + **/ + @Schema(description = "Reading proficiency evaluated for this language") + + + public String getReadingProficiency() { + return readingProficiency; + } + + public void setReadingProficiency(String readingProficiency) { + this.readingProficiency = readingProficiency; + } + + public LanguageAbility speakingProficiency(String speakingProficiency) { + this.speakingProficiency = speakingProficiency; + return this; + } + + /** + * Speaking proficiency evaluated for this language + * @return speakingProficiency + **/ + @Schema(description = "Speaking proficiency evaluated for this language") + + + public String getSpeakingProficiency() { + return speakingProficiency; + } + + public void setSpeakingProficiency(String speakingProficiency) { + this.speakingProficiency = speakingProficiency; + } + + public LanguageAbility writingProficiency(String writingProficiency) { + this.writingProficiency = writingProficiency; + return this; + } + + /** + * Writing proficiency evaluated for this language + * @return writingProficiency + **/ + @Schema(description = "Writing proficiency evaluated for this language") + + + public String getWritingProficiency() { + return writingProficiency; + } + + public void setWritingProficiency(String writingProficiency) { + this.writingProficiency = writingProficiency; + } + + public LanguageAbility validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * @return validFor + **/ + @Schema(description = "") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LanguageAbility languageAbility = (LanguageAbility) o; + return Objects.equals(this.isFavouriteLanguage, languageAbility.isFavouriteLanguage) && + Objects.equals(this.languageCode, languageAbility.languageCode) && + Objects.equals(this.languageName, languageAbility.languageName) && + Objects.equals(this.listeningProficiency, languageAbility.listeningProficiency) && + Objects.equals(this.readingProficiency, languageAbility.readingProficiency) && + Objects.equals(this.speakingProficiency, languageAbility.speakingProficiency) && + Objects.equals(this.writingProficiency, languageAbility.writingProficiency) && + Objects.equals(this.validFor, languageAbility.validFor) && + Objects.equals(this.baseType, languageAbility.baseType) && + Objects.equals(this.schemaLocation, languageAbility.schemaLocation) && + Objects.equals(this.type, languageAbility.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(isFavouriteLanguage, languageCode, languageName, listeningProficiency, readingProficiency, speakingProficiency, writingProficiency, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LanguageAbility {\n"); + + sb.append(" isFavouriteLanguage: ").append(toIndentedString(isFavouriteLanguage)).append("\n"); + sb.append(" languageCode: ").append(toIndentedString(languageCode)).append("\n"); + sb.append(" languageName: ").append(toIndentedString(languageName)).append("\n"); + sb.append(" listeningProficiency: ").append(toIndentedString(listeningProficiency)).append("\n"); + sb.append(" readingProficiency: ").append(toIndentedString(readingProficiency)).append("\n"); + sb.append(" speakingProficiency: ").append(toIndentedString(speakingProficiency)).append("\n"); + sb.append(" writingProficiency: ").append(toIndentedString(writingProficiency)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/MediumCharacteristic.java b/src/main/java/org/etsi/osl/tmf/pm632/model/MediumCharacteristic.java new file mode 100644 index 0000000..e00f41d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/MediumCharacteristic.java @@ -0,0 +1,371 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Describes the contact medium characteristics that could be used to contact a party (an individual or an organization) + */ +@Schema(description = "Describes the contact medium characteristics that could be used to contact a party (an individual or an organization)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Entity(name = "MediumCharacteristic") +public class MediumCharacteristic extends BaseRootEntity { + @JsonProperty("city") + private String city = null; + + @JsonProperty("contactType") + private String contactType = null; + + @JsonProperty("country") + private String country = null; + + @JsonProperty("emailAddress") + private String emailAddress = null; + + @JsonProperty("faxNumber") + private String faxNumber = null; + + @JsonProperty("phoneNumber") + private String phoneNumber = null; + + @JsonProperty("postCode") + private String postCode = null; + + @JsonProperty("socialNetworkId") + private String socialNetworkId = null; + + @JsonProperty("stateOrProvince") + private String stateOrProvince = null; + + @JsonProperty("street1") + private String street1 = null; + + @JsonProperty("street2") + private String street2 = null; + + public MediumCharacteristic(@NotNull @Valid MediumCharacteristic c) { + this.city = c.city; + this.contactType = c.contactType; + this.country = c.country; + this.emailAddress = c.emailAddress; + this.faxNumber = c.faxNumber; + this.phoneNumber = c.phoneNumber; + this.postCode = c.postCode; + this.socialNetworkId = c.socialNetworkId; + this.stateOrProvince = c.stateOrProvince; + this.street1 = c.street1; + this.street2 = c.street2; + } + + public MediumCharacteristic() { + + } + + public MediumCharacteristic city(String city) { + this.city = city; + return this; + } + + /** + * The city + * + * @return city + **/ + @Schema(description = "The city") + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public MediumCharacteristic contactType(String contactType) { + this.contactType = contactType; + return this; + } + + /** + * The type of contact, for example: phone number such as mobile, fixed home, + * fixed office. postal address such as shipping instalation… + * + * @return contactType + **/ + @Schema(description = "The type of contact, for example: phone number such as mobile, fixed home, fixed office. postal address such as shipping instalation…") + + public String getContactType() { + return contactType; + } + + public void setContactType(String contactType) { + this.contactType = contactType; + } + + public MediumCharacteristic country(String country) { + this.country = country; + return this; + } + + /** + * The country + * + * @return country + **/ + @Schema(description = "The country") + + public String getCountry() { + return country; + } + + public void setCountry(String country) { + this.country = country; + } + + public MediumCharacteristic emailAddress(String emailAddress) { + this.emailAddress = emailAddress; + return this; + } + + /** + * Full email address in standard format + * + * @return emailAddress + **/ + @Schema(description = "Full email address in standard format") + + public String getEmailAddress() { + return emailAddress; + } + + public void setEmailAddress(String emailAddress) { + this.emailAddress = emailAddress; + } + + public MediumCharacteristic faxNumber(String faxNumber) { + this.faxNumber = faxNumber; + return this; + } + + /** + * The fax number of the contact + * + * @return faxNumber + **/ + @Schema(description = "The fax number of the contact") + + public String getFaxNumber() { + return faxNumber; + } + + public void setFaxNumber(String faxNumber) { + this.faxNumber = faxNumber; + } + + public MediumCharacteristic phoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + return this; + } + + /** + * The primary phone number of the contact + * + * @return phoneNumber + **/ + @Schema(description = "The primary phone number of the contact") + + public String getPhoneNumber() { + return phoneNumber; + } + + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + + public MediumCharacteristic postCode(String postCode) { + this.postCode = postCode; + return this; + } + + /** + * Postcode + * + * @return postCode + **/ + @Schema(description = "Postcode") + + public String getPostCode() { + return postCode; + } + + public void setPostCode(String postCode) { + this.postCode = postCode; + } + + public MediumCharacteristic socialNetworkId(String socialNetworkId) { + this.socialNetworkId = socialNetworkId; + return this; + } + + /** + * Identifier as a member of a social network + * + * @return socialNetworkId + **/ + @Schema(description = "Identifier as a member of a social network") + + public String getSocialNetworkId() { + return socialNetworkId; + } + + public void setSocialNetworkId(String socialNetworkId) { + this.socialNetworkId = socialNetworkId; + } + + public MediumCharacteristic stateOrProvince(String stateOrProvince) { + this.stateOrProvince = stateOrProvince; + return this; + } + + /** + * State or province + * + * @return stateOrProvince + **/ + @Schema(description = "State or province") + + public String getStateOrProvince() { + return stateOrProvince; + } + + public void setStateOrProvince(String stateOrProvince) { + this.stateOrProvince = stateOrProvince; + } + + public MediumCharacteristic street1(String street1) { + this.street1 = street1; + return this; + } + + /** + * Describes the street + * + * @return street1 + **/ + @Schema(description = "Describes the street") + + public String getStreet1() { + return street1; + } + + public void setStreet1(String street1) { + this.street1 = street1; + } + + public MediumCharacteristic street2(String street2) { + this.street2 = street2; + return this; + } + + /** + * Complementary street description + * + * @return street2 + **/ + @Schema(description = "Complementary street description") + + public String getStreet2() { + return street2; + } + + public void setStreet2(String street2) { + this.street2 = street2; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediumCharacteristic mediumCharacteristic = (MediumCharacteristic) o; + return Objects.equals(this.city, mediumCharacteristic.city) + && Objects.equals(this.contactType, mediumCharacteristic.contactType) + && Objects.equals(this.country, mediumCharacteristic.country) + && Objects.equals(this.emailAddress, mediumCharacteristic.emailAddress) + && Objects.equals(this.faxNumber, mediumCharacteristic.faxNumber) + && Objects.equals(this.phoneNumber, mediumCharacteristic.phoneNumber) + && Objects.equals(this.postCode, mediumCharacteristic.postCode) + && Objects.equals(this.socialNetworkId, mediumCharacteristic.socialNetworkId) + && Objects.equals(this.stateOrProvince, mediumCharacteristic.stateOrProvince) + && Objects.equals(this.street1, mediumCharacteristic.street1) + && Objects.equals(this.street2, mediumCharacteristic.street2) + && Objects.equals(this.baseType, mediumCharacteristic.baseType) + && Objects.equals(this.schemaLocation, mediumCharacteristic.schemaLocation) + && Objects.equals(this.type, mediumCharacteristic.type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediumCharacteristic {\n"); + + sb.append(" city: ").append(toIndentedString(city)).append("\n"); + sb.append(" contactType: ").append(toIndentedString(contactType)).append("\n"); + sb.append(" country: ").append(toIndentedString(country)).append("\n"); + sb.append(" emailAddress: ").append(toIndentedString(emailAddress)).append("\n"); + sb.append(" faxNumber: ").append(toIndentedString(faxNumber)).append("\n"); + sb.append(" phoneNumber: ").append(toIndentedString(phoneNumber)).append("\n"); + sb.append(" postCode: ").append(toIndentedString(postCode)).append("\n"); + sb.append(" socialNetworkId: ").append(toIndentedString(socialNetworkId)).append("\n"); + sb.append(" stateOrProvince: ").append(toIndentedString(stateOrProvince)).append("\n"); + sb.append(" street1: ").append(toIndentedString(street1)).append("\n"); + sb.append(" street2: ").append(toIndentedString(street2)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/Organization.java b/src/main/java/org/etsi/osl/tmf/pm632/model/Organization.java new file mode 100644 index 0000000..6447faf --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/Organization.java @@ -0,0 +1,670 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; + +/** + * Organization represents a group of people identified by shared interests or + * purpose. Examples include business, department and enterprise. Because of the + * complex nature of many businesses, both organizations and organization units + * are represented by the same data. + */ +@Schema(description = "Organization represents a group of people identified by shared interests or purpose. Examples include business, department and enterprise. Because of the complex nature of many businesses, both organizations and organization units are represented by the same data.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") +@Entity +public class Organization extends BaseRootNamedEntity { + + @JsonProperty("id") + private String id = null; + + @JsonProperty("isHeadOffice") + private Boolean isHeadOffice = null; + + @JsonProperty("isLegalEntity") + private Boolean isLegalEntity = null; + + @JsonProperty("nameType") + private String nameType = null; + + @JsonProperty("organizationType") + private String organizationType = null; + + @JsonProperty("tradingName") + private String tradingName = null; + + @JsonProperty("contactMedium") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set contactMedium = new HashSet<>(); + + @JsonProperty("creditRating") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set creditRating = new HashSet<>(); + + @JsonProperty("existsDuring") + private TimePeriod existsDuring = null; + + @JsonProperty("externalReference") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set externalReference = new HashSet<>(); + + @JsonProperty("organizationChildRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set organizationChildRelationship = new HashSet<>(); + + @JsonProperty("organizationIdentification") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set organizationIdentification = new HashSet<>(); + + @JsonProperty("organizationParentRelationship") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "organization_parentrel_refid", referencedColumnName = "uuid") + private OrganizationParentRelationship organizationParentRelationship = null; + + @JsonProperty("otherName") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set otherName = new HashSet<>(); + + @JsonProperty("partyCharacteristic") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set partyCharacteristic = new HashSet<>(); + + @JsonProperty("relatedParty") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set relatedParty = new HashSet<>(); + + @JsonProperty("status") + private OrganizationStateType status = null; + + @JsonProperty("taxExemptionCertificate") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set taxExemptionCertificate = new HashSet<>(); + + /** + * Unique identifier of the organization + * + * @return id + **/ + @Schema(description = "Unique identifier of the organization") + + public String getId() { + return uuid; + } + + public Organization isHeadOffice(Boolean isHeadOffice) { + this.isHeadOffice = isHeadOffice; + return this; + } + + /** + * If value is true, the organization is the head office + * + * @return isHeadOffice + **/ + @Schema(description = "If value is true, the organization is the head office") + + public Boolean isIsHeadOffice() { + return isHeadOffice; + } + + public void setIsHeadOffice(Boolean isHeadOffice) { + this.isHeadOffice = isHeadOffice; + } + + public Organization isLegalEntity(Boolean isLegalEntity) { + this.isLegalEntity = isLegalEntity; + return this; + } + + /** + * If value is true, the organization is a legal entity known by a national + * referential. + * + * @return isLegalEntity + **/ + @Schema(description = "If value is true, the organization is a legal entity known by a national referential.") + + public Boolean isIsLegalEntity() { + return isLegalEntity; + } + + public void setIsLegalEntity(Boolean isLegalEntity) { + this.isLegalEntity = isLegalEntity; + } + + public Organization nameType(String nameType) { + this.nameType = nameType; + return this; + } + + /** + * Type of the name : Co, Inc, Ltd,… + * + * @return nameType + **/ + @Schema(description = "Type of the name : Co, Inc, Ltd,…") + + public String getNameType() { + return nameType; + } + + public void setNameType(String nameType) { + this.nameType = nameType; + } + + public Organization organizationType(String organizationType) { + this.organizationType = organizationType; + return this; + } + + /** + * Type of Organization (company, department...) + * + * @return organizationType + **/ + @Schema(description = "Type of Organization (company, department...)") + + public String getOrganizationType() { + return organizationType; + } + + public void setOrganizationType(String organizationType) { + this.organizationType = organizationType; + } + + public Organization tradingName(String tradingName) { + this.tradingName = tradingName; + return this; + } + + /** + * Name that the organization (unit) trades under + * + * @return tradingName + **/ + @Schema(description = "Name that the organization (unit) trades under") + + public String getTradingName() { + return tradingName; + } + + public void setTradingName(String tradingName) { + this.tradingName = tradingName; + } + + public Organization contactMedium(Set contactMedium) { + this.contactMedium = contactMedium; + return this; + } + + public Organization addContactMediumItem(ContactMedium contactMediumItem) { + if (this.contactMedium == null) { + this.contactMedium = new HashSet<>(); + } + this.contactMedium.add(contactMediumItem); + return this; + } + + /** + * Get contactMedium + * + * @return contactMedium + **/ + @Schema(description = "") + + @Valid + + public Set getContactMedium() { + return contactMedium; + } + + public void setContactMedium(Set contactMedium) { + this.contactMedium = contactMedium; + } + + public Organization creditRating(Set creditRating) { + this.creditRating = creditRating; + return this; + } + + public Organization addCreditRatingItem(PartyCreditProfile creditRatingItem) { + if (this.creditRating == null) { + this.creditRating = new HashSet<>(); + } + this.creditRating.add(creditRatingItem); + return this; + } + + /** + * Get creditRating + * + * @return creditRating + **/ + @Schema(description = "") + + @Valid + + public Set getCreditRating() { + return creditRating; + } + + public void setCreditRating(Set creditRating) { + this.creditRating = creditRating; + } + + public Organization existsDuring(TimePeriod existsDuring) { + this.existsDuring = existsDuring; + return this; + } + + /** + * Get existsDuring + * + * @return existsDuring + **/ + @Schema(description = "") + + @Valid + + public TimePeriod getExistsDuring() { + return existsDuring; + } + + public void setExistsDuring(TimePeriod existsDuring) { + this.existsDuring = existsDuring; + } + + public Organization externalReference(Set externalReference) { + this.externalReference = externalReference; + return this; + } + + public Organization addExternalReferenceItem(ExternalReference externalReferenceItem) { + if (this.externalReference == null) { + this.externalReference = new HashSet<>(); + } + this.externalReference.add(externalReferenceItem); + return this; + } + + /** + * Get externalReference + * + * @return externalReference + **/ + @Schema(description = "") + + @Valid + + public Set getExternalReference() { + return externalReference; + } + + public void setExternalReference(Set externalReference) { + this.externalReference = externalReference; + } + + public Organization organizationChildRelationship( + Set organizationChildRelationship) { + this.organizationChildRelationship = organizationChildRelationship; + return this; + } + + public Organization addOrganizationChildRelationshipItem( + OrganizationChildRelationship organizationChildRelationshipItem) { + if (this.organizationChildRelationship == null) { + this.organizationChildRelationship = new HashSet<>(); + } + this.organizationChildRelationship.add(organizationChildRelationshipItem); + return this; + } + + /** + * Get organizationChildRelationship + * + * @return organizationChildRelationship + **/ + @Schema(description = "") + + @Valid + + public Set getOrganizationChildRelationship() { + return organizationChildRelationship; + } + + public void setOrganizationChildRelationship(Set organizationChildRelationship) { + this.organizationChildRelationship = organizationChildRelationship; + } + + public Organization organizationIdentification(Set organizationIdentification) { + this.organizationIdentification = organizationIdentification; + return this; + } + + public Organization addOrganizationIdentificationItem(OrganizationIdentification organizationIdentificationItem) { + if (this.organizationIdentification == null) { + this.organizationIdentification = new HashSet<>(); + } + this.organizationIdentification.add(organizationIdentificationItem); + return this; + } + + /** + * Get organizationIdentification + * + * @return organizationIdentification + **/ + @Schema(description = "") + + @Valid + + public Set getOrganizationIdentification() { + return organizationIdentification; + } + + public void setOrganizationIdentification(Set organizationIdentification) { + this.organizationIdentification = organizationIdentification; + } + + public Organization organizationParentRelationship(OrganizationParentRelationship organizationParentRelationship) { + this.organizationParentRelationship = organizationParentRelationship; + return this; + } + + /** + * Get organizationParentRelationship + * + * @return organizationParentRelationship + **/ + @Schema(description = "") + + @Valid + + public OrganizationParentRelationship getOrganizationParentRelationship() { + return organizationParentRelationship; + } + + public void setOrganizationParentRelationship(OrganizationParentRelationship organizationParentRelationship) { + this.organizationParentRelationship = organizationParentRelationship; + } + + public Organization otherName(Set otherName) { + this.otherName = otherName; + return this; + } + + public Organization addOtherNameItem(OtherNameOrganization otherNameItem) { + if (this.otherName == null) { + this.otherName = new HashSet<>(); + } + this.otherName.add(otherNameItem); + return this; + } + + /** + * Get otherName + * + * @return otherName + **/ + @Schema(description = "") + + @Valid + + public Set getOtherName() { + return otherName; + } + + public void setOtherName(Set otherName) { + this.otherName = otherName; + } + + public Organization partyCharacteristic(Set partyCharacteristic) { + this.partyCharacteristic = partyCharacteristic; + return this; + } + + public Organization addPartyCharacteristicItem(Characteristic partyCharacteristicItem) { + if (this.partyCharacteristic == null) { + this.partyCharacteristic = new HashSet<>(); + } + this.partyCharacteristic.add(partyCharacteristicItem); + return this; + } + + /** + * Get partyCharacteristic + * + * @return partyCharacteristic + **/ + @Schema(description = "") + + @Valid + + public Set getPartyCharacteristic() { + return partyCharacteristic; + } + + public void setPartyCharacteristic(Set partyCharacteristic) { + this.partyCharacteristic = partyCharacteristic; + } + + public Organization relatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public Organization addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new HashSet<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public Set getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + } + + public Organization status(OrganizationStateType status) { + this.status = status; + return this; + } + + /** + * Status of the organization + * + * @return status + **/ + @Schema(description = "Status of the organization") + + @Valid + + public OrganizationStateType getStatus() { + return status; + } + + public void setStatus(OrganizationStateType status) { + this.status = status; + } + + public Organization taxExemptionCertificate(Set taxExemptionCertificate) { + this.taxExemptionCertificate = taxExemptionCertificate; + return this; + } + + public Organization addTaxExemptionCertificateItem(TaxExemptionCertificate taxExemptionCertificateItem) { + if (this.taxExemptionCertificate == null) { + this.taxExemptionCertificate = new HashSet<>(); + } + this.taxExemptionCertificate.add(taxExemptionCertificateItem); + return this; + } + + /** + * Get taxExemptionCertificate + * + * @return taxExemptionCertificate + **/ + @Schema(description = "") + + @Valid + + public Set getTaxExemptionCertificate() { + return taxExemptionCertificate; + } + + public void setTaxExemptionCertificate(Set taxExemptionCertificate) { + this.taxExemptionCertificate = taxExemptionCertificate; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Organization organization = (Organization) o; + return Objects.equals(this.uuid, organization.uuid) && Objects.equals(this.href, organization.href) + && Objects.equals(this.isHeadOffice, organization.isHeadOffice) + && Objects.equals(this.isLegalEntity, organization.isLegalEntity) + && Objects.equals(this.name, organization.name) && Objects.equals(this.nameType, organization.nameType) + && Objects.equals(this.organizationType, organization.organizationType) + && Objects.equals(this.tradingName, organization.tradingName) + && Objects.equals(this.contactMedium, organization.contactMedium) + && Objects.equals(this.creditRating, organization.creditRating) + && Objects.equals(this.existsDuring, organization.existsDuring) + && Objects.equals(this.externalReference, organization.externalReference) + && Objects.equals(this.organizationChildRelationship, organization.organizationChildRelationship) + && Objects.equals(this.organizationIdentification, organization.organizationIdentification) + && Objects.equals(this.organizationParentRelationship, organization.organizationParentRelationship) + && Objects.equals(this.otherName, organization.otherName) + && Objects.equals(this.partyCharacteristic, organization.partyCharacteristic) + && Objects.equals(this.relatedParty, organization.relatedParty) + && Objects.equals(this.status, organization.status) + && Objects.equals(this.taxExemptionCertificate, organization.taxExemptionCertificate) + && Objects.equals(this.baseType, organization.baseType) + && Objects.equals(this.schemaLocation, organization.schemaLocation) + && Objects.equals(this.type, organization.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, isHeadOffice, isLegalEntity, name, nameType, organizationType, tradingName, +// contactMedium, creditRating, existsDuring, externalReference, organizationChildRelationship, +// organizationIdentification, organizationParentRelationship, otherName, partyCharacteristic, +// relatedParty, status, taxExemptionCertificate, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Organization {\n"); + + sb.append(" id: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" isHeadOffice: ").append(toIndentedString(isHeadOffice)).append("\n"); + sb.append(" isLegalEntity: ").append(toIndentedString(isLegalEntity)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" nameType: ").append(toIndentedString(nameType)).append("\n"); + sb.append(" organizationType: ").append(toIndentedString(organizationType)).append("\n"); + sb.append(" tradingName: ").append(toIndentedString(tradingName)).append("\n"); + sb.append(" contactMedium: ").append(toIndentedString(contactMedium)).append("\n"); + sb.append(" creditRating: ").append(toIndentedString(creditRating)).append("\n"); + sb.append(" existsDuring: ").append(toIndentedString(existsDuring)).append("\n"); + sb.append(" externalReference: ").append(toIndentedString(externalReference)).append("\n"); + sb.append(" organizationChildRelationship: ").append(toIndentedString(organizationChildRelationship)) + .append("\n"); + sb.append(" organizationIdentification: ").append(toIndentedString(organizationIdentification)).append("\n"); + sb.append(" organizationParentRelationship: ").append(toIndentedString(organizationParentRelationship)) + .append("\n"); + sb.append(" otherName: ").append(toIndentedString(otherName)).append("\n"); + sb.append(" partyCharacteristic: ").append(toIndentedString(partyCharacteristic)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" taxExemptionCertificate: ").append(toIndentedString(taxExemptionCertificate)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public Characteristic findPartyCharacteristic( String name) { + for (Characteristic c : partyCharacteristic) { + if ( c.getName().equals(name) ) { + return c; + } + } + + return null; + + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationAttributeValueChangeEvent.java new file mode 100644 index 0000000..5d41cee --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationAttributeValueChangeEvent.java @@ -0,0 +1,355 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class OrganizationAttributeValueChangeEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("event") + private OrganizationAttributeValueChangeEventPayload event = null; + + public OrganizationAttributeValueChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public OrganizationAttributeValueChangeEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public OrganizationAttributeValueChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public OrganizationAttributeValueChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public OrganizationAttributeValueChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public OrganizationAttributeValueChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public OrganizationAttributeValueChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public OrganizationAttributeValueChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public OrganizationAttributeValueChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public OrganizationAttributeValueChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public OrganizationAttributeValueChangeEvent event(OrganizationAttributeValueChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public OrganizationAttributeValueChangeEventPayload getEvent() { + return event; + } + + public void setEvent(OrganizationAttributeValueChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OrganizationAttributeValueChangeEvent organizationAttributeValueChangeEvent = (OrganizationAttributeValueChangeEvent) o; + return Objects.equals(this.eventId, organizationAttributeValueChangeEvent.eventId) && + Objects.equals(this.fieldPath, organizationAttributeValueChangeEvent.fieldPath) && + Objects.equals(this.eventTime, organizationAttributeValueChangeEvent.eventTime) && + Objects.equals(this.description, organizationAttributeValueChangeEvent.description) && + Objects.equals(this.timeOcurred, organizationAttributeValueChangeEvent.timeOcurred) && + Objects.equals(this.title, organizationAttributeValueChangeEvent.title) && + Objects.equals(this.eventType, organizationAttributeValueChangeEvent.eventType) && + Objects.equals(this.domain, organizationAttributeValueChangeEvent.domain) && + Objects.equals(this.priority, organizationAttributeValueChangeEvent.priority) && + Objects.equals(this.correlationId, organizationAttributeValueChangeEvent.correlationId) && + Objects.equals(this.event, organizationAttributeValueChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, fieldPath, eventTime, description, timeOcurred, title, eventType, domain, priority, correlationId, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OrganizationAttributeValueChangeEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationAttributeValueChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationAttributeValueChangeEventPayload.java new file mode 100644 index 0000000..fde24ae --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationAttributeValueChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class OrganizationAttributeValueChangeEventPayload { + @JsonProperty("organization") + private Organization organization = null; + + public OrganizationAttributeValueChangeEventPayload organization(Organization organization) { + this.organization = organization; + return this; + } + + /** + * The involved resource data for the event + * @return organization + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Organization getOrganization() { + return organization; + } + + public void setOrganization(Organization organization) { + this.organization = organization; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OrganizationAttributeValueChangeEventPayload organizationAttributeValueChangeEventPayload = (OrganizationAttributeValueChangeEventPayload) o; + return Objects.equals(this.organization, organizationAttributeValueChangeEventPayload.organization); + } + + @Override + public int hashCode() { + return Objects.hash(organization); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OrganizationAttributeValueChangeEventPayload {\n"); + + sb.append(" organization: ").append(toIndentedString(organization)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationChildRelationship.java b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationChildRelationship.java new file mode 100644 index 0000000..d22d1df --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationChildRelationship.java @@ -0,0 +1,139 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; + +/** + * Child references of an organization in a structure of organizations. + */ +@Schema(description = "Child references of an organization in a structure of organizations.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Entity +public class OrganizationChildRelationship extends BaseRootEntity { + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("organization") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "organization_refid", referencedColumnName = "uuid") + private OrganizationRef organization = null; + + public OrganizationChildRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * Type of the relationship. Could be juridical, hierarchical, geographical, + * functional for example. + * + * @return relationshipType + **/ + @Schema(description = "Type of the relationship. Could be juridical, hierarchical, geographical, functional for example.") + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public OrganizationChildRelationship organization(OrganizationRef organization) { + this.organization = organization; + return this; + } + + /** + * Get organization + * + * @return organization + **/ + @Schema(description = "") + + @Valid + + public OrganizationRef getOrganization() { + return organization; + } + + public void setOrganization(OrganizationRef organization) { + this.organization = organization; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OrganizationChildRelationship organizationChildRelationship = (OrganizationChildRelationship) o; + return Objects.equals(this.relationshipType, organizationChildRelationship.relationshipType) + && Objects.equals(this.organization, organizationChildRelationship.organization) + && Objects.equals(this.baseType, organizationChildRelationship.baseType) + && Objects.equals(this.schemaLocation, organizationChildRelationship.schemaLocation) + && Objects.equals(this.type, organizationChildRelationship.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(relationshipType, organization, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OrganizationChildRelationship {\n"); + + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" organization: ").append(toIndentedString(organization)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationCreate.java b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationCreate.java new file mode 100644 index 0000000..952fd48 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationCreate.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Organization represents a group of people identified by shared interests or purpose. Examples include business, department and enterprise. Because of the complex nature of many businesses, both organizations and organization units are represented by the same data. Skipped properties: id,href + */ +@Schema(description = "Organization represents a group of people identified by shared interests or purpose. Examples include business, department and enterprise. Because of the complex nature of many businesses, both organizations and organization units are represented by the same data. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class OrganizationCreate extends OrganizationUpdate { + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OrganizationCreate organizationCreate = (OrganizationCreate) o; + return Objects.equals(this.isHeadOffice, organizationCreate.isHeadOffice) && + Objects.equals(this.isLegalEntity, organizationCreate.isLegalEntity) && + Objects.equals(this.name, organizationCreate.name) && + Objects.equals(this.nameType, organizationCreate.nameType) && + Objects.equals(this.organizationType, organizationCreate.organizationType) && + Objects.equals(this.tradingName, organizationCreate.tradingName) && + Objects.equals(this.contactMedium, organizationCreate.contactMedium) && + Objects.equals(this.creditRating, organizationCreate.creditRating) && + Objects.equals(this.existsDuring, organizationCreate.existsDuring) && + Objects.equals(this.externalReference, organizationCreate.externalReference) && + Objects.equals(this.organizationChildRelationship, organizationCreate.organizationChildRelationship) && + Objects.equals(this.organizationIdentification, organizationCreate.organizationIdentification) && + Objects.equals(this.organizationParentRelationship, organizationCreate.organizationParentRelationship) && + Objects.equals(this.otherName, organizationCreate.otherName) && + Objects.equals(this.partyCharacteristic, organizationCreate.partyCharacteristic) && + Objects.equals(this.relatedParty, organizationCreate.relatedParty) && + Objects.equals(this.status, organizationCreate.status) && + Objects.equals(this.taxExemptionCertificate, organizationCreate.taxExemptionCertificate) && + Objects.equals(this.baseType, organizationCreate.baseType) && + Objects.equals(this.schemaLocation, organizationCreate.schemaLocation) && + Objects.equals(this.type, organizationCreate.type); + } +// +// @Override +// public int hashCode() { +// return Objects.hash(isHeadOffice, isLegalEntity, name, nameType, organizationType, tradingName, contactMedium, creditRating, existsDuring, externalReference, organizationChildRelationship, organizationIdentification, organizationParentRelationship, otherName, partyCharacteristic, relatedParty, status, taxExemptionCertificate, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OrganizationCreate {\n"); + + sb.append(" isHeadOffice: ").append(toIndentedString(isHeadOffice)).append("\n"); + sb.append(" isLegalEntity: ").append(toIndentedString(isLegalEntity)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" nameType: ").append(toIndentedString(nameType)).append("\n"); + sb.append(" organizationType: ").append(toIndentedString(organizationType)).append("\n"); + sb.append(" tradingName: ").append(toIndentedString(tradingName)).append("\n"); + sb.append(" contactMedium: ").append(toIndentedString(contactMedium)).append("\n"); + sb.append(" creditRating: ").append(toIndentedString(creditRating)).append("\n"); + sb.append(" existsDuring: ").append(toIndentedString(existsDuring)).append("\n"); + sb.append(" externalReference: ").append(toIndentedString(externalReference)).append("\n"); + sb.append(" organizationChildRelationship: ").append(toIndentedString(organizationChildRelationship)).append("\n"); + sb.append(" organizationIdentification: ").append(toIndentedString(organizationIdentification)).append("\n"); + sb.append(" organizationParentRelationship: ").append(toIndentedString(organizationParentRelationship)).append("\n"); + sb.append(" otherName: ").append(toIndentedString(otherName)).append("\n"); + sb.append(" partyCharacteristic: ").append(toIndentedString(partyCharacteristic)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" taxExemptionCertificate: ").append(toIndentedString(taxExemptionCertificate)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationCreateEvent.java b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationCreateEvent.java new file mode 100644 index 0000000..692ab6b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationCreateEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class OrganizationCreateEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("event") + private OrganizationCreateEventPayload event = null; + + public OrganizationCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public OrganizationCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public OrganizationCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public OrganizationCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public OrganizationCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public OrganizationCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public OrganizationCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public OrganizationCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public OrganizationCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public OrganizationCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public OrganizationCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public OrganizationCreateEvent event(OrganizationCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public OrganizationCreateEventPayload getEvent() { + return event; + } + + public void setEvent(OrganizationCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OrganizationCreateEvent organizationCreateEvent = (OrganizationCreateEvent) o; + return Objects.equals(this.eventId, organizationCreateEvent.eventId) && + Objects.equals(this.eventTime, organizationCreateEvent.eventTime) && + Objects.equals(this.description, organizationCreateEvent.description) && + Objects.equals(this.timeOcurred, organizationCreateEvent.timeOcurred) && + Objects.equals(this.title, organizationCreateEvent.title) && + Objects.equals(this.eventType, organizationCreateEvent.eventType) && + Objects.equals(this.domain, organizationCreateEvent.domain) && + Objects.equals(this.priority, organizationCreateEvent.priority) && + Objects.equals(this.href, organizationCreateEvent.href) && + Objects.equals(this.id, organizationCreateEvent.id) && + Objects.equals(this.correlationId, organizationCreateEvent.correlationId) && + Objects.equals(this.event, organizationCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, description, timeOcurred, title, eventType, domain, priority, href, id, correlationId, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OrganizationCreateEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationCreateEventPayload.java new file mode 100644 index 0000000..f129e71 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationCreateEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class OrganizationCreateEventPayload { + @JsonProperty("organization") + private Organization organization = null; + + public OrganizationCreateEventPayload organization(Organization organization) { + this.organization = organization; + return this; + } + + /** + * The involved resource data for the event + * @return organization + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Organization getOrganization() { + return organization; + } + + public void setOrganization(Organization organization) { + this.organization = organization; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OrganizationCreateEventPayload organizationCreateEventPayload = (OrganizationCreateEventPayload) o; + return Objects.equals(this.organization, organizationCreateEventPayload.organization); + } + + @Override + public int hashCode() { + return Objects.hash(organization); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OrganizationCreateEventPayload {\n"); + + sb.append(" organization: ").append(toIndentedString(organization)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationDeleteEvent.java new file mode 100644 index 0000000..df342b4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationDeleteEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class OrganizationDeleteEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("event") + private OrganizationDeleteEventPayload event = null; + + public OrganizationDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public OrganizationDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public OrganizationDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public OrganizationDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public OrganizationDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public OrganizationDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public OrganizationDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public OrganizationDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public OrganizationDeleteEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public OrganizationDeleteEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public OrganizationDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public OrganizationDeleteEvent event(OrganizationDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public OrganizationDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(OrganizationDeleteEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OrganizationDeleteEvent organizationDeleteEvent = (OrganizationDeleteEvent) o; + return Objects.equals(this.eventId, organizationDeleteEvent.eventId) && + Objects.equals(this.eventTime, organizationDeleteEvent.eventTime) && + Objects.equals(this.description, organizationDeleteEvent.description) && + Objects.equals(this.timeOcurred, organizationDeleteEvent.timeOcurred) && + Objects.equals(this.title, organizationDeleteEvent.title) && + Objects.equals(this.eventType, organizationDeleteEvent.eventType) && + Objects.equals(this.domain, organizationDeleteEvent.domain) && + Objects.equals(this.priority, organizationDeleteEvent.priority) && + Objects.equals(this.href, organizationDeleteEvent.href) && + Objects.equals(this.id, organizationDeleteEvent.id) && + Objects.equals(this.correlationId, organizationDeleteEvent.correlationId) && + Objects.equals(this.event, organizationDeleteEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, description, timeOcurred, title, eventType, domain, priority, href, id, correlationId, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OrganizationDeleteEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationDeleteEventPayload.java new file mode 100644 index 0000000..464db22 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationDeleteEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class OrganizationDeleteEventPayload { + @JsonProperty("organization") + private Organization organization = null; + + public OrganizationDeleteEventPayload organization(Organization organization) { + this.organization = organization; + return this; + } + + /** + * The involved resource data for the event + * @return organization + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Organization getOrganization() { + return organization; + } + + public void setOrganization(Organization organization) { + this.organization = organization; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OrganizationDeleteEventPayload organizationDeleteEventPayload = (OrganizationDeleteEventPayload) o; + return Objects.equals(this.organization, organizationDeleteEventPayload.organization); + } + + @Override + public int hashCode() { + return Objects.hash(organization); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OrganizationDeleteEventPayload {\n"); + + sb.append(" organization: ").append(toIndentedString(organization)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationIdentification.java b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationIdentification.java new file mode 100644 index 0000000..6c08b67 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationIdentification.java @@ -0,0 +1,247 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; + +/** + * Represents our registration of information used as proof of identity by an + * organization + */ +@Schema(description = "Represents our registration of information used as proof of identity by an organization") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Entity +public class OrganizationIdentification extends BaseRootEntity { + @JsonProperty("identificationId") + private String identificationId = null; + + @JsonProperty("identificationType") + private String identificationType = null; + + @JsonProperty("issuingAuthority") + private String issuingAuthority = null; + + @JsonProperty("issuingDate") + private OffsetDateTime issuingDate = null; + + @JsonProperty("attachment") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "attachment_refid", referencedColumnName = "uuid") + private AttachmentRefOrValue attachment = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + public OrganizationIdentification identificationId(String identificationId) { + this.identificationId = identificationId; + return this; + } + + /** + * Identifier + * + * @return identificationId + **/ + @Schema(description = "Identifier") + + public String getIdentificationId() { + return identificationId; + } + + public void setIdentificationId(String identificationId) { + this.identificationId = identificationId; + } + + public OrganizationIdentification identificationType(String identificationType) { + this.identificationType = identificationType; + return this; + } + + /** + * Type of identification information used to identify the company in a country + * or internationally + * + * @return identificationType + **/ + @Schema(description = "Type of identification information used to identify the company in a country or internationally") + + public String getIdentificationType() { + return identificationType; + } + + public void setIdentificationType(String identificationType) { + this.identificationType = identificationType; + } + + public OrganizationIdentification issuingAuthority(String issuingAuthority) { + this.issuingAuthority = issuingAuthority; + return this; + } + + /** + * Authority which has issued the identifier (chamber of commerce...) + * + * @return issuingAuthority + **/ + @Schema(description = "Authority which has issued the identifier (chamber of commerce...)") + + public String getIssuingAuthority() { + return issuingAuthority; + } + + public void setIssuingAuthority(String issuingAuthority) { + this.issuingAuthority = issuingAuthority; + } + + public OrganizationIdentification issuingDate(OffsetDateTime issuingDate) { + this.issuingDate = issuingDate; + return this; + } + + /** + * Date at which the identifier was issued + * + * @return issuingDate + **/ + @Schema(description = "Date at which the identifier was issued") + + @Valid + + public OffsetDateTime getIssuingDate() { + return issuingDate; + } + + public void setIssuingDate(OffsetDateTime issuingDate) { + this.issuingDate = issuingDate; + } + + public OrganizationIdentification attachment(AttachmentRefOrValue attachment) { + this.attachment = attachment; + return this; + } + + /** + * Get attachment + * + * @return attachment + **/ + @Schema(description = "") + + @Valid + + public AttachmentRefOrValue getAttachment() { + return attachment; + } + + public void setAttachment(AttachmentRefOrValue attachment) { + this.attachment = attachment; + } + + public OrganizationIdentification validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the identification information is valid. + * + * @return validFor + **/ + @Schema(description = "The period for which the identification information is valid.") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OrganizationIdentification organizationIdentification = (OrganizationIdentification) o; + return Objects.equals(this.identificationId, organizationIdentification.identificationId) + && Objects.equals(this.identificationType, organizationIdentification.identificationType) + && Objects.equals(this.issuingAuthority, organizationIdentification.issuingAuthority) + && Objects.equals(this.issuingDate, organizationIdentification.issuingDate) + && Objects.equals(this.attachment, organizationIdentification.attachment) + && Objects.equals(this.validFor, organizationIdentification.validFor) + && Objects.equals(this.baseType, organizationIdentification.baseType) + && Objects.equals(this.schemaLocation, organizationIdentification.schemaLocation) + && Objects.equals(this.type, organizationIdentification.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(identificationId, identificationType, issuingAuthority, issuingDate, attachment, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OrganizationIdentification {\n"); + + sb.append(" identificationId: ").append(toIndentedString(identificationId)).append("\n"); + sb.append(" identificationType: ").append(toIndentedString(identificationType)).append("\n"); + sb.append(" issuingAuthority: ").append(toIndentedString(issuingAuthority)).append("\n"); + sb.append(" issuingDate: ").append(toIndentedString(issuingDate)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationParentRelationship.java b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationParentRelationship.java new file mode 100644 index 0000000..7baacc6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationParentRelationship.java @@ -0,0 +1,139 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; + +/** + * Parent references of an organization in a structure of organizations. + */ +@Schema(description = "Parent references of an organization in a structure of organizations.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Entity +public class OrganizationParentRelationship extends BaseRootNamedEntity { + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("organization") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "organizationref_refid", referencedColumnName = "uuid") + private OrganizationRef organization = null; + + public OrganizationParentRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * Type of the relationship. Could be juridical, hierarchical, geographical, + * functional for example. + * + * @return relationshipType + **/ + @Schema(description = "Type of the relationship. Could be juridical, hierarchical, geographical, functional for example.") + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public OrganizationParentRelationship organization(OrganizationRef organization) { + this.organization = organization; + return this; + } + + /** + * Get organization + * + * @return organization + **/ + @Schema(description = "") + + @Valid + + public OrganizationRef getOrganization() { + return organization; + } + + public void setOrganization(OrganizationRef organization) { + this.organization = organization; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OrganizationParentRelationship organizationParentRelationship = (OrganizationParentRelationship) o; + return Objects.equals(this.relationshipType, organizationParentRelationship.relationshipType) + && Objects.equals(this.organization, organizationParentRelationship.organization) + && Objects.equals(this.baseType, organizationParentRelationship.baseType) + && Objects.equals(this.schemaLocation, organizationParentRelationship.schemaLocation) + && Objects.equals(this.type, organizationParentRelationship.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(relationshipType, organization, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OrganizationParentRelationship {\n"); + + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" organization: ").append(toIndentedString(organization)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationRef.java b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationRef.java new file mode 100644 index 0000000..aa60396 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationRef.java @@ -0,0 +1,129 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * OrganizationRef + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Entity +public class OrganizationRef extends BaseRootNamedEntity { + + + @JsonProperty("@referredType") + private String referredType = null; + + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + + @JsonProperty("id") + public String getId() { + return uuid; + } + + public OrganizationRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OrganizationRef organizationRef = (OrganizationRef) o; + return Objects.equals(this.uuid, organizationRef.uuid) && + Objects.equals(this.href, organizationRef.href) && + Objects.equals(this.name, organizationRef.name) && + Objects.equals(this.baseType, organizationRef.baseType) && + Objects.equals(this.schemaLocation, organizationRef.schemaLocation) && + Objects.equals(this.type, organizationRef.type) && + Objects.equals(this.referredType, organizationRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash( uuid, href, name, baseType, schemaLocation, type, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OrganizationRef {\n"); + + sb.append(" id: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationStateChangeEvent.java new file mode 100644 index 0000000..4d2795a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationStateChangeEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class OrganizationStateChangeEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("event") + private OrganizationStateChangeEventPayload event = null; + + public OrganizationStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public OrganizationStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public OrganizationStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public OrganizationStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public OrganizationStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public OrganizationStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public OrganizationStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public OrganizationStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public OrganizationStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public OrganizationStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public OrganizationStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public OrganizationStateChangeEvent event(OrganizationStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public OrganizationStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(OrganizationStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OrganizationStateChangeEvent organizationStateChangeEvent = (OrganizationStateChangeEvent) o; + return Objects.equals(this.eventId, organizationStateChangeEvent.eventId) && + Objects.equals(this.eventTime, organizationStateChangeEvent.eventTime) && + Objects.equals(this.description, organizationStateChangeEvent.description) && + Objects.equals(this.timeOcurred, organizationStateChangeEvent.timeOcurred) && + Objects.equals(this.title, organizationStateChangeEvent.title) && + Objects.equals(this.eventType, organizationStateChangeEvent.eventType) && + Objects.equals(this.domain, organizationStateChangeEvent.domain) && + Objects.equals(this.priority, organizationStateChangeEvent.priority) && + Objects.equals(this.href, organizationStateChangeEvent.href) && + Objects.equals(this.id, organizationStateChangeEvent.id) && + Objects.equals(this.correlationId, organizationStateChangeEvent.correlationId) && + Objects.equals(this.event, organizationStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, description, timeOcurred, title, eventType, domain, priority, href, id, correlationId, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OrganizationStateChangeEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationStateChangeEventPayload.java new file mode 100644 index 0000000..76435db --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationStateChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class OrganizationStateChangeEventPayload { + @JsonProperty("organization") + private Organization organization = null; + + public OrganizationStateChangeEventPayload organization(Organization organization) { + this.organization = organization; + return this; + } + + /** + * The involved resource data for the event + * @return organization + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Organization getOrganization() { + return organization; + } + + public void setOrganization(Organization organization) { + this.organization = organization; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OrganizationStateChangeEventPayload organizationStateChangeEventPayload = (OrganizationStateChangeEventPayload) o; + return Objects.equals(this.organization, organizationStateChangeEventPayload.organization); + } + + @Override + public int hashCode() { + return Objects.hash(organization); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OrganizationStateChangeEventPayload {\n"); + + sb.append(" organization: ").append(toIndentedString(organization)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationStateType.java b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationStateType.java new file mode 100644 index 0000000..f18c90b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationStateType.java @@ -0,0 +1,58 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Valid values for the lifecycle state of the organization + */ +public enum OrganizationStateType { + + INITIALIZED("initialized"), + + VALIDATED("validated"), + + CLOSED("closed"); + + private String value; + + OrganizationStateType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static OrganizationStateType fromValue(String text) { + for (OrganizationStateType b : OrganizationStateType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationUpdate.java b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationUpdate.java new file mode 100644 index 0000000..475e4ce --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/OrganizationUpdate.java @@ -0,0 +1,708 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Organization represents a group of people identified by shared interests or purpose. Examples include business, department and enterprise. Because of the complex nature of many businesses, both organizations and organization units are represented by the same data. Skipped properties: id,href + */ +@Schema(description = "Organization represents a group of people identified by shared interests or purpose. Examples include business, department and enterprise. Because of the complex nature of many businesses, both organizations and organization units are represented by the same data. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +public class OrganizationUpdate { + @JsonProperty("isHeadOffice") + protected Boolean isHeadOffice = null; + + @JsonProperty("isLegalEntity") + protected Boolean isLegalEntity = null; + + @JsonProperty("name") + protected String name = null; + + @JsonProperty("nameType") + protected String nameType = null; + + @JsonProperty("organizationType") + protected String organizationType = null; + + @JsonProperty("tradingName") + protected String tradingName = null; + + @JsonProperty("contactMedium") + @Valid + protected List contactMedium = null; + + @JsonProperty("creditRating") + @Valid + protected List creditRating = null; + + @JsonProperty("existsDuring") + protected TimePeriod existsDuring = null; + + @JsonProperty("externalReference") + @Valid + protected List externalReference = null; + + @JsonProperty("organizationChildRelationship") + @Valid + protected List organizationChildRelationship = null; + + @JsonProperty("organizationIdentification") + @Valid + protected List organizationIdentification = null; + + @JsonProperty("organizationParentRelationship") + protected OrganizationParentRelationship organizationParentRelationship = null; + + @JsonProperty("otherName") + @Valid + protected List otherName = null; + + @JsonProperty("partyCharacteristic") + @Valid + protected List partyCharacteristic = null; + + @JsonProperty("relatedParty") + @Valid + protected List relatedParty = null; + + @JsonProperty("status") + protected OrganizationStateType status = null; + + @JsonProperty("taxExemptionCertificate") + @Valid + protected List taxExemptionCertificate = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@type") + protected String type = null; + + public OrganizationUpdate isHeadOffice(Boolean isHeadOffice) { + this.isHeadOffice = isHeadOffice; + return this; + } + + /** + * If value is true, the organization is the head office + * @return isHeadOffice + **/ + @Schema(description = "If value is true, the organization is the head office") + + + public Boolean isIsHeadOffice() { + return isHeadOffice; + } + + public void setIsHeadOffice(Boolean isHeadOffice) { + this.isHeadOffice = isHeadOffice; + } + + public OrganizationUpdate isLegalEntity(Boolean isLegalEntity) { + this.isLegalEntity = isLegalEntity; + return this; + } + + /** + * If value is true, the organization is a legal entity known by a national referential. + * @return isLegalEntity + **/ + @Schema(description = "If value is true, the organization is a legal entity known by a national referential.") + + + public Boolean isIsLegalEntity() { + return isLegalEntity; + } + + public void setIsLegalEntity(Boolean isLegalEntity) { + this.isLegalEntity = isLegalEntity; + } + + public OrganizationUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Organization name (department name for example) + * @return name + **/ + @Schema(description = "Organization name (department name for example)") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public OrganizationUpdate nameType(String nameType) { + this.nameType = nameType; + return this; + } + + /** + * Type of the name : Co, Inc, Ltd,… + * @return nameType + **/ + @Schema(description = "Type of the name : Co, Inc, Ltd,…") + + + public String getNameType() { + return nameType; + } + + public void setNameType(String nameType) { + this.nameType = nameType; + } + + public OrganizationUpdate organizationType(String organizationType) { + this.organizationType = organizationType; + return this; + } + + /** + * Type of Organization (company, department...) + * @return organizationType + **/ + @Schema(description = "Type of Organization (company, department...)") + + + public String getOrganizationType() { + return organizationType; + } + + public void setOrganizationType(String organizationType) { + this.organizationType = organizationType; + } + + public OrganizationUpdate tradingName(String tradingName) { + this.tradingName = tradingName; + return this; + } + + /** + * Name that the organization (unit) trades under + * @return tradingName + **/ + @Schema(description = "Name that the organization (unit) trades under") + + + public String getTradingName() { + return tradingName; + } + + public void setTradingName(String tradingName) { + this.tradingName = tradingName; + } + + public OrganizationUpdate contactMedium(List contactMedium) { + this.contactMedium = contactMedium; + return this; + } + + public OrganizationUpdate addContactMediumItem(ContactMedium contactMediumItem) { + if (this.contactMedium == null) { + this.contactMedium = new ArrayList<>(); + } + this.contactMedium.add(contactMediumItem); + return this; + } + + /** + * Get contactMedium + * @return contactMedium + **/ + @Schema(description = "") + + @Valid + + public List getContactMedium() { + return contactMedium; + } + + public void setContactMedium(List contactMedium) { + this.contactMedium = contactMedium; + } + + public OrganizationUpdate creditRating(List creditRating) { + this.creditRating = creditRating; + return this; + } + + public OrganizationUpdate addCreditRatingItem(PartyCreditProfile creditRatingItem) { + if (this.creditRating == null) { + this.creditRating = new ArrayList<>(); + } + this.creditRating.add(creditRatingItem); + return this; + } + + /** + * Get creditRating + * @return creditRating + **/ + @Schema(description = "") + + @Valid + + public List getCreditRating() { + return creditRating; + } + + public void setCreditRating(List creditRating) { + this.creditRating = creditRating; + } + + public OrganizationUpdate existsDuring(TimePeriod existsDuring) { + this.existsDuring = existsDuring; + return this; + } + + /** + * Get existsDuring + * @return existsDuring + **/ + @Schema(description = "") + + @Valid + + public TimePeriod getExistsDuring() { + return existsDuring; + } + + public void setExistsDuring(TimePeriod existsDuring) { + this.existsDuring = existsDuring; + } + + public OrganizationUpdate externalReference(List externalReference) { + this.externalReference = externalReference; + return this; + } + + public OrganizationUpdate addExternalReferenceItem(ExternalReference externalReferenceItem) { + if (this.externalReference == null) { + this.externalReference = new ArrayList<>(); + } + this.externalReference.add(externalReferenceItem); + return this; + } + + /** + * Get externalReference + * @return externalReference + **/ + @Schema(description = "") + + @Valid + + public List getExternalReference() { + return externalReference; + } + + public void setExternalReference(List externalReference) { + this.externalReference = externalReference; + } + + public OrganizationUpdate organizationChildRelationship(List organizationChildRelationship) { + this.organizationChildRelationship = organizationChildRelationship; + return this; + } + + public OrganizationUpdate addOrganizationChildRelationshipItem(OrganizationChildRelationship organizationChildRelationshipItem) { + if (this.organizationChildRelationship == null) { + this.organizationChildRelationship = new ArrayList<>(); + } + this.organizationChildRelationship.add(organizationChildRelationshipItem); + return this; + } + + /** + * Get organizationChildRelationship + * @return organizationChildRelationship + **/ + @Schema(description = "") + + @Valid + + public List getOrganizationChildRelationship() { + return organizationChildRelationship; + } + + public void setOrganizationChildRelationship(List organizationChildRelationship) { + this.organizationChildRelationship = organizationChildRelationship; + } + + public OrganizationUpdate organizationIdentification(List organizationIdentification) { + this.organizationIdentification = organizationIdentification; + return this; + } + + public OrganizationUpdate addOrganizationIdentificationItem(OrganizationIdentification organizationIdentificationItem) { + if (this.organizationIdentification == null) { + this.organizationIdentification = new ArrayList<>(); + } + this.organizationIdentification.add(organizationIdentificationItem); + return this; + } + + /** + * Get organizationIdentification + * @return organizationIdentification + **/ + @Schema(description = "") + + @Valid + + public List getOrganizationIdentification() { + return organizationIdentification; + } + + public void setOrganizationIdentification(List organizationIdentification) { + this.organizationIdentification = organizationIdentification; + } + + public OrganizationUpdate organizationParentRelationship(OrganizationParentRelationship organizationParentRelationship) { + this.organizationParentRelationship = organizationParentRelationship; + return this; + } + + /** + * Get organizationParentRelationship + * @return organizationParentRelationship + **/ + @Schema(description = "") + + @Valid + + public OrganizationParentRelationship getOrganizationParentRelationship() { + return organizationParentRelationship; + } + + public void setOrganizationParentRelationship(OrganizationParentRelationship organizationParentRelationship) { + this.organizationParentRelationship = organizationParentRelationship; + } + + public OrganizationUpdate otherName(List otherName) { + this.otherName = otherName; + return this; + } + + public OrganizationUpdate addOtherNameItem(OtherNameOrganization otherNameItem) { + if (this.otherName == null) { + this.otherName = new ArrayList<>(); + } + this.otherName.add(otherNameItem); + return this; + } + + /** + * Get otherName + * @return otherName + **/ + @Schema(description = "") + + @Valid + + public List getOtherName() { + return otherName; + } + + public void setOtherName(List otherName) { + this.otherName = otherName; + } + + public OrganizationUpdate partyCharacteristic(List partyCharacteristic) { + this.partyCharacteristic = partyCharacteristic; + return this; + } + + public OrganizationUpdate addPartyCharacteristicItem(Characteristic partyCharacteristicItem) { + if (this.partyCharacteristic == null) { + this.partyCharacteristic = new ArrayList<>(); + } + this.partyCharacteristic.add(partyCharacteristicItem); + return this; + } + + /** + * Get partyCharacteristic + * @return partyCharacteristic + **/ + @Schema(description = "") + + @Valid + + public List getPartyCharacteristic() { + return partyCharacteristic; + } + + public void setPartyCharacteristic(List partyCharacteristic) { + this.partyCharacteristic = partyCharacteristic; + } + + public OrganizationUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public OrganizationUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public OrganizationUpdate status(OrganizationStateType status) { + this.status = status; + return this; + } + + /** + * Status of the organization + * @return status + **/ + @Schema(description = "Status of the organization") + + @Valid + + public OrganizationStateType getStatus() { + return status; + } + + public void setStatus(OrganizationStateType status) { + this.status = status; + } + + public OrganizationUpdate taxExemptionCertificate(List taxExemptionCertificate) { + this.taxExemptionCertificate = taxExemptionCertificate; + return this; + } + + public OrganizationUpdate addTaxExemptionCertificateItem(TaxExemptionCertificate taxExemptionCertificateItem) { + if (this.taxExemptionCertificate == null) { + this.taxExemptionCertificate = new ArrayList<>(); + } + this.taxExemptionCertificate.add(taxExemptionCertificateItem); + return this; + } + + /** + * Get taxExemptionCertificate + * @return taxExemptionCertificate + **/ + @Schema(description = "") + + @Valid + + public List getTaxExemptionCertificate() { + return taxExemptionCertificate; + } + + public void setTaxExemptionCertificate(List taxExemptionCertificate) { + this.taxExemptionCertificate = taxExemptionCertificate; + } + + public OrganizationUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public OrganizationUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public OrganizationUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OrganizationUpdate organizationUpdate = (OrganizationUpdate) o; + return Objects.equals(this.isHeadOffice, organizationUpdate.isHeadOffice) && + Objects.equals(this.isLegalEntity, organizationUpdate.isLegalEntity) && + Objects.equals(this.name, organizationUpdate.name) && + Objects.equals(this.nameType, organizationUpdate.nameType) && + Objects.equals(this.organizationType, organizationUpdate.organizationType) && + Objects.equals(this.tradingName, organizationUpdate.tradingName) && + Objects.equals(this.contactMedium, organizationUpdate.contactMedium) && + Objects.equals(this.creditRating, organizationUpdate.creditRating) && + Objects.equals(this.existsDuring, organizationUpdate.existsDuring) && + Objects.equals(this.externalReference, organizationUpdate.externalReference) && + Objects.equals(this.organizationChildRelationship, organizationUpdate.organizationChildRelationship) && + Objects.equals(this.organizationIdentification, organizationUpdate.organizationIdentification) && + Objects.equals(this.organizationParentRelationship, organizationUpdate.organizationParentRelationship) && + Objects.equals(this.otherName, organizationUpdate.otherName) && + Objects.equals(this.partyCharacteristic, organizationUpdate.partyCharacteristic) && + Objects.equals(this.relatedParty, organizationUpdate.relatedParty) && + Objects.equals(this.status, organizationUpdate.status) && + Objects.equals(this.taxExemptionCertificate, organizationUpdate.taxExemptionCertificate) && + Objects.equals(this.baseType, organizationUpdate.baseType) && + Objects.equals(this.schemaLocation, organizationUpdate.schemaLocation) && + Objects.equals(this.type, organizationUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(isHeadOffice, isLegalEntity, name, nameType, organizationType, tradingName, contactMedium, creditRating, existsDuring, externalReference, organizationChildRelationship, organizationIdentification, organizationParentRelationship, otherName, partyCharacteristic, relatedParty, status, taxExemptionCertificate, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OrganizationUpdate {\n"); + + sb.append(" isHeadOffice: ").append(toIndentedString(isHeadOffice)).append("\n"); + sb.append(" isLegalEntity: ").append(toIndentedString(isLegalEntity)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" nameType: ").append(toIndentedString(nameType)).append("\n"); + sb.append(" organizationType: ").append(toIndentedString(organizationType)).append("\n"); + sb.append(" tradingName: ").append(toIndentedString(tradingName)).append("\n"); + sb.append(" contactMedium: ").append(toIndentedString(contactMedium)).append("\n"); + sb.append(" creditRating: ").append(toIndentedString(creditRating)).append("\n"); + sb.append(" existsDuring: ").append(toIndentedString(existsDuring)).append("\n"); + sb.append(" externalReference: ").append(toIndentedString(externalReference)).append("\n"); + sb.append(" organizationChildRelationship: ").append(toIndentedString(organizationChildRelationship)).append("\n"); + sb.append(" organizationIdentification: ").append(toIndentedString(organizationIdentification)).append("\n"); + sb.append(" organizationParentRelationship: ").append(toIndentedString(organizationParentRelationship)).append("\n"); + sb.append(" otherName: ").append(toIndentedString(otherName)).append("\n"); + sb.append(" partyCharacteristic: ").append(toIndentedString(partyCharacteristic)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" taxExemptionCertificate: ").append(toIndentedString(taxExemptionCertificate)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public Characteristic findCharacteristic(String aName) { + if ( partyCharacteristic!= null ) { + for ( Characteristic c : partyCharacteristic) { + if ( c.getName().equals(aName) ) { + return c; + } + } + } + + return null; + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/OtherNameIndividual.java b/src/main/java/org/etsi/osl/tmf/pm632/model/OtherNameIndividual.java new file mode 100644 index 0000000..62b7d73 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/OtherNameIndividual.java @@ -0,0 +1,387 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; +/** + * Keeps track of other names, for example the old name of a woman before marriage or an artist name. + */ +@Schema(description = "Keeps track of other names, for example the old name of a woman before marriage or an artist name.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Entity +public class OtherNameIndividual extends BaseRootEntity { + @JsonProperty("aristocraticTitle") + private String aristocraticTitle = null; + + @JsonProperty("familyName") + private String familyName = null; + + @JsonProperty("familyNamePrefix") + private String familyNamePrefix = null; + + @JsonProperty("formattedName") + private String formattedName = null; + + @JsonProperty("fullName") + private String fullName = null; + + @JsonProperty("generation") + private String generation = null; + + @JsonProperty("givenName") + private String givenName = null; + + @JsonProperty("legalName") + private String legalName = null; + + @JsonProperty("middleName") + private String middleName = null; + + @JsonProperty("preferredGivenName") + private String preferredGivenName = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + + public OtherNameIndividual aristocraticTitle(String aristocraticTitle) { + this.aristocraticTitle = aristocraticTitle; + return this; + } + + /** + * e.g. Baron, Graf, Earl,… + * @return aristocraticTitle + **/ + @Schema(description = "e.g. Baron, Graf, Earl,…") + + + public String getAristocraticTitle() { + return aristocraticTitle; + } + + public void setAristocraticTitle(String aristocraticTitle) { + this.aristocraticTitle = aristocraticTitle; + } + + public OtherNameIndividual familyName(String familyName) { + this.familyName = familyName; + return this; + } + + /** + * Contains the non-chosen or inherited name. Also known as last name in the Western context + * @return familyName + **/ + @Schema(description = "Contains the non-chosen or inherited name. Also known as last name in the Western context") + + + public String getFamilyName() { + return familyName; + } + + public void setFamilyName(String familyName) { + this.familyName = familyName; + } + + public OtherNameIndividual familyNamePrefix(String familyNamePrefix) { + this.familyNamePrefix = familyNamePrefix; + return this; + } + + /** + * Family name prefix + * @return familyNamePrefix + **/ + @Schema(description = "Family name prefix") + + + public String getFamilyNamePrefix() { + return familyNamePrefix; + } + + public void setFamilyNamePrefix(String familyNamePrefix) { + this.familyNamePrefix = familyNamePrefix; + } + + public OtherNameIndividual formattedName(String formattedName) { + this.formattedName = formattedName; + return this; + } + + /** + * . A fully formatted name in one string with all of its pieces in their proper place and all of the necessary punctuation. Useful for specific contexts (Chinese, Japanese, Korean,…) + * @return formattedName + **/ + @Schema(description = ". A fully formatted name in one string with all of its pieces in their proper place and all of the necessary punctuation. Useful for specific contexts (Chinese, Japanese, Korean,…)") + + + public String getFormattedName() { + return formattedName; + } + + public void setFormattedName(String formattedName) { + this.formattedName = formattedName; + } + + public OtherNameIndividual fullName(String fullName) { + this.fullName = fullName; + return this; + } + + /** + * Full name flatten (first, middle, and last names) + * @return fullName + **/ + @Schema(description = "Full name flatten (first, middle, and last names)") + + + public String getFullName() { + return fullName; + } + + public void setFullName(String fullName) { + this.fullName = fullName; + } + + public OtherNameIndividual generation(String generation) { + this.generation = generation; + return this; + } + + /** + * e.g. Sr, Jr… + * @return generation + **/ + @Schema(description = "e.g. Sr, Jr…") + + + public String getGeneration() { + return generation; + } + + public void setGeneration(String generation) { + this.generation = generation; + } + + public OtherNameIndividual givenName(String givenName) { + this.givenName = givenName; + return this; + } + + /** + * First name + * @return givenName + **/ + @Schema(description = "First name") + + + public String getGivenName() { + return givenName; + } + + public void setGivenName(String givenName) { + this.givenName = givenName; + } + + public OtherNameIndividual legalName(String legalName) { + this.legalName = legalName; + return this; + } + + /** + * Legal name or birth name (name one has for official purposes) + * @return legalName + **/ + @Schema(description = "Legal name or birth name (name one has for official purposes)") + + + public String getLegalName() { + return legalName; + } + + public void setLegalName(String legalName) { + this.legalName = legalName; + } + + public OtherNameIndividual middleName(String middleName) { + this.middleName = middleName; + return this; + } + + /** + * Middle name or initial + * @return middleName + **/ + @Schema(description = "Middle name or initial") + + + public String getMiddleName() { + return middleName; + } + + public void setMiddleName(String middleName) { + this.middleName = middleName; + } + + public OtherNameIndividual preferredGivenName(String preferredGivenName) { + this.preferredGivenName = preferredGivenName; + return this; + } + + /** + * Contains the chosen name by which the person prefers to be addressed. Note: This name may be a name other than a given name, such as a nickname + * @return preferredGivenName + **/ + @Schema(description = "Contains the chosen name by which the person prefers to be addressed. Note: This name may be a name other than a given name, such as a nickname") + + + public String getPreferredGivenName() { + return preferredGivenName; + } + + public void setPreferredGivenName(String preferredGivenName) { + this.preferredGivenName = preferredGivenName; + } + + public OtherNameIndividual title(String title) { + this.title = title; + return this; + } + + /** + * Use for titles (aristrocatic, social, ...): Pr, Dr, Sir,.... + * @return title + **/ + @Schema(description = "Use for titles (aristrocatic, social, ...): Pr, Dr, Sir,....") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public OtherNameIndividual validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * @return validFor + **/ + @Schema(description = "") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OtherNameIndividual otherNameIndividual = (OtherNameIndividual) o; + return Objects.equals(this.aristocraticTitle, otherNameIndividual.aristocraticTitle) && + Objects.equals(this.familyName, otherNameIndividual.familyName) && + Objects.equals(this.familyNamePrefix, otherNameIndividual.familyNamePrefix) && + Objects.equals(this.formattedName, otherNameIndividual.formattedName) && + Objects.equals(this.fullName, otherNameIndividual.fullName) && + Objects.equals(this.generation, otherNameIndividual.generation) && + Objects.equals(this.givenName, otherNameIndividual.givenName) && + Objects.equals(this.legalName, otherNameIndividual.legalName) && + Objects.equals(this.middleName, otherNameIndividual.middleName) && + Objects.equals(this.preferredGivenName, otherNameIndividual.preferredGivenName) && + Objects.equals(this.title, otherNameIndividual.title) && + Objects.equals(this.validFor, otherNameIndividual.validFor) && + Objects.equals(this.baseType, otherNameIndividual.baseType) && + Objects.equals(this.schemaLocation, otherNameIndividual.schemaLocation) && + Objects.equals(this.type, otherNameIndividual.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(aristocraticTitle, familyName, familyNamePrefix, formattedName, fullName, generation, givenName, legalName, middleName, preferredGivenName, title, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OtherNameIndividual {\n"); + + sb.append(" aristocraticTitle: ").append(toIndentedString(aristocraticTitle)).append("\n"); + sb.append(" familyName: ").append(toIndentedString(familyName)).append("\n"); + sb.append(" familyNamePrefix: ").append(toIndentedString(familyNamePrefix)).append("\n"); + sb.append(" formattedName: ").append(toIndentedString(formattedName)).append("\n"); + sb.append(" fullName: ").append(toIndentedString(fullName)).append("\n"); + sb.append(" generation: ").append(toIndentedString(generation)).append("\n"); + sb.append(" givenName: ").append(toIndentedString(givenName)).append("\n"); + sb.append(" legalName: ").append(toIndentedString(legalName)).append("\n"); + sb.append(" middleName: ").append(toIndentedString(middleName)).append("\n"); + sb.append(" preferredGivenName: ").append(toIndentedString(preferredGivenName)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/OtherNameOrganization.java b/src/main/java/org/etsi/osl/tmf/pm632/model/OtherNameOrganization.java new file mode 100644 index 0000000..eb9a073 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/OtherNameOrganization.java @@ -0,0 +1,159 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; + +/** + * Keeps track of other names, for example the old name of an organization. + */ +@Schema(description = "Keeps track of other names, for example the old name of an organization.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Entity +public class OtherNameOrganization extends BaseRootNamedEntity { + + @JsonProperty("nameType") + private String nameType = null; + + @JsonProperty("tradingName") + private String tradingName = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + /** + * Co. , Inc. , Ltd. , Pty Ltd. , Plc; , Gmbh + * @return nameType + **/ + @Schema(description = "Co. , Inc. , Ltd. , Pty Ltd. , Plc; , Gmbh") + + + public String getNameType() { + return nameType; + } + + public void setNameType(String nameType) { + this.nameType = nameType; + } + + public OtherNameOrganization tradingName(String tradingName) { + this.tradingName = tradingName; + return this; + } + + /** + * The name that the organization trades under + * @return tradingName + **/ + @Schema(description = "The name that the organization trades under") + + + public String getTradingName() { + return tradingName; + } + + public void setTradingName(String tradingName) { + this.tradingName = tradingName; + } + + public OtherNameOrganization validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * @return validFor + **/ + @Schema(description = "") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OtherNameOrganization otherNameOrganization = (OtherNameOrganization) o; + return Objects.equals(this.name, otherNameOrganization.name) && + Objects.equals(this.nameType, otherNameOrganization.nameType) && + Objects.equals(this.tradingName, otherNameOrganization.tradingName) && + Objects.equals(this.validFor, otherNameOrganization.validFor) && + Objects.equals(this.baseType, otherNameOrganization.baseType) && + Objects.equals(this.schemaLocation, otherNameOrganization.schemaLocation) && + Objects.equals(this.type, otherNameOrganization.type); + } + + @Override + public int hashCode() { + return Objects.hash(name, nameType, tradingName, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OtherNameOrganization {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" nameType: ").append(toIndentedString(nameType)).append("\n"); + sb.append(" tradingName: ").append(toIndentedString(tradingName)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/Party.java b/src/main/java/org/etsi/osl/tmf/pm632/model/Party.java new file mode 100644 index 0000000..41b7350 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/Party.java @@ -0,0 +1,323 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.validation.Valid; + +/** + * Generic Party structure used to define commonalities between sub concepts of + * Individual and Organization. + */ +@Schema(description = "Generic Party structure used to define commonalities between sub concepts of Individual and Organization.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") +@Entity +public class Party extends BaseRootEntity { + + @JsonProperty("contactMedium") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set contactMedium = new HashSet<>(); + + @JsonProperty("creditRating") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set creditRating = new HashSet<>(); + + @JsonProperty("externalReference") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set externalReference = new HashSet<>(); + + @JsonProperty("partyCharacteristic") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set partyCharacteristic = new HashSet<>(); + + @JsonProperty("relatedParty") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set relatedParty = new HashSet<>(); + + @JsonProperty("taxExemptionCertificate") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set taxExemptionCertificate = new HashSet<>(); + + /** + * Unique identifier of the organization + * + * @return id + **/ + @Schema(description = "Unique identifier of the organization") + + @JsonProperty("id") + public String getId() { + return this.uuid; + } + + public Party contactMedium(Set contactMedium) { + this.contactMedium = contactMedium; + return this; + } + + public Party addContactMediumItem(ContactMedium contactMediumItem) { + if (this.contactMedium == null) { + this.contactMedium = new HashSet<>(); + } + this.contactMedium.add(contactMediumItem); + return this; + } + + /** + * Get contactMedium + * + * @return contactMedium + **/ + @Schema(description = "") + + @Valid + + public Set getContactMedium() { + return contactMedium; + } + + public void setContactMedium(Set contactMedium) { + this.contactMedium = contactMedium; + } + + public Party creditRating(Set creditRating) { + this.creditRating = creditRating; + return this; + } + + public Party addCreditRatingItem(PartyCreditProfile creditRatingItem) { + if (this.creditRating == null) { + this.creditRating = new HashSet<>(); + } + this.creditRating.add(creditRatingItem); + return this; + } + + /** + * Get creditRating + * + * @return creditRating + **/ + @Schema(description = "") + + @Valid + + public Set getCreditRating() { + return creditRating; + } + + public void setCreditRating(Set creditRating) { + this.creditRating = creditRating; + } + + public Party externalReference(Set externalReference) { + this.externalReference = externalReference; + return this; + } + + public Party addExternalReferenceItem(ExternalReference externalReferenceItem) { + if (this.externalReference == null) { + this.externalReference = new HashSet<>(); + } + this.externalReference.add(externalReferenceItem); + return this; + } + + /** + * Get externalReference + * + * @return externalReference + **/ + @Schema(description = "") + + @Valid + + public Set getExternalReference() { + return externalReference; + } + + public void setExternalReference(Set externalReference) { + this.externalReference = externalReference; + } + + public Party partyCharacteristic(Set partyCharacteristic) { + this.partyCharacteristic = partyCharacteristic; + return this; + } + + public Party addPartyCharacteristicItem(Characteristic partyCharacteristicItem) { + if (this.partyCharacteristic == null) { + this.partyCharacteristic = new HashSet<>(); + } + this.partyCharacteristic.add(partyCharacteristicItem); + return this; + } + + /** + * Get partyCharacteristic + * + * @return partyCharacteristic + **/ + @Schema(description = "") + + @Valid + + public Set getPartyCharacteristic() { + return partyCharacteristic; + } + + public void setPartyCharacteristic(Set partyCharacteristic) { + this.partyCharacteristic = partyCharacteristic; + } + + public Party relatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public Party addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new HashSet<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public Set getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + } + + public Party taxExemptionCertificate(Set taxExemptionCertificate) { + this.taxExemptionCertificate = taxExemptionCertificate; + return this; + } + + public Party addTaxExemptionCertificateItem(TaxExemptionCertificate taxExemptionCertificateItem) { + if (this.taxExemptionCertificate == null) { + this.taxExemptionCertificate = new HashSet<>(); + } + this.taxExemptionCertificate.add(taxExemptionCertificateItem); + return this; + } + + /** + * Get taxExemptionCertificate + * + * @return taxExemptionCertificate + **/ + @Schema(description = "") + + @Valid + + public Set getTaxExemptionCertificate() { + return taxExemptionCertificate; + } + + public void setTaxExemptionCertificate(Set taxExemptionCertificate) { + this.taxExemptionCertificate = taxExemptionCertificate; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Party party = (Party) o; + return Objects.equals(this.uuid, party.uuid) && Objects.equals(this.href, party.href) + && Objects.equals(this.contactMedium, party.contactMedium) + && Objects.equals(this.creditRating, party.creditRating) + && Objects.equals(this.externalReference, party.externalReference) + && Objects.equals(this.partyCharacteristic, party.partyCharacteristic) + && Objects.equals(this.relatedParty, party.relatedParty) + && Objects.equals(this.taxExemptionCertificate, party.taxExemptionCertificate) + && Objects.equals(this.baseType, party.baseType) + && Objects.equals(this.schemaLocation, party.schemaLocation) && Objects.equals(this.type, party.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, contactMedium, creditRating, externalReference, partyCharacteristic, relatedParty, taxExemptionCertificate, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Party {\n"); + + sb.append(" id: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" contactMedium: ").append(toIndentedString(contactMedium)).append("\n"); + sb.append(" creditRating: ").append(toIndentedString(creditRating)).append("\n"); + sb.append(" externalReference: ").append(toIndentedString(externalReference)).append("\n"); + sb.append(" partyCharacteristic: ").append(toIndentedString(partyCharacteristic)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" taxExemptionCertificate: ").append(toIndentedString(taxExemptionCertificate)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/PartyCreditProfile.java b/src/main/java/org/etsi/osl/tmf/pm632/model/PartyCreditProfile.java new file mode 100644 index 0000000..7f837ec --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/PartyCreditProfile.java @@ -0,0 +1,211 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; + +/** + * An individual might be evaluated for its worthiness and this evaluation might be based on a credit rating given by a credit agency. + */ +@Schema(description = "An individual might be evaluated for its worthiness and this evaluation might be based on a credit rating given by a credit agency.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + + +@Entity +public class PartyCreditProfile extends BaseRootEntity { + @JsonProperty("creditAgencyName") + private String creditAgencyName = null; + + @JsonProperty("creditAgencyType") + private String creditAgencyType = null; + + @JsonProperty("ratingReference") + private String ratingReference = null; + + @JsonProperty("ratingScore") + private Integer ratingScore = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + + public PartyCreditProfile creditAgencyName(String creditAgencyName) { + this.creditAgencyName = creditAgencyName; + return this; + } + + /** + * Name of the credit agency giving the score + * @return creditAgencyName + **/ + @Schema(description = "Name of the credit agency giving the score") + + + public String getCreditAgencyName() { + return creditAgencyName; + } + + public void setCreditAgencyName(String creditAgencyName) { + this.creditAgencyName = creditAgencyName; + } + + public PartyCreditProfile creditAgencyType(String creditAgencyType) { + this.creditAgencyType = creditAgencyType; + return this; + } + + /** + * Type of the credit agency giving the score + * @return creditAgencyType + **/ + @Schema(description = "Type of the credit agency giving the score") + + + public String getCreditAgencyType() { + return creditAgencyType; + } + + public void setCreditAgencyType(String creditAgencyType) { + this.creditAgencyType = creditAgencyType; + } + + public PartyCreditProfile ratingReference(String ratingReference) { + this.ratingReference = ratingReference; + return this; + } + + /** + * Reference corresponding to the credit rating + * @return ratingReference + **/ + @Schema(description = "Reference corresponding to the credit rating") + + + public String getRatingReference() { + return ratingReference; + } + + public void setRatingReference(String ratingReference) { + this.ratingReference = ratingReference; + } + + public PartyCreditProfile ratingScore(Integer ratingScore) { + this.ratingScore = ratingScore; + return this; + } + + /** + * A measure of a party’s creditworthiness calculated on the basis of a combination of factors such as their income and credit history + * @return ratingScore + **/ + @Schema(description = "A measure of a party’s creditworthiness calculated on the basis of a combination of factors such as their income and credit history") + + + public Integer getRatingScore() { + return ratingScore; + } + + public void setRatingScore(Integer ratingScore) { + this.ratingScore = ratingScore; + } + + public PartyCreditProfile validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * @return validFor + **/ + @Schema(description = "") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyCreditProfile partyCreditProfile = (PartyCreditProfile) o; + return Objects.equals(this.creditAgencyName, partyCreditProfile.creditAgencyName) && + Objects.equals(this.creditAgencyType, partyCreditProfile.creditAgencyType) && + Objects.equals(this.ratingReference, partyCreditProfile.ratingReference) && + Objects.equals(this.ratingScore, partyCreditProfile.ratingScore) && + Objects.equals(this.validFor, partyCreditProfile.validFor) && + Objects.equals(this.baseType, partyCreditProfile.baseType) && + Objects.equals(this.schemaLocation, partyCreditProfile.schemaLocation) && + Objects.equals(this.type, partyCreditProfile.type); + } + + @Override + public int hashCode() { + return Objects.hash(creditAgencyName, creditAgencyType, ratingReference, ratingScore, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyCreditProfile {\n"); + + sb.append(" creditAgencyName: ").append(toIndentedString(creditAgencyName)).append("\n"); + sb.append(" creditAgencyType: ").append(toIndentedString(creditAgencyType)).append("\n"); + sb.append(" ratingReference: ").append(toIndentedString(ratingReference)).append("\n"); + sb.append(" ratingScore: ").append(toIndentedString(ratingScore)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/Skill.java b/src/main/java/org/etsi/osl/tmf/pm632/model/Skill.java new file mode 100644 index 0000000..0047531 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/Skill.java @@ -0,0 +1,211 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; + +/** + * Skills evaluated for an individual with a level and possibly with a limited validity when an obsolescence is defined (Ex: the first-aid certificate first level is limited to one year and an update training is required each year to keep the level). + */ +@Schema(description = "Skills evaluated for an individual with a level and possibly with a limited validity when an obsolescence is defined (Ex: the first-aid certificate first level is limited to one year and an update training is required each year to keep the level).") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Entity +public class Skill extends BaseRootEntity { + @JsonProperty("comment") + private String comment = null; + + @JsonProperty("evaluatedLevel") + private String evaluatedLevel = null; + + @JsonProperty("skillCode") + private String skillCode = null; + + @JsonProperty("skillName") + private String skillName = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + + public Skill comment(String comment) { + this.comment = comment; + return this; + } + + /** + * A free text comment linked to the evaluation done + * @return comment + **/ + @Schema(description = "A free text comment linked to the evaluation done") + + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } + + public Skill evaluatedLevel(String evaluatedLevel) { + this.evaluatedLevel = evaluatedLevel; + return this; + } + + /** + * Level of expertise in a skill evaluated for an individual + * @return evaluatedLevel + **/ + @Schema(description = "Level of expertise in a skill evaluated for an individual") + + + public String getEvaluatedLevel() { + return evaluatedLevel; + } + + public void setEvaluatedLevel(String evaluatedLevel) { + this.evaluatedLevel = evaluatedLevel; + } + + public Skill skillCode(String skillCode) { + this.skillCode = skillCode; + return this; + } + + /** + * Code of the skill + * @return skillCode + **/ + @Schema(description = "Code of the skill") + + + public String getSkillCode() { + return skillCode; + } + + public void setSkillCode(String skillCode) { + this.skillCode = skillCode; + } + + public Skill skillName(String skillName) { + this.skillName = skillName; + return this; + } + + /** + * Name of the skill such as Java language,… + * @return skillName + **/ + @Schema(description = "Name of the skill such as Java language,…") + + + public String getSkillName() { + return skillName; + } + + public void setSkillName(String skillName) { + this.skillName = skillName; + } + + public Skill validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * @return validFor + **/ + @Schema(description = "") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Skill skill = (Skill) o; + return Objects.equals(this.comment, skill.comment) && + Objects.equals(this.evaluatedLevel, skill.evaluatedLevel) && + Objects.equals(this.skillCode, skill.skillCode) && + Objects.equals(this.skillName, skill.skillName) && + Objects.equals(this.validFor, skill.validFor) && + Objects.equals(this.baseType, skill.baseType) && + Objects.equals(this.schemaLocation, skill.schemaLocation) && + Objects.equals(this.type, skill.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(comment, evaluatedLevel, skillCode, skillName, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Skill {\n"); + + sb.append(" comment: ").append(toIndentedString(comment)).append("\n"); + sb.append(" evaluatedLevel: ").append(toIndentedString(evaluatedLevel)).append("\n"); + sb.append(" skillCode: ").append(toIndentedString(skillCode)).append("\n"); + sb.append(" skillName: ").append(toIndentedString(skillName)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/TaxDefinition.java b/src/main/java/org/etsi/osl/tmf/pm632/model/TaxDefinition.java new file mode 100644 index 0000000..1682ae5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/TaxDefinition.java @@ -0,0 +1,155 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * Reference of a tax definition. A tax is levied by an authorized tax jurisdiction. There are many different types of tax (Federal Tax levied by the US Government, State Tax levied by the State of California,…). + */ +@Schema(description = "Reference of a tax definition. A tax is levied by an authorized tax jurisdiction. There are many different types of tax (Federal Tax levied by the US Government, State Tax levied by the State of California,…).") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Entity +public class TaxDefinition extends BaseRootNamedEntity { + + + @JsonProperty("taxType") + private String taxType = null; + + + @JsonProperty("@referredType") + private String referredType = null; + + + /** + * Unique identifier of the tax. + * @return id + **/ + @Schema(description = "Unique identifier of the tax.") + + + @JsonProperty("id") + public String getId() { + return uuid; + } + + + + public TaxDefinition taxType(String taxType) { + this.taxType = taxType; + return this; + } + + /** + * Type of the tax. + * @return taxType + **/ + @Schema(description = "Type of the tax.") + + + public String getTaxType() { + return taxType; + } + + public void setTaxType(String taxType) { + this.taxType = taxType; + } + + + public TaxDefinition referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TaxDefinition taxDefinition = (TaxDefinition) o; + return Objects.equals(this.uuid, taxDefinition.uuid) && + Objects.equals(this.name, taxDefinition.name) && + Objects.equals(this.taxType, taxDefinition.taxType) && + Objects.equals(this.baseType, taxDefinition.baseType) && + Objects.equals(this.schemaLocation, taxDefinition.schemaLocation) && + Objects.equals(this.type, taxDefinition.type) && + Objects.equals(this.referredType, taxDefinition.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, name, taxType, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TaxDefinition {\n"); + + sb.append(" id: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" taxType: ").append(toIndentedString(taxType)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/pm632/model/TaxExemptionCertificate.java b/src/main/java/org/etsi/osl/tmf/pm632/model/TaxExemptionCertificate.java new file mode 100644 index 0000000..ba19249 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/model/TaxExemptionCertificate.java @@ -0,0 +1,282 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; + +/** + * A tax exemption certificate represents a tax exemption granted to a party + * (individual or organization) by a tax jurisdiction which may be a city, + * state, country,... An exemption has a certificate identifier (received from + * the jurisdiction that levied the tax) and a validity period. An exemption is + * per tax types and determines for each type of tax what portion of the tax is + * exempted (partial by percentage or complete) via the tax definition. + */ +@Schema(description = "A tax exemption certificate represents a tax exemption granted to a party (individual or organization) by a tax jurisdiction which may be a city, state, country,... An exemption has a certificate identifier (received from the jurisdiction that levied the tax) and a validity period. An exemption is per tax types and determines for each type of tax what portion of the tax is exempted (partial by percentage or complete) via the tax definition.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:38:47.101+03:00") + +@Entity +public class TaxExemptionCertificate extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("attachment") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "attachment_refid", referencedColumnName = "uuid") + private AttachmentRefOrValue attachment = null; + + @JsonProperty("taxDefinition") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set taxDefinition = new HashSet<>(); + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public TaxExemptionCertificate id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the certificate of the tax exemption + * + * @return id + **/ + @Schema(description = "Unique identifier of the certificate of the tax exemption") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public TaxExemptionCertificate attachment(AttachmentRefOrValue attachment) { + this.attachment = attachment; + return this; + } + + /** + * Get attachment + * + * @return attachment + **/ + @Schema(description = "") + + @Valid + + public AttachmentRefOrValue getAttachment() { + return attachment; + } + + public void setAttachment(AttachmentRefOrValue attachment) { + this.attachment = attachment; + } + + public TaxExemptionCertificate taxDefinition(Set taxDefinition) { + this.taxDefinition = taxDefinition; + return this; + } + + public TaxExemptionCertificate addTaxDefinitionItem(TaxDefinition taxDefinitionItem) { + if (this.taxDefinition == null) { + this.taxDefinition = new HashSet<>(); + } + this.taxDefinition.add(taxDefinitionItem); + return this; + } + + /** + * Get taxDefinition + * + * @return taxDefinition + **/ + @Schema(description = "") + + @Valid + + public Set getTaxDefinition() { + return taxDefinition; + } + + public void setTaxDefinition(Set taxDefinition) { + this.taxDefinition = taxDefinition; + } + + public TaxExemptionCertificate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * + * @return validFor + **/ + @Schema(description = "") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public TaxExemptionCertificate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public TaxExemptionCertificate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public TaxExemptionCertificate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TaxExemptionCertificate taxExemptionCertificate = (TaxExemptionCertificate) o; + return Objects.equals(this.id, taxExemptionCertificate.id) + && Objects.equals(this.attachment, taxExemptionCertificate.attachment) + && Objects.equals(this.taxDefinition, taxExemptionCertificate.taxDefinition) + && Objects.equals(this.validFor, taxExemptionCertificate.validFor) + && Objects.equals(this.baseType, taxExemptionCertificate.baseType) + && Objects.equals(this.schemaLocation, taxExemptionCertificate.schemaLocation) + && Objects.equals(this.type, taxExemptionCertificate.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, attachment, taxDefinition, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TaxExemptionCertificate {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" taxDefinition: ").append(toIndentedString(taxDefinition)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/repo/IndividualRepository.java b/src/main/java/org/etsi/osl/tmf/pm632/repo/IndividualRepository.java new file mode 100644 index 0000000..1e16ed9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/repo/IndividualRepository.java @@ -0,0 +1,43 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.pm632.model.Individual; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + + +@Repository +public interface IndividualRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + Iterable findByFamilyName( String name); + + List findByOrderByFamilyName(); + + Optional findByPreferredGivenName(String username); + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/repo/OrganizationRepository.java b/src/main/java/org/etsi/osl/tmf/pm632/repo/OrganizationRepository.java new file mode 100644 index 0000000..71f733a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/repo/OrganizationRepository.java @@ -0,0 +1,45 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.pm632.model.Organization; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + + +@Repository +public interface OrganizationRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + Iterable findByName( String name); + + List findByOrderByName(); + + @Query("SELECT o FROM Organization o JOIN FETCH o.partyCharacteristic char WHERE char.name LIKE 'EXTERNAL_TMFAPI_BASEURL'") + List findPartnersOfferingEXTERNAL_TMFAPI(); + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/reposervices/IndividualRepoService.java b/src/main/java/org/etsi/osl/tmf/pm632/reposervices/IndividualRepoService.java new file mode 100644 index 0000000..707158f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/reposervices/IndividualRepoService.java @@ -0,0 +1,221 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.reposervices; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.etsi.osl.tmf.pm632.api.IndividualApiRouteBuilder; +import org.etsi.osl.tmf.pm632.model.Characteristic; +import org.etsi.osl.tmf.pm632.model.ContactMedium; +import org.etsi.osl.tmf.pm632.model.Individual; +import org.etsi.osl.tmf.pm632.model.IndividualAttributeValueChangeEvent; +import org.etsi.osl.tmf.pm632.model.IndividualAttributeValueChangeEventPayload; +import org.etsi.osl.tmf.pm632.model.IndividualCreate; +import org.etsi.osl.tmf.pm632.model.IndividualCreateEvent; +import org.etsi.osl.tmf.pm632.model.IndividualCreateEventPayload; +import org.etsi.osl.tmf.pm632.model.IndividualUpdate; +import org.etsi.osl.tmf.pm632.repo.IndividualRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import jakarta.validation.Valid; + + +@Service +@Transactional +public class IndividualRepoService { + + @Autowired + IndividualRepository individualRepository; + + @Autowired + IndividualApiRouteBuilder individualApiRouteBuilder; + + public List findAll() { + return (List) this.individualRepository.findByOrderByFamilyName(); + } + + public Individual addIndividual(@Valid IndividualCreate individual) { + Individual c = new Individual(); + c = updateIndividualData(c, individual); + c = individualRepository.save(c); + raiseIndividualCreate( c ); + return c; + } + + public Individual updateIndividual(String id, @Valid IndividualUpdate individual) { + Individual c = this.findByUuid(id); + if ( c == null) { + return null; + } + c = this.updateIndividualData(c, individual); + c = this.individualRepository.save(c); + raiseIndividualChanged(c); + return c; + } + + private Individual findByUuid(String id) { + Optional optionalCat = this.individualRepository.findByUuid(id); + return optionalCat.orElse(null); + } + + private Individual updateIndividualData(Individual c, @Valid IndividualUpdate indvUpd) { + + if ( indvUpd.getFamilyName()!=null) { + c.setFamilyName( indvUpd.getFamilyName() ); + } + + if ( indvUpd.getFullName() !=null) { + c.setFullName( indvUpd.getFullName() ); + } + + if ( indvUpd.getGivenName() !=null) { + c.setGivenName( indvUpd.getGivenName() ); + } + + + if ( indvUpd.getPreferredGivenName() !=null) { + c.setPreferredGivenName( indvUpd.getPreferredGivenName() ); + } + + if ( indvUpd.getLocation() !=null) { + c.setLocation( indvUpd.getLocation() ); + } + + if ( indvUpd.getContactMedium() !=null) { + //reattach fromDB + Map idAddedUpdated = new HashMap<>(); + + for (ContactMedium cmUpd : indvUpd.getContactMedium()) { + //find by id and reload it here. + boolean idexists = false; + for (ContactMedium originalCm : c.getContactMedium()) { + if ( ( originalCm.getUuid()!=null ) && originalCm.getUuid().equals(cmUpd.getUuid() ) ) { + idexists = true; + idAddedUpdated.put( originalCm.getUuid(), true); + originalCm.updateWith( cmUpd ); + break; + } + } + if (!idexists) { + c.addContactMediumItem( cmUpd ); + idAddedUpdated.put( cmUpd.getUuid(), true); + } + } + List toRemove = new ArrayList<>(); + for (ContactMedium ss : c.getContactMedium() ) { + if (idAddedUpdated.get(ss.getUuid()) == null) { + toRemove.add(ss); + } + } + + for (ContactMedium schar : toRemove) { + c.getContactMedium().remove( schar ); + } + } + + if ( indvUpd.getPartyCharacteristic() !=null) { + //reattach fromDB + Map idAddedUpdated = new HashMap<>(); + + for (Characteristic cmUpd : indvUpd.getPartyCharacteristic()) { + //find by id and reload it here. + boolean idexists = false; + for (Characteristic originalCm : c.getPartyCharacteristic()) { + if ( originalCm.getName().equals(cmUpd.getName() ) ) { + idexists = true; + idAddedUpdated.put( originalCm.getName() , true); + originalCm.updateWith( cmUpd ); + break; + } + } + if (!idexists) { + c.addPartyCharacteristicItem( new Characteristic(cmUpd) ); + idAddedUpdated.put( cmUpd.getName(), true); + } + + } + + List toRemove = new ArrayList<>(); + for (Characteristic ss : c.getPartyCharacteristic()) { + if (idAddedUpdated.get(ss.getName()) == null) { + toRemove.add(ss); + } + } + + for (Characteristic schar : toRemove) { + c.getPartyCharacteristic().remove( schar ); + } + + } + + return c; + } + + public Individual findById(String id) { + Optional c = this.individualRepository.findByUuid(id); + return c.orElse(null); + } + + public Void deleteById(String id) { + Optional c = this.individualRepository.findByUuid(id); + this.individualRepository.delete( c.get()); + return null; + } + + + private void raiseIndividualCreate(Individual c) { + + IndividualCreateEvent ce = new IndividualCreateEvent(); + IndividualCreateEventPayload event = new IndividualCreateEventPayload(); + event.setIndividual(c); + ce.setEvent(event); + individualApiRouteBuilder.publishEvent( ce, c.getId() ); + } + + + private void raiseIndividualChanged(Individual c) { + + IndividualAttributeValueChangeEvent ce = new IndividualAttributeValueChangeEvent(); + IndividualAttributeValueChangeEventPayload event = new IndividualAttributeValueChangeEventPayload(); + event.setIndividual(c); + ce.setEvent(event); + individualApiRouteBuilder.publishEvent( ce, c.getId() ); + + } + + /** + * @param username + * @return + */ + public Individual findByUsername(String username) { + Optional c = this.individualRepository.findByPreferredGivenName( username ); + return c.orElse( null ); + + +// Individual ind = new Individual(); +// ind.getPreferredGivenName() +// return null; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm632/reposervices/OrganizationRepoService.java b/src/main/java/org/etsi/osl/tmf/pm632/reposervices/OrganizationRepoService.java new file mode 100644 index 0000000..3b8f16e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm632/reposervices/OrganizationRepoService.java @@ -0,0 +1,404 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.pm632.reposervices; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.pm632.api.OrganizationApiRouteBuilderEvents; +import org.etsi.osl.tmf.pm632.model.Characteristic; +import org.etsi.osl.tmf.pm632.model.ContactMedium; +import org.etsi.osl.tmf.pm632.model.Organization; +import org.etsi.osl.tmf.pm632.model.OrganizationAttributeValueChangeEvent; +import org.etsi.osl.tmf.pm632.model.OrganizationAttributeValueChangeEventPayload; +import org.etsi.osl.tmf.pm632.model.OrganizationCreate; +import org.etsi.osl.tmf.pm632.model.OrganizationCreateEvent; +import org.etsi.osl.tmf.pm632.model.OrganizationCreateEventPayload; +import org.etsi.osl.tmf.pm632.model.OrganizationUpdate; +import org.etsi.osl.tmf.pm632.repo.OrganizationRepository; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + + +@Service +@Transactional +public class OrganizationRepoService { + + @Autowired + OrganizationRepository organizationRepository; + + @Autowired + OrganizationApiRouteBuilderEvents organizationApiRouteBuilder; + + private SessionFactory sessionFactory; + + + private static final transient Log logger = LogFactory.getLog( OrganizationRepoService.class.getName()); + + @Autowired + public OrganizationRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + public List findAll() { + return (List) this.organizationRepository.findByOrderByName(); + } + + public Organization addOrganization(@Valid OrganizationCreate organization) { + Organization c = new Organization(); + +// /** +// * add here default characteristics for organization +// */ +// + Characteristic partyCharacteristicItem = new Characteristic(); + if ( organization.findCharacteristic( "EXTERNAL_TMFAPI_BASEURL" ) == null ) { + partyCharacteristicItem.setName( "EXTERNAL_TMFAPI_BASEURL" ); + partyCharacteristicItem.setValueType( "TEXT" ); + partyCharacteristicItem.setValue( new Any("")); + c.addPartyCharacteristicItem(partyCharacteristicItem); + } + + if ( organization.findCharacteristic( "EXTERNAL_TMFAPI_CLIENTREGISTRATIONID" ) == null ) { + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName( "EXTERNAL_TMFAPI_CLIENTREGISTRATIONID" ); + partyCharacteristicItem.setValueType( "TEXT" ); + partyCharacteristicItem.setValue( new Any("")); + c.addPartyCharacteristicItem(partyCharacteristicItem); + + } + if ( organization.findCharacteristic( "EXTERNAL_TMFAPI_OAUTH2CLIENTID" ) == null ) { + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName( "EXTERNAL_TMFAPI_OAUTH2CLIENTID" ); + partyCharacteristicItem.setValueType( "TEXT" ); + partyCharacteristicItem.setValue( new Any("")); + c.addPartyCharacteristicItem(partyCharacteristicItem); + + } + if ( organization.findCharacteristic( "EXTERNAL_TMFAPI_OAUTH2CLIENTSECRET" ) == null ) { + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName( "EXTERNAL_TMFAPI_OAUTH2CLIENTSECRET" ); + partyCharacteristicItem.setValueType( "TEXT" ); + partyCharacteristicItem.setValue( new Any("")); + c.addPartyCharacteristicItem(partyCharacteristicItem); + + } + if ( organization.findCharacteristic( "EXTERNAL_TMFAPI_OAUTH2SCOPES" ) == null ) { + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName( "EXTERNAL_TMFAPI_OAUTH2SCOPES" ); + partyCharacteristicItem.setValueType( "TEXT" ); + partyCharacteristicItem.setValue( new Any("")); + c.addPartyCharacteristicItem(partyCharacteristicItem); + + } + if ( organization.findCharacteristic( "EXTERNAL_TMFAPI_OAUTH2TOKENURI" ) == null ) { + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName( "EXTERNAL_TMFAPI_OAUTH2TOKENURI" ); + partyCharacteristicItem.setValueType( "TEXT" ); + partyCharacteristicItem.setValue( new Any("")); + c.addPartyCharacteristicItem(partyCharacteristicItem); + + } + if ( organization.findCharacteristic( "EXTERNAL_TMFAPI_USERNAME" ) == null ) { + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName( "EXTERNAL_TMFAPI_USERNAME" ); + partyCharacteristicItem.setValueType( "TEXT" ); + partyCharacteristicItem.setValue( new Any("")); + c.addPartyCharacteristicItem(partyCharacteristicItem); + + } + if ( organization.findCharacteristic( "EXTERNAL_TMFAPI_PASSWORD" ) == null ) { + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName( "EXTERNAL_TMFAPI_PASSWORD" ); + partyCharacteristicItem.setValueType( "TEXT" ); + partyCharacteristicItem.setValue( new Any("")); + c.addPartyCharacteristicItem(partyCharacteristicItem); + } + if ( organization.findCharacteristic( "EXTERNAL_TMFAPI_SERVICE_CATALOG_URLS" ) == null ) { + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName( "EXTERNAL_TMFAPI_SERVICE_CATALOG_URLS" ); + partyCharacteristicItem.setValueType( "TEXT" ); + partyCharacteristicItem.setValue( new Any("")); + c.addPartyCharacteristicItem(partyCharacteristicItem); + } + + if ( organization.findCharacteristic( "EXTERNAL_TMFAPI_SERVICE_CATEGORY_URLS" ) == null ) { + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName( "EXTERNAL_TMFAPI_SERVICE_CATEGORY_URLS" ); + partyCharacteristicItem.setValueType( "TEXT" ); + partyCharacteristicItem.setValue( new Any("")); + c.addPartyCharacteristicItem(partyCharacteristicItem); + } + + + + if ( organization.findCharacteristic( "EXTERNAL_TMFAPI_SERVICE_SPEC" ) == null ) { + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName( "EXTERNAL_TMFAPI_SERVICE_SPEC" ); + partyCharacteristicItem.setValueType( "TEXT" ); + partyCharacteristicItem.setValue( new Any("")); + c.addPartyCharacteristicItem(partyCharacteristicItem); + } + + if ( organization.findCharacteristic( "EXTERNAL_TMFAPI_SERVICE_ORDER_URLS" ) == null ) { + + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName( "EXTERNAL_TMFAPI_SERVICE_ORDER_URLS" ); + partyCharacteristicItem.setValueType( "TEXT" ); + partyCharacteristicItem.setValue( new Any("")); + c.addPartyCharacteristicItem(partyCharacteristicItem); + + } + + + if ( organization.findCharacteristic( "EXTERNAL_TMFAPI_STATUS" ) == null ) { + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName( "EXTERNAL_TMFAPI_STATUS" ); + partyCharacteristicItem.setValueType( "TEXT" ); + partyCharacteristicItem.setValue( new Any("")); + c.addPartyCharacteristicItem(partyCharacteristicItem); + + } + + c = updateOrganizationData(c, organization); + c = organizationRepository.save(c); + raiseOrganizationCreate( c ); + return c; + } + + public Organization updateOrganization(String id, @Valid OrganizationUpdate organization) { + Organization c = this.findByUuid(id); + if ( c == null) { + return null; + } + c = this.updateOrganizationData(c, organization); + c = this.organizationRepository.save(c); + raiseOrganizationChanged(c); + return c; + } + + private Organization findByUuid(String id) { + Optional optionalCat = this.organizationRepository.findByUuid(id); + return optionalCat.orElse(null); + } + + private Organization updateOrganizationData(Organization c, @Valid OrganizationUpdate orgUpd) { + + if ( orgUpd.getName()!=null) { + c.setName( orgUpd.getName() ); + } + + if ( orgUpd.getTradingName() !=null) { + c.setTradingName( orgUpd.getTradingName() ); + } + + if ( orgUpd.isIsLegalEntity() !=null) { + c.setIsLegalEntity( orgUpd.isIsLegalEntity() ); + } + + if ( orgUpd.getStatus() !=null) { + c.setStatus( orgUpd.getStatus() ); + } + + if ( orgUpd.getContactMedium() !=null) { + //reattach fromDB + Map idAddedUpdated = new HashMap<>(); + + for (ContactMedium cmUpd : orgUpd.getContactMedium()) { + //find by id and reload it here. + boolean idexists = false; + for (ContactMedium originalCm : c.getContactMedium()) { + if ( ( originalCm.getUuid()!=null ) && originalCm.getUuid().equals(cmUpd.getUuid() ) ) { + idexists = true; + idAddedUpdated.put( originalCm.getUuid(), true); + originalCm.updateWith( cmUpd ); + break; + } + } + if (!idexists) { + c.addContactMediumItem( cmUpd ); + } + + } + } + + if ( orgUpd.getPartyCharacteristic() !=null) { + //reattach fromDB + Map idAddedUpdated = new HashMap<>(); + + for (Characteristic cmUpd : orgUpd.getPartyCharacteristic()) { + //find by id and reload it here. + boolean idexists = false; + for (Characteristic originalCm : c.getPartyCharacteristic()) { + if ( originalCm.getName().equals(cmUpd.getName() ) ) { + idexists = true; + idAddedUpdated.put( originalCm.getName() , true); + originalCm.updateWith( cmUpd ); + break; + } + } + if (!idexists) { + c.addPartyCharacteristicItem( new Characteristic(cmUpd) ); + idAddedUpdated.put( cmUpd.getName(), true); + } + + } + + List toRemove = new ArrayList<>(); + for (Characteristic ss : c.getPartyCharacteristic()) { + if (idAddedUpdated.get(ss.getName()) == null) { + toRemove.add(ss); + } + } + + for (Characteristic schar : toRemove) { + c.getPartyCharacteristic().remove( schar ); + } + + } + + return c; + } + + public Organization findById(String id) { + Optional c = this.organizationRepository.findByUuid(id); + return c.orElse(null); + } + + public Void deleteById(String id) { + Optional c = this.organizationRepository.findByUuid(id); + this.organizationRepository.delete( c.get()); + return null; + } + + + public Organization updateOrganization(String orgid, + @Valid Organization srcOrgz) { + + OrganizationUpdate organization = new OrganizationUpdate(); + + organization.setName(srcOrgz.getName()); + for (Characteristic c : srcOrgz.getPartyCharacteristic()) { + organization.addPartyCharacteristicItem( c ); + } + + for (ContactMedium c : srcOrgz.getContactMedium() ) { + organization.addContactMediumItem( c ); + } + + + return this.updateOrganization( orgid, organization); + } + + + private void raiseOrganizationCreate(Organization c) { + + OrganizationCreateEvent ce = new OrganizationCreateEvent(); + OrganizationCreateEventPayload event = new OrganizationCreateEventPayload(); + event.setOrganization(c); + ce.setEvent(event); + organizationApiRouteBuilder.publishEvent( ce, c.getId() ); + + } + + + private void raiseOrganizationChanged(Organization c) { + + OrganizationAttributeValueChangeEvent ce = new OrganizationAttributeValueChangeEvent(); + OrganizationAttributeValueChangeEventPayload event = new OrganizationAttributeValueChangeEventPayload(); + event.setOrganization(c); + ce.setEvent(event); + organizationApiRouteBuilder.publishEvent( ce, c.getId() ); + + } + + @Transactional + public String getPartnerOrganizationsWithAPI() { + + List orgz =organizationRepository.findPartnersOfferingEXTERNAL_TMFAPI(); + + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + + try { + List orgzsend = new ArrayList<>(); + for (Organization o : orgz) { + logger.info( "o.getUuid()" + o.getUuid()); + logger.debug( "o.getUuid()" + o.toString() ); + Organization anorg = session.get(Organization.class, o.getUuid()) ;//this.findByUuid( o.getUuid()); + if (anorg!=null) { + orgzsend.add( anorg ); + } else { + + orgzsend.add( o ); + } + } + + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.writeValueAsString( orgzsend ); + + } catch (JsonProcessingException e) { + logger.error( "Failed to writeValueAsString getPartnerOrganizationsWithAPI." ); + e.printStackTrace(); + } finally { + tx.commit(); + session.close(); + } + + return "[]"; + } + + + @Transactional + public String findByUuidJson(String id) { + Organization o = this.findByUuid(id); + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + try { + return mapper.writeValueAsString( o ); + } catch (JsonProcessingException e) { + e.printStackTrace(); + + } + + return "{}"; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/api/ApiException.java b/src/main/java/org/etsi/osl/tmf/po622/api/ApiException.java new file mode 100644 index 0000000..c29cdee --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/api/ApiException.java @@ -0,0 +1,29 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/api/ApiOriginFilter.java b/src/main/java/org/etsi/osl/tmf/po622/api/ApiOriginFilter.java new file mode 100644 index 0000000..4649718 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/api/ApiOriginFilter.java @@ -0,0 +1,50 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.api; + +import java.io.IOException; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ApiOriginFilter implements jakarta.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/api/ApiResponseMessage.java b/src/main/java/org/etsi/osl/tmf/po622/api/ApiResponseMessage.java new file mode 100644 index 0000000..2a77261 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/api/ApiResponseMessage.java @@ -0,0 +1,88 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.api; + +import jakarta.xml.bind.annotation.XmlTransient; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +@jakarta.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/api/CancelProductOrderApi.java b/src/main/java/org/etsi/osl/tmf/po622/api/CancelProductOrderApi.java new file mode 100644 index 0000000..906cc7a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/api/CancelProductOrderApi.java @@ -0,0 +1,163 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.po622.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.po622.model.CancelProductOrder; +import org.etsi.osl.tmf.po622.model.CancelProductOrderCreate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +@Tag(name = "cancelProductOrder", description = "the cancelProductOrder API") +public interface CancelProductOrderApi { + + Logger log = LoggerFactory.getLogger(CancelProductOrderApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a CancelProductOrder", operationId = "createCancelProductOrder", description = "This operation creates a CancelProductOrder entity.", tags={ "cancelProductOrder", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/cancelProductOrder", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createCancelProductOrder(@Parameter(description = "The CancelProductOrder to be created" ,required=true ) @Valid @RequestBody CancelProductOrderCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"requestedCancellationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"cancellationReason\" : \"cancellationReason\",\r\n \"@type\" : \"@type\",\r\n \"productOrder\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"effectiveCancellationDate\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}", CancelProductOrder.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CancelProductOrderApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find CancelProductOrder objects", operationId = "listCancelProductOrder", description = "This operation list or find CancelProductOrder entities" , tags={ "cancelProductOrder", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/cancelProductOrder", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listCancelProductOrder(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"requestedCancellationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"cancellationReason\" : \"cancellationReason\",\r\n \"@type\" : \"@type\",\r\n \"productOrder\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"effectiveCancellationDate\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}, {\r\n \"requestedCancellationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"cancellationReason\" : \"cancellationReason\",\r\n \"@type\" : \"@type\",\r\n \"productOrder\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"effectiveCancellationDate\" : \"2000-01-23T04:56:07.000+00:00\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CancelProductOrderApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a CancelProductOrder by ID", operationId = "retrieveCancelProductOrder", description = "This operation retrieves a CancelProductOrder entity. Attribute selection is enabled for all first level attributes.", tags={ "cancelProductOrder", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/cancelProductOrder/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveCancelProductOrder(@Parameter(description = "Identifier of the CancelProductOrder",required=true) @PathVariable("id") String id +,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"requestedCancellationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"cancellationReason\" : \"cancellationReason\",\r\n \"@type\" : \"@type\",\r\n \"productOrder\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"effectiveCancellationDate\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}", CancelProductOrder.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CancelProductOrderApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/api/CancelProductOrderApiController.java b/src/main/java/org/etsi/osl/tmf/po622/api/CancelProductOrderApiController.java new file mode 100644 index 0000000..a1a2bfe --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/api/CancelProductOrderApiController.java @@ -0,0 +1,53 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +@Controller +public class CancelProductOrderApiController implements CancelProductOrderApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public CancelProductOrderApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/po622/api/HubApi.java new file mode 100644 index 0000000..f23c431 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/api/HubApi.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.po622.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.po622.model.EventSubscription; +import org.etsi.osl.tmf.po622.model.EventSubscriptionInput; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +@Tag(name = "hub", description = "the hub API") +public interface HubApi { + + Logger log = LoggerFactory.getLogger(HubApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Register a listener", operationId = "registerListener", description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Subscribed" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Unregister a listener", operationId = "unregisterListener", description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method not allowed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/po622/api/HubApiController.java new file mode 100644 index 0000000..c4e0dfa --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/api/HubApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") + +@Controller("HubApiController622") +@RequestMapping("/productOrderingManagement/v4/") +public class HubApiController implements HubApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public HubApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/api/ListenerApi.java b/src/main/java/org/etsi/osl/tmf/po622/api/ListenerApi.java new file mode 100644 index 0000000..b97f896 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/api/ListenerApi.java @@ -0,0 +1,327 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.po622.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.po622.model.CancelProductOrderCreateEvent; +import org.etsi.osl.tmf.po622.model.CancelProductOrderInformationRequiredEvent; +import org.etsi.osl.tmf.po622.model.CancelProductOrderStateChangeEvent; +import org.etsi.osl.tmf.po622.model.EventSubscription; +import org.etsi.osl.tmf.po622.model.ProductOrderAttributeValueChangeEvent; +import org.etsi.osl.tmf.po622.model.ProductOrderCreateEvent; +import org.etsi.osl.tmf.po622.model.ProductOrderDeleteEvent; +import org.etsi.osl.tmf.po622.model.ProductOrderInformationRequiredEvent; +import org.etsi.osl.tmf.po622.model.ProductOrderStateChangeEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +@Tag(name = "listener", description = "the listener API") +public interface ListenerApi { + + Logger log = LoggerFactory.getLogger(ListenerApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Client listener for entity CancelProductOrderCreateEvent", operationId = "listenToCancelProductOrderCreateEvent", description = "Example of a client listener for receiving the notification CancelProductOrderCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/cancelProductOrderCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToCancelProductOrderCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody CancelProductOrderCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity CancelProductOrderInformationRequiredEvent", operationId = "listenToCancelProductOrderInformationRequiredEvent", description = "Example of a client listener for receiving the notification CancelProductOrderInformationRequiredEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/cancelProductOrderInformationRequiredEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToCancelProductOrderInformationRequiredEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody CancelProductOrderInformationRequiredEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity CancelProductOrderStateChangeEvent", operationId = "listenToCancelProductOrderStateChangeEvent", description = "Example of a client listener for receiving the notification CancelProductOrderStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/cancelProductOrderStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToCancelProductOrderStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody CancelProductOrderStateChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ProductOrderAttributeValueChangeEvent", operationId = "listenToProductOrderAttributeValueChangeEvent", description = "Example of a client listener for receiving the notification ProductOrderAttributeValueChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/productOrderAttributeValueChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToProductOrderAttributeValueChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ProductOrderAttributeValueChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ProductOrderCreateEvent", operationId = "listenToProductOrderCreateEvent", description = "Example of a client listener for receiving the notification ProductOrderCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/productOrderCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToProductOrderCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ProductOrderCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ProductOrderDeleteEvent", operationId = "listenToProductOrderDeleteEvent", description = "Example of a client listener for receiving the notification ProductOrderDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/productOrderDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToProductOrderDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ProductOrderDeleteEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ProductOrderInformationRequiredEvent", operationId = "listenToProductOrderInformationRequiredEvent", description = "Example of a client listener for receiving the notification ProductOrderInformationRequiredEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/productOrderInformationRequiredEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToProductOrderInformationRequiredEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ProductOrderInformationRequiredEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ProductOrderStateChangeEvent", operationId = "listenToProductOrderStateChangeEvent", description = "Example of a client listener for receiving the notification ProductOrderStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/productOrderStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToProductOrderStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ProductOrderStateChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/api/ListenerApiController.java b/src/main/java/org/etsi/osl/tmf/po622/api/ListenerApiController.java new file mode 100644 index 0000000..540440c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/api/ListenerApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") + +@Controller("ListenerApiController622") +@RequestMapping("/productOrder/v4/") +public class ListenerApiController implements ListenerApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ListenerApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/api/NotFoundException.java b/src/main/java/org/etsi/osl/tmf/po622/api/NotFoundException.java new file mode 100644 index 0000000..0ce7fbb --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/api/NotFoundException.java @@ -0,0 +1,29 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class NotFoundException extends ApiException { + private int code; + public NotFoundException (int code, String msg) { + super(code, msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/api/ProductOrderApi.java b/src/main/java/org/etsi/osl/tmf/po622/api/ProductOrderApi.java new file mode 100644 index 0000000..b3851c5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/api/ProductOrderApi.java @@ -0,0 +1,220 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.po622.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.po622.model.ProductOrder; +import org.etsi.osl.tmf.po622.model.ProductOrderCreate; +import org.etsi.osl.tmf.po622.model.ProductOrderUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +@Tag(name = "productOrder", description = "the productOrder API") +public interface ProductOrderApi { + + Logger log = LoggerFactory.getLogger(ProductOrderApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a ProductOrder", operationId = "createProductOrder", description = "This operation creates a ProductOrder entity.", tags={ "productOrder", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productOrder", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createProductOrder(@Parameter(description = "The ProductOrder to be created" ,required=true ) @Valid @RequestBody ProductOrderCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"note\" : [ {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"channel\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"description\" : \"description\",\r\n \"billingAccount\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productOrderItem\" : [ {\r\n \"product\" : {\r\n \"isBundle\" : true,\r\n \"productSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"targetProductSchema\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"@referredType\" : \"@referredType\",\r\n \"@type\" : \"@type\",\r\n \"productCharacteristic\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"description\" : \"description\",\r\n \"productOrderItem\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n } ],\r\n \"realizingService\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"terminationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"realizingResource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"product\" : [ null, null ],\r\n \"agreement\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n } ],\r\n \"productOffering\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productTerm\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"productSerialNumber\" : \"productSerialNumber\",\r\n \"name\" : \"name\",\r\n \"productRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"isCustomerVisible\" : true,\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"startDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"productPrice\" : [ {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n }, {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n } ],\r\n \"status\" : \"created\"\r\n },\r\n \"quantity\" : 2,\r\n \"@type\" : \"@type\",\r\n \"itemTotalPrice\" : [ null, null ],\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productOrderItem\" : [ null, null ],\r\n \"productOrderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"itemTerm\" : [ {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"qualification\" : [ null, null ],\r\n \"productOfferingQualificationItem\" : {\r\n \"productOfferingQualificationId\" : \"productOfferingQualificationId\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"productOfferingQualificationName\" : \"productOfferingQualificationName\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"productOfferingQualificationHref\" : \"productOfferingQualificationHref\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"action\" : \"add\",\r\n \"quoteItem\" : {\r\n \"quoteHref\" : \"quoteHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"quoteId\" : \"quoteId\",\r\n \"quoteName\" : \"quoteName\"\r\n },\r\n \"itemPrice\" : [ null, null ],\r\n \"payment\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"product\" : {\r\n \"isBundle\" : true,\r\n \"productSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"targetProductSchema\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"@referredType\" : \"@referredType\",\r\n \"@type\" : \"@type\",\r\n \"productCharacteristic\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"description\" : \"description\",\r\n \"productOrderItem\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n } ],\r\n \"realizingService\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"terminationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"realizingResource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"product\" : [ null, null ],\r\n \"agreement\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n } ],\r\n \"productOffering\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productTerm\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"productSerialNumber\" : \"productSerialNumber\",\r\n \"name\" : \"name\",\r\n \"productRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"isCustomerVisible\" : true,\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"startDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"productPrice\" : [ {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n }, {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n } ],\r\n \"status\" : \"created\"\r\n },\r\n \"quantity\" : 2,\r\n \"@type\" : \"@type\",\r\n \"itemTotalPrice\" : [ null, null ],\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productOrderItem\" : [ null, null ],\r\n \"productOrderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"itemTerm\" : [ {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"qualification\" : [ null, null ],\r\n \"productOfferingQualificationItem\" : {\r\n \"productOfferingQualificationId\" : \"productOfferingQualificationId\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"productOfferingQualificationName\" : \"productOfferingQualificationName\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"productOfferingQualificationHref\" : \"productOfferingQualificationHref\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"action\" : \"add\",\r\n \"quoteItem\" : {\r\n \"quoteHref\" : \"quoteHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"quoteId\" : \"quoteId\",\r\n \"quoteName\" : \"quoteName\"\r\n },\r\n \"itemPrice\" : [ null, null ],\r\n \"payment\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"requestedStartDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"quote\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"payment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"cancellationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"requestedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"agreement\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"cancellationReason\" : \"cancellationReason\",\r\n \"orderTotalPrice\" : [ {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"price\" : {\r\n \"taxRate\" : 6.0274563,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"percentage\" : 0.8008282,\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"dutyFreeAmount\" : {\r\n \"unit\" : \"unit\",\r\n \"value\" : 1.4658129\r\n }\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"priceAlteration\" : [ {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ]\r\n }, {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"price\" : {\r\n \"taxRate\" : 6.0274563,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"percentage\" : 0.8008282,\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"dutyFreeAmount\" : {\r\n \"unit\" : \"unit\",\r\n \"value\" : 1.4658129\r\n }\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"priceAlteration\" : [ {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ]\r\n } ],\r\n \"productOfferingQualification\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"externalId\" : \"externalId\",\r\n \"priority\" : \"priority\",\r\n \"relatedParty\" : [ null, null ],\r\n \"notificationContact\" : \"notificationContact\",\r\n \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"expectedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"category\" : \"category\",\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}", ProductOrder.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ProductOrderApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a ProductOrder", operationId = "deleteProductOrder", description = "This operation deletes a ProductOrder entity.", tags={ "productOrder", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productOrder/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteProductOrder(@Parameter(description = "Identifier of the ProductOrder",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ProductOrderApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find ProductOrder objects", operationId = "listProductOrder", description = "This operation list or find ProductOrder entities" , tags={ "productOrder", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productOrder", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listProductOrder(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"note\" : [ {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"channel\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"description\" : \"description\",\r\n \"billingAccount\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productOrderItem\" : [ {\r\n \"product\" : {\r\n \"isBundle\" : true,\r\n \"productSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"targetProductSchema\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"@referredType\" : \"@referredType\",\r\n \"@type\" : \"@type\",\r\n \"productCharacteristic\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"description\" : \"description\",\r\n \"productOrderItem\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n } ],\r\n \"realizingService\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"terminationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"realizingResource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"product\" : [ null, null ],\r\n \"agreement\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n } ],\r\n \"productOffering\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productTerm\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"productSerialNumber\" : \"productSerialNumber\",\r\n \"name\" : \"name\",\r\n \"productRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"isCustomerVisible\" : true,\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"startDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"productPrice\" : [ {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n }, {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n } ],\r\n \"status\" : \"created\"\r\n },\r\n \"quantity\" : 2,\r\n \"@type\" : \"@type\",\r\n \"itemTotalPrice\" : [ null, null ],\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productOrderItem\" : [ null, null ],\r\n \"productOrderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"itemTerm\" : [ {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"qualification\" : [ null, null ],\r\n \"productOfferingQualificationItem\" : {\r\n \"productOfferingQualificationId\" : \"productOfferingQualificationId\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"productOfferingQualificationName\" : \"productOfferingQualificationName\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"productOfferingQualificationHref\" : \"productOfferingQualificationHref\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"action\" : \"add\",\r\n \"quoteItem\" : {\r\n \"quoteHref\" : \"quoteHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"quoteId\" : \"quoteId\",\r\n \"quoteName\" : \"quoteName\"\r\n },\r\n \"itemPrice\" : [ null, null ],\r\n \"payment\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"product\" : {\r\n \"isBundle\" : true,\r\n \"productSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"targetProductSchema\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"@referredType\" : \"@referredType\",\r\n \"@type\" : \"@type\",\r\n \"productCharacteristic\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"description\" : \"description\",\r\n \"productOrderItem\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n } ],\r\n \"realizingService\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"terminationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"realizingResource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"product\" : [ null, null ],\r\n \"agreement\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n } ],\r\n \"productOffering\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productTerm\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"productSerialNumber\" : \"productSerialNumber\",\r\n \"name\" : \"name\",\r\n \"productRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"isCustomerVisible\" : true,\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"startDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"productPrice\" : [ {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n }, {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n } ],\r\n \"status\" : \"created\"\r\n },\r\n \"quantity\" : 2,\r\n \"@type\" : \"@type\",\r\n \"itemTotalPrice\" : [ null, null ],\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productOrderItem\" : [ null, null ],\r\n \"productOrderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"itemTerm\" : [ {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"qualification\" : [ null, null ],\r\n \"productOfferingQualificationItem\" : {\r\n \"productOfferingQualificationId\" : \"productOfferingQualificationId\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"productOfferingQualificationName\" : \"productOfferingQualificationName\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"productOfferingQualificationHref\" : \"productOfferingQualificationHref\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"action\" : \"add\",\r\n \"quoteItem\" : {\r\n \"quoteHref\" : \"quoteHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"quoteId\" : \"quoteId\",\r\n \"quoteName\" : \"quoteName\"\r\n },\r\n \"itemPrice\" : [ null, null ],\r\n \"payment\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"requestedStartDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"quote\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"payment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"cancellationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"requestedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"agreement\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"cancellationReason\" : \"cancellationReason\",\r\n \"orderTotalPrice\" : [ {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"price\" : {\r\n \"taxRate\" : 6.0274563,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"percentage\" : 0.8008282,\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"dutyFreeAmount\" : {\r\n \"unit\" : \"unit\",\r\n \"value\" : 1.4658129\r\n }\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"priceAlteration\" : [ {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ]\r\n }, {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"price\" : {\r\n \"taxRate\" : 6.0274563,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"percentage\" : 0.8008282,\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"dutyFreeAmount\" : {\r\n \"unit\" : \"unit\",\r\n \"value\" : 1.4658129\r\n }\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"priceAlteration\" : [ {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ]\r\n } ],\r\n \"productOfferingQualification\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"externalId\" : \"externalId\",\r\n \"priority\" : \"priority\",\r\n \"relatedParty\" : [ null, null ],\r\n \"notificationContact\" : \"notificationContact\",\r\n \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"expectedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"category\" : \"category\",\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}, {\r\n \"note\" : [ {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"channel\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"description\" : \"description\",\r\n \"billingAccount\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productOrderItem\" : [ {\r\n \"product\" : {\r\n \"isBundle\" : true,\r\n \"productSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"targetProductSchema\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"@referredType\" : \"@referredType\",\r\n \"@type\" : \"@type\",\r\n \"productCharacteristic\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"description\" : \"description\",\r\n \"productOrderItem\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n } ],\r\n \"realizingService\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"terminationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"realizingResource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"product\" : [ null, null ],\r\n \"agreement\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n } ],\r\n \"productOffering\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productTerm\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"productSerialNumber\" : \"productSerialNumber\",\r\n \"name\" : \"name\",\r\n \"productRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"isCustomerVisible\" : true,\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"startDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"productPrice\" : [ {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n }, {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n } ],\r\n \"status\" : \"created\"\r\n },\r\n \"quantity\" : 2,\r\n \"@type\" : \"@type\",\r\n \"itemTotalPrice\" : [ null, null ],\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productOrderItem\" : [ null, null ],\r\n \"productOrderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"itemTerm\" : [ {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"qualification\" : [ null, null ],\r\n \"productOfferingQualificationItem\" : {\r\n \"productOfferingQualificationId\" : \"productOfferingQualificationId\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"productOfferingQualificationName\" : \"productOfferingQualificationName\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"productOfferingQualificationHref\" : \"productOfferingQualificationHref\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"action\" : \"add\",\r\n \"quoteItem\" : {\r\n \"quoteHref\" : \"quoteHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"quoteId\" : \"quoteId\",\r\n \"quoteName\" : \"quoteName\"\r\n },\r\n \"itemPrice\" : [ null, null ],\r\n \"payment\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"product\" : {\r\n \"isBundle\" : true,\r\n \"productSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"targetProductSchema\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"@referredType\" : \"@referredType\",\r\n \"@type\" : \"@type\",\r\n \"productCharacteristic\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"description\" : \"description\",\r\n \"productOrderItem\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n } ],\r\n \"realizingService\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"terminationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"realizingResource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"product\" : [ null, null ],\r\n \"agreement\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n } ],\r\n \"productOffering\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productTerm\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"productSerialNumber\" : \"productSerialNumber\",\r\n \"name\" : \"name\",\r\n \"productRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"isCustomerVisible\" : true,\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"startDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"productPrice\" : [ {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n }, {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n } ],\r\n \"status\" : \"created\"\r\n },\r\n \"quantity\" : 2,\r\n \"@type\" : \"@type\",\r\n \"itemTotalPrice\" : [ null, null ],\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productOrderItem\" : [ null, null ],\r\n \"productOrderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"itemTerm\" : [ {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"qualification\" : [ null, null ],\r\n \"productOfferingQualificationItem\" : {\r\n \"productOfferingQualificationId\" : \"productOfferingQualificationId\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"productOfferingQualificationName\" : \"productOfferingQualificationName\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"productOfferingQualificationHref\" : \"productOfferingQualificationHref\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"action\" : \"add\",\r\n \"quoteItem\" : {\r\n \"quoteHref\" : \"quoteHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"quoteId\" : \"quoteId\",\r\n \"quoteName\" : \"quoteName\"\r\n },\r\n \"itemPrice\" : [ null, null ],\r\n \"payment\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"requestedStartDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"quote\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"payment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"cancellationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"requestedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"agreement\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"cancellationReason\" : \"cancellationReason\",\r\n \"orderTotalPrice\" : [ {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"price\" : {\r\n \"taxRate\" : 6.0274563,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"percentage\" : 0.8008282,\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"dutyFreeAmount\" : {\r\n \"unit\" : \"unit\",\r\n \"value\" : 1.4658129\r\n }\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"priceAlteration\" : [ {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ]\r\n }, {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"price\" : {\r\n \"taxRate\" : 6.0274563,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"percentage\" : 0.8008282,\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"dutyFreeAmount\" : {\r\n \"unit\" : \"unit\",\r\n \"value\" : 1.4658129\r\n }\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"priceAlteration\" : [ {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ]\r\n } ],\r\n \"productOfferingQualification\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"externalId\" : \"externalId\",\r\n \"priority\" : \"priority\",\r\n \"relatedParty\" : [ null, null ],\r\n \"notificationContact\" : \"notificationContact\",\r\n \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"expectedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"category\" : \"category\",\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ProductOrderApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a ProductOrder", operationId = "patchProductOrder", description = "This operation updates partially a ProductOrder entity.", tags={ "productOrder", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productOrder/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchProductOrder(@Parameter(description = "The ProductOrder to be updated" ,required=true ) @Valid @RequestBody ProductOrderUpdate body +,@Parameter(description = "Identifier of the ProductOrder",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"note\" : [ {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"channel\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"description\" : \"description\",\r\n \"billingAccount\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productOrderItem\" : [ {\r\n \"product\" : {\r\n \"isBundle\" : true,\r\n \"productSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"targetProductSchema\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"@referredType\" : \"@referredType\",\r\n \"@type\" : \"@type\",\r\n \"productCharacteristic\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"description\" : \"description\",\r\n \"productOrderItem\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n } ],\r\n \"realizingService\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"terminationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"realizingResource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"product\" : [ null, null ],\r\n \"agreement\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n } ],\r\n \"productOffering\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productTerm\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"productSerialNumber\" : \"productSerialNumber\",\r\n \"name\" : \"name\",\r\n \"productRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"isCustomerVisible\" : true,\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"startDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"productPrice\" : [ {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n }, {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n } ],\r\n \"status\" : \"created\"\r\n },\r\n \"quantity\" : 2,\r\n \"@type\" : \"@type\",\r\n \"itemTotalPrice\" : [ null, null ],\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productOrderItem\" : [ null, null ],\r\n \"productOrderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"itemTerm\" : [ {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"qualification\" : [ null, null ],\r\n \"productOfferingQualificationItem\" : {\r\n \"productOfferingQualificationId\" : \"productOfferingQualificationId\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"productOfferingQualificationName\" : \"productOfferingQualificationName\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"productOfferingQualificationHref\" : \"productOfferingQualificationHref\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"action\" : \"add\",\r\n \"quoteItem\" : {\r\n \"quoteHref\" : \"quoteHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"quoteId\" : \"quoteId\",\r\n \"quoteName\" : \"quoteName\"\r\n },\r\n \"itemPrice\" : [ null, null ],\r\n \"payment\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"product\" : {\r\n \"isBundle\" : true,\r\n \"productSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"targetProductSchema\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"@referredType\" : \"@referredType\",\r\n \"@type\" : \"@type\",\r\n \"productCharacteristic\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"description\" : \"description\",\r\n \"productOrderItem\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n } ],\r\n \"realizingService\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"terminationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"realizingResource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"product\" : [ null, null ],\r\n \"agreement\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n } ],\r\n \"productOffering\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productTerm\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"productSerialNumber\" : \"productSerialNumber\",\r\n \"name\" : \"name\",\r\n \"productRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"isCustomerVisible\" : true,\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"startDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"productPrice\" : [ {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n }, {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n } ],\r\n \"status\" : \"created\"\r\n },\r\n \"quantity\" : 2,\r\n \"@type\" : \"@type\",\r\n \"itemTotalPrice\" : [ null, null ],\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productOrderItem\" : [ null, null ],\r\n \"productOrderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"itemTerm\" : [ {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"qualification\" : [ null, null ],\r\n \"productOfferingQualificationItem\" : {\r\n \"productOfferingQualificationId\" : \"productOfferingQualificationId\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"productOfferingQualificationName\" : \"productOfferingQualificationName\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"productOfferingQualificationHref\" : \"productOfferingQualificationHref\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"action\" : \"add\",\r\n \"quoteItem\" : {\r\n \"quoteHref\" : \"quoteHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"quoteId\" : \"quoteId\",\r\n \"quoteName\" : \"quoteName\"\r\n },\r\n \"itemPrice\" : [ null, null ],\r\n \"payment\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"requestedStartDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"quote\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"payment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"cancellationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"requestedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"agreement\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"cancellationReason\" : \"cancellationReason\",\r\n \"orderTotalPrice\" : [ {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"price\" : {\r\n \"taxRate\" : 6.0274563,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"percentage\" : 0.8008282,\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"dutyFreeAmount\" : {\r\n \"unit\" : \"unit\",\r\n \"value\" : 1.4658129\r\n }\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"priceAlteration\" : [ {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ]\r\n }, {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"price\" : {\r\n \"taxRate\" : 6.0274563,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"percentage\" : 0.8008282,\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"dutyFreeAmount\" : {\r\n \"unit\" : \"unit\",\r\n \"value\" : 1.4658129\r\n }\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"priceAlteration\" : [ {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ]\r\n } ],\r\n \"productOfferingQualification\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"externalId\" : \"externalId\",\r\n \"priority\" : \"priority\",\r\n \"relatedParty\" : [ null, null ],\r\n \"notificationContact\" : \"notificationContact\",\r\n \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"expectedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"category\" : \"category\",\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}", ProductOrder.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ProductOrderApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a ProductOrder by ID", operationId = "retrieveProductOrder", description = "This operation retrieves a ProductOrder entity. Attribute selection is enabled for all first level attributes.", tags={ "productOrder", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/productOrder/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveProductOrder(@Parameter(description = "Identifier of the ProductOrder",required=true) @PathVariable("id") String id +,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"note\" : [ {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"channel\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"description\" : \"description\",\r\n \"billingAccount\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productOrderItem\" : [ {\r\n \"product\" : {\r\n \"isBundle\" : true,\r\n \"productSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"targetProductSchema\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"@referredType\" : \"@referredType\",\r\n \"@type\" : \"@type\",\r\n \"productCharacteristic\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"description\" : \"description\",\r\n \"productOrderItem\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n } ],\r\n \"realizingService\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"terminationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"realizingResource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"product\" : [ null, null ],\r\n \"agreement\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n } ],\r\n \"productOffering\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productTerm\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"productSerialNumber\" : \"productSerialNumber\",\r\n \"name\" : \"name\",\r\n \"productRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"isCustomerVisible\" : true,\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"startDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"productPrice\" : [ {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n }, {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n } ],\r\n \"status\" : \"created\"\r\n },\r\n \"quantity\" : 2,\r\n \"@type\" : \"@type\",\r\n \"itemTotalPrice\" : [ null, null ],\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productOrderItem\" : [ null, null ],\r\n \"productOrderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"itemTerm\" : [ {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"qualification\" : [ null, null ],\r\n \"productOfferingQualificationItem\" : {\r\n \"productOfferingQualificationId\" : \"productOfferingQualificationId\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"productOfferingQualificationName\" : \"productOfferingQualificationName\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"productOfferingQualificationHref\" : \"productOfferingQualificationHref\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"action\" : \"add\",\r\n \"quoteItem\" : {\r\n \"quoteHref\" : \"quoteHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"quoteId\" : \"quoteId\",\r\n \"quoteName\" : \"quoteName\"\r\n },\r\n \"itemPrice\" : [ null, null ],\r\n \"payment\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"product\" : {\r\n \"isBundle\" : true,\r\n \"productSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"targetProductSchema\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"@referredType\" : \"@referredType\",\r\n \"@type\" : \"@type\",\r\n \"productCharacteristic\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"description\" : \"description\",\r\n \"productOrderItem\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"productOrderHref\" : \"productOrderHref\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItemId\" : \"orderItemId\",\r\n \"@type\" : \"@type\",\r\n \"productOrderId\" : \"productOrderId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderItemAction\" : \"orderItemAction\"\r\n } ],\r\n \"realizingService\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"terminationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"realizingResource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"place\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"product\" : [ null, null ],\r\n \"agreement\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"agreementItemId\" : \"agreementItemId\"\r\n } ],\r\n \"productOffering\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productTerm\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"productSerialNumber\" : \"productSerialNumber\",\r\n \"name\" : \"name\",\r\n \"productRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"isCustomerVisible\" : true,\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"startDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"productPrice\" : [ {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n }, {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"productPriceAlteration\" : [ null, null ]\r\n } ],\r\n \"status\" : \"created\"\r\n },\r\n \"quantity\" : 2,\r\n \"@type\" : \"@type\",\r\n \"itemTotalPrice\" : [ null, null ],\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"productOrderItem\" : [ null, null ],\r\n \"productOrderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"itemTerm\" : [ {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"duration\" : {\r\n \"amount\" : 7.0614014,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"qualification\" : [ null, null ],\r\n \"productOfferingQualificationItem\" : {\r\n \"productOfferingQualificationId\" : \"productOfferingQualificationId\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"productOfferingQualificationName\" : \"productOfferingQualificationName\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"productOfferingQualificationHref\" : \"productOfferingQualificationHref\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"action\" : \"add\",\r\n \"quoteItem\" : {\r\n \"quoteHref\" : \"quoteHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"quoteId\" : \"quoteId\",\r\n \"quoteName\" : \"quoteName\"\r\n },\r\n \"itemPrice\" : [ null, null ],\r\n \"payment\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"requestedStartDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"quote\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"payment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"cancellationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"requestedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"agreement\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"cancellationReason\" : \"cancellationReason\",\r\n \"orderTotalPrice\" : [ {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"price\" : {\r\n \"taxRate\" : 6.0274563,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"percentage\" : 0.8008282,\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"dutyFreeAmount\" : {\r\n \"unit\" : \"unit\",\r\n \"value\" : 1.4658129\r\n }\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"priceAlteration\" : [ {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ]\r\n }, {\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"price\" : {\r\n \"taxRate\" : 6.0274563,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"percentage\" : 0.8008282,\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"dutyFreeAmount\" : {\r\n \"unit\" : \"unit\",\r\n \"value\" : 1.4658129\r\n }\r\n },\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"priceAlteration\" : [ {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"applicationDuration\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"priceType\" : \"priceType\",\r\n \"description\" : \"description\",\r\n \"productOfferingPrice\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"priority\" : 5,\r\n \"recurringChargePeriod\" : \"recurringChargePeriod\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ]\r\n } ],\r\n \"productOfferingQualification\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"externalId\" : \"externalId\",\r\n \"priority\" : \"priority\",\r\n \"relatedParty\" : [ null, null ],\r\n \"notificationContact\" : \"notificationContact\",\r\n \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"expectedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"category\" : \"category\",\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}", ProductOrder.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ProductOrderApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/api/ProductOrderApiController.java b/src/main/java/org/etsi/osl/tmf/po622/api/ProductOrderApiController.java new file mode 100644 index 0000000..bf80e2d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/api/ProductOrderApiController.java @@ -0,0 +1,55 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +@Controller +@RequestMapping("/productOrderingManagement/v4/") +public class ProductOrderApiController implements ProductOrderApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ProductOrderApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/AgreementItemRef.java b/src/main/java/org/etsi/osl/tmf/po622/model/AgreementItemRef.java new file mode 100644 index 0000000..73de861 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/AgreementItemRef.java @@ -0,0 +1,267 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Agreement reference. An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications. + */ +@Schema(description = "Agreement reference. An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class AgreementItemRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("agreementItemId") + private String agreementItemId = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public AgreementItemRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AgreementItemRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public AgreementItemRef agreementItemId(String agreementItemId) { + this.agreementItemId = agreementItemId; + return this; + } + + /** + * Identifier of the agreement + * @return agreementItemId + **/ + @Schema(description = "Identifier of the agreement") + + public String getAgreementItemId() { + return agreementItemId; + } + + public void setAgreementItemId(String agreementItemId) { + this.agreementItemId = agreementItemId; + } + + public AgreementItemRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public AgreementItemRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public AgreementItemRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public AgreementItemRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public AgreementItemRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AgreementItemRef agreementItemRef = (AgreementItemRef) o; + return Objects.equals(this.id, agreementItemRef.id) && + Objects.equals(this.href, agreementItemRef.href) && + Objects.equals(this.agreementItemId, agreementItemRef.agreementItemId) && + Objects.equals(this.name, agreementItemRef.name) && + Objects.equals(this.baseType, agreementItemRef.baseType) && + Objects.equals(this.schemaLocation, agreementItemRef.schemaLocation) && + Objects.equals(this.type, agreementItemRef.type) && + Objects.equals(this._atReferredType, agreementItemRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, agreementItemId, name, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgreementItemRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" agreementItemId: ").append(toIndentedString(agreementItemId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/AgreementRef.java b/src/main/java/org/etsi/osl/tmf/po622/model/AgreementRef.java new file mode 100644 index 0000000..c729d63 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/AgreementRef.java @@ -0,0 +1,243 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Agreement reference. An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications. + */ +@Schema(description = "Agreement reference. An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class AgreementRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public AgreementRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AgreementRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public AgreementRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the agreement + * @return name + **/ + @Schema(description = "Name of the agreement") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public AgreementRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public AgreementRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public AgreementRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public AgreementRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AgreementRef agreementRef = (AgreementRef) o; + return Objects.equals(this.id, agreementRef.id) && + Objects.equals(this.href, agreementRef.href) && + Objects.equals(this.name, agreementRef.name) && + Objects.equals(this.baseType, agreementRef.baseType) && + Objects.equals(this.schemaLocation, agreementRef.schemaLocation) && + Objects.equals(this.type, agreementRef.type) && + Objects.equals(this._atReferredType, agreementRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgreementRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/Any.java b/src/main/java/org/etsi/osl/tmf/po622/model/Any.java new file mode 100644 index 0000000..8367307 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/Any.java @@ -0,0 +1,68 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import org.springframework.validation.annotation.Validated; + +/** + * Any + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class Any { + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + return true; + } + + @Override + public int hashCode() { + return Objects.hash(); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Any {\n"); + + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/AppointmentRef.java b/src/main/java/org/etsi/osl/tmf/po622/model/AppointmentRef.java new file mode 100644 index 0000000..44e145e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/AppointmentRef.java @@ -0,0 +1,243 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Refers an appointment, such as a Customer presentation or internal meeting or site visit + */ +@Schema(description = "Refers an appointment, such as a Customer presentation or internal meeting or site visit") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class AppointmentRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public AppointmentRef id(String id) { + this.id = id; + return this; + } + + /** + * The identifier of the referred appointment + * @return id + **/ + @Schema(description = "The identifier of the referred appointment") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AppointmentRef href(String href) { + this.href = href; + return this; + } + + /** + * The reference of the appointment + * @return href + **/ + @Schema(description = "The reference of the appointment") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public AppointmentRef description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory text regarding the appointment made with a party + * @return description + **/ + @Schema(description = "An explanatory text regarding the appointment made with a party") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public AppointmentRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public AppointmentRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public AppointmentRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public AppointmentRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AppointmentRef appointmentRef = (AppointmentRef) o; + return Objects.equals(this.id, appointmentRef.id) && + Objects.equals(this.href, appointmentRef.href) && + Objects.equals(this.description, appointmentRef.description) && + Objects.equals(this.baseType, appointmentRef.baseType) && + Objects.equals(this.schemaLocation, appointmentRef.schemaLocation) && + Objects.equals(this.type, appointmentRef.type) && + Objects.equals(this._atReferredType, appointmentRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, description, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AppointmentRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/BillingAccountRef.java b/src/main/java/org/etsi/osl/tmf/po622/model/BillingAccountRef.java new file mode 100644 index 0000000..5dd0323 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/BillingAccountRef.java @@ -0,0 +1,243 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * BillingAccount reference. A BillingAccount is a detailed description of a bill structure. + */ +@Schema(description = "BillingAccount reference. A BillingAccount is a detailed description of a bill structure.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class BillingAccountRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public BillingAccountRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the billing account + * @return id + **/ + @Schema(description = "Unique identifier of the billing account") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public BillingAccountRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the billing account + * @return href + **/ + @Schema(description = "Reference of the billing account") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public BillingAccountRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the billing account + * @return name + **/ + @Schema(description = "Name of the billing account") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BillingAccountRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public BillingAccountRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public BillingAccountRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public BillingAccountRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BillingAccountRef billingAccountRef = (BillingAccountRef) o; + return Objects.equals(this.id, billingAccountRef.id) && + Objects.equals(this.href, billingAccountRef.href) && + Objects.equals(this.name, billingAccountRef.name) && + Objects.equals(this.baseType, billingAccountRef.baseType) && + Objects.equals(this.schemaLocation, billingAccountRef.schemaLocation) && + Objects.equals(this.type, billingAccountRef.type) && + Objects.equals(this._atReferredType, billingAccountRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BillingAccountRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/CancelOrder.java b/src/main/java/org/etsi/osl/tmf/po622/model/CancelOrder.java new file mode 100644 index 0000000..c431bb5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/CancelOrder.java @@ -0,0 +1,294 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * A Order cancel is a type of task which can be used to place a request to cancel an order + */ +@Schema(description = "A Order cancel is a type of task which can be used to place a request to cancel an order") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class CancelOrder { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("cancellationReason") + private String cancellationReason = null; + + @JsonProperty("effectiveCancellationDate") + private OffsetDateTime effectiveCancellationDate = null; + + @JsonProperty("requestedCancellationDate") + private OffsetDateTime requestedCancellationDate = null; + + @JsonProperty("state") + private TaskStateType state = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public CancelOrder id(String id) { + this.id = id; + return this; + } + + /** + * id of the cancellation request (this is not an order id) + * @return id + **/ + @Schema(description = "id of the cancellation request (this is not an order id)") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CancelOrder href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink to access the cancellation request + * @return href + **/ + @Schema(description = "Hyperlink to access the cancellation request") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CancelOrder cancellationReason(String cancellationReason) { + this.cancellationReason = cancellationReason; + return this; + } + + /** + * Reason why the order is cancelled. + * @return cancellationReason + **/ + @Schema(description = "Reason why the order is cancelled.") + + public String getCancellationReason() { + return cancellationReason; + } + + public void setCancellationReason(String cancellationReason) { + this.cancellationReason = cancellationReason; + } + + public CancelOrder effectiveCancellationDate(OffsetDateTime effectiveCancellationDate) { + this.effectiveCancellationDate = effectiveCancellationDate; + return this; + } + + /** + * Date when the order is cancelled. + * @return effectiveCancellationDate + **/ + @Schema(description = "Date when the order is cancelled.") + + @Valid + public OffsetDateTime getEffectiveCancellationDate() { + return effectiveCancellationDate; + } + + public void setEffectiveCancellationDate(OffsetDateTime effectiveCancellationDate) { + this.effectiveCancellationDate = effectiveCancellationDate; + } + + public CancelOrder requestedCancellationDate(OffsetDateTime requestedCancellationDate) { + this.requestedCancellationDate = requestedCancellationDate; + return this; + } + + /** + * Date when the submitter wants the order to be cancelled + * @return requestedCancellationDate + **/ + @Schema(description = "Date when the submitter wants the order to be cancelled") + + @Valid + public OffsetDateTime getRequestedCancellationDate() { + return requestedCancellationDate; + } + + public void setRequestedCancellationDate(OffsetDateTime requestedCancellationDate) { + this.requestedCancellationDate = requestedCancellationDate; + } + + public CancelOrder state(TaskStateType state) { + this.state = state; + return this; + } + + /** + * Get state + * @return state + **/ + @Schema(description = "") + + @Valid + public TaskStateType getState() { + return state; + } + + public void setState(TaskStateType state) { + this.state = state; + } + + public CancelOrder baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public CancelOrder schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public CancelOrder type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CancelOrder cancelOrder = (CancelOrder) o; + return Objects.equals(this.id, cancelOrder.id) && + Objects.equals(this.href, cancelOrder.href) && + Objects.equals(this.cancellationReason, cancelOrder.cancellationReason) && + Objects.equals(this.effectiveCancellationDate, cancelOrder.effectiveCancellationDate) && + Objects.equals(this.requestedCancellationDate, cancelOrder.requestedCancellationDate) && + Objects.equals(this.state, cancelOrder.state) && + Objects.equals(this.baseType, cancelOrder.baseType) && + Objects.equals(this.schemaLocation, cancelOrder.schemaLocation) && + Objects.equals(this.type, cancelOrder.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, cancellationReason, effectiveCancellationDate, requestedCancellationDate, state, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CancelOrder {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" cancellationReason: ").append(toIndentedString(cancellationReason)).append("\n"); + sb.append(" effectiveCancellationDate: ").append(toIndentedString(effectiveCancellationDate)).append("\n"); + sb.append(" requestedCancellationDate: ").append(toIndentedString(requestedCancellationDate)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrder.java b/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrder.java new file mode 100644 index 0000000..6a6ac36 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrder.java @@ -0,0 +1,321 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Request for cancellation an existing product order + */ +@Schema(description = "Request for cancellation an existing product order") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class CancelProductOrder { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("cancellationReason") + private String cancellationReason = null; + + @JsonProperty("effectiveCancellationDate") + private OffsetDateTime effectiveCancellationDate = null; + + @JsonProperty("requestedCancellationDate") + private OffsetDateTime requestedCancellationDate = null; + + @JsonProperty("productOrder") + private ProductOrderRef productOrder = null; + + @JsonProperty("state") + private TaskStateType state = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public CancelProductOrder id(String id) { + this.id = id; + return this; + } + + /** + * id of the cancellation request (this is not an order id) + * @return id + **/ + @Schema(description = "id of the cancellation request (this is not an order id)") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CancelProductOrder href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink to access the cancellation request + * @return href + **/ + @Schema(description = "Hyperlink to access the cancellation request") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CancelProductOrder cancellationReason(String cancellationReason) { + this.cancellationReason = cancellationReason; + return this; + } + + /** + * Reason why the order is cancelled. + * @return cancellationReason + **/ + @Schema(description = "Reason why the order is cancelled.") + + public String getCancellationReason() { + return cancellationReason; + } + + public void setCancellationReason(String cancellationReason) { + this.cancellationReason = cancellationReason; + } + + public CancelProductOrder effectiveCancellationDate(OffsetDateTime effectiveCancellationDate) { + this.effectiveCancellationDate = effectiveCancellationDate; + return this; + } + + /** + * Date when the order is cancelled. + * @return effectiveCancellationDate + **/ + @Schema(description = "Date when the order is cancelled.") + + @Valid + public OffsetDateTime getEffectiveCancellationDate() { + return effectiveCancellationDate; + } + + public void setEffectiveCancellationDate(OffsetDateTime effectiveCancellationDate) { + this.effectiveCancellationDate = effectiveCancellationDate; + } + + public CancelProductOrder requestedCancellationDate(OffsetDateTime requestedCancellationDate) { + this.requestedCancellationDate = requestedCancellationDate; + return this; + } + + /** + * Date when the submitter wants the order to be cancelled + * @return requestedCancellationDate + **/ + @Schema(description = "Date when the submitter wants the order to be cancelled") + + @Valid + public OffsetDateTime getRequestedCancellationDate() { + return requestedCancellationDate; + } + + public void setRequestedCancellationDate(OffsetDateTime requestedCancellationDate) { + this.requestedCancellationDate = requestedCancellationDate; + } + + public CancelProductOrder productOrder(ProductOrderRef productOrder) { + this.productOrder = productOrder; + return this; + } + + /** + * Get productOrder + * @return productOrder + **/ + @Schema(description = "") + @NotNull + + @Valid + public ProductOrderRef getProductOrder() { + return productOrder; + } + + public void setProductOrder(ProductOrderRef productOrder) { + this.productOrder = productOrder; + } + + public CancelProductOrder state(TaskStateType state) { + this.state = state; + return this; + } + + /** + * Get state + * @return state + **/ + @Schema(description = "") + + @Valid + public TaskStateType getState() { + return state; + } + + public void setState(TaskStateType state) { + this.state = state; + } + + public CancelProductOrder baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public CancelProductOrder schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public CancelProductOrder type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CancelProductOrder cancelProductOrder = (CancelProductOrder) o; + return Objects.equals(this.id, cancelProductOrder.id) && + Objects.equals(this.href, cancelProductOrder.href) && + Objects.equals(this.cancellationReason, cancelProductOrder.cancellationReason) && + Objects.equals(this.effectiveCancellationDate, cancelProductOrder.effectiveCancellationDate) && + Objects.equals(this.requestedCancellationDate, cancelProductOrder.requestedCancellationDate) && + Objects.equals(this.productOrder, cancelProductOrder.productOrder) && + Objects.equals(this.state, cancelProductOrder.state) && + Objects.equals(this.baseType, cancelProductOrder.baseType) && + Objects.equals(this.schemaLocation, cancelProductOrder.schemaLocation) && + Objects.equals(this.type, cancelProductOrder.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, cancellationReason, effectiveCancellationDate, requestedCancellationDate, productOrder, state, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CancelProductOrder {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" cancellationReason: ").append(toIndentedString(cancellationReason)).append("\n"); + sb.append(" effectiveCancellationDate: ").append(toIndentedString(effectiveCancellationDate)).append("\n"); + sb.append(" requestedCancellationDate: ").append(toIndentedString(requestedCancellationDate)).append("\n"); + sb.append(" productOrder: ").append(toIndentedString(productOrder)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderCreate.java b/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderCreate.java new file mode 100644 index 0000000..018dda0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderCreate.java @@ -0,0 +1,223 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Request for cancellation an existing product order Skipped properties: id,href,state,effectiveCancellationDate + */ +@Schema(description = "Request for cancellation an existing product order Skipped properties: id,href,state,effectiveCancellationDate") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class CancelProductOrderCreate { + @JsonProperty("cancellationReason") + private String cancellationReason = null; + + @JsonProperty("requestedCancellationDate") + private OffsetDateTime requestedCancellationDate = null; + + @JsonProperty("productOrder") + private ProductOrderRef productOrder = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public CancelProductOrderCreate cancellationReason(String cancellationReason) { + this.cancellationReason = cancellationReason; + return this; + } + + /** + * Reason why the order is cancelled. + * @return cancellationReason + **/ + @Schema(description = "Reason why the order is cancelled.") + + public String getCancellationReason() { + return cancellationReason; + } + + public void setCancellationReason(String cancellationReason) { + this.cancellationReason = cancellationReason; + } + + public CancelProductOrderCreate requestedCancellationDate(OffsetDateTime requestedCancellationDate) { + this.requestedCancellationDate = requestedCancellationDate; + return this; + } + + /** + * Date when the submitter wants the order to be cancelled + * @return requestedCancellationDate + **/ + @Schema(description = "Date when the submitter wants the order to be cancelled") + + @Valid + public OffsetDateTime getRequestedCancellationDate() { + return requestedCancellationDate; + } + + public void setRequestedCancellationDate(OffsetDateTime requestedCancellationDate) { + this.requestedCancellationDate = requestedCancellationDate; + } + + public CancelProductOrderCreate productOrder(ProductOrderRef productOrder) { + this.productOrder = productOrder; + return this; + } + + /** + * Get productOrder + * @return productOrder + **/ + @Schema(description = "") + @NotNull + + @Valid + public ProductOrderRef getProductOrder() { + return productOrder; + } + + public void setProductOrder(ProductOrderRef productOrder) { + this.productOrder = productOrder; + } + + public CancelProductOrderCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public CancelProductOrderCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public CancelProductOrderCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CancelProductOrderCreate cancelProductOrderCreate = (CancelProductOrderCreate) o; + return Objects.equals(this.cancellationReason, cancelProductOrderCreate.cancellationReason) && + Objects.equals(this.requestedCancellationDate, cancelProductOrderCreate.requestedCancellationDate) && + Objects.equals(this.productOrder, cancelProductOrderCreate.productOrder) && + Objects.equals(this.baseType, cancelProductOrderCreate.baseType) && + Objects.equals(this.schemaLocation, cancelProductOrderCreate.schemaLocation) && + Objects.equals(this.type, cancelProductOrderCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(cancellationReason, requestedCancellationDate, productOrder, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CancelProductOrderCreate {\n"); + + sb.append(" cancellationReason: ").append(toIndentedString(cancellationReason)).append("\n"); + sb.append(" requestedCancellationDate: ").append(toIndentedString(requestedCancellationDate)).append("\n"); + sb.append(" productOrder: ").append(toIndentedString(productOrder)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderCreateEvent.java b/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderCreateEvent.java new file mode 100644 index 0000000..59d42a2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderCreateEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class CancelProductOrderCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private CancelProductOrderCreateEventPayload event = null; + + public CancelProductOrderCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CancelProductOrderCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CancelProductOrderCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public CancelProductOrderCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public CancelProductOrderCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public CancelProductOrderCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public CancelProductOrderCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public CancelProductOrderCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public CancelProductOrderCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CancelProductOrderCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public CancelProductOrderCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public CancelProductOrderCreateEvent event(CancelProductOrderCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public CancelProductOrderCreateEventPayload getEvent() { + return event; + } + + public void setEvent(CancelProductOrderCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CancelProductOrderCreateEvent cancelProductOrderCreateEvent = (CancelProductOrderCreateEvent) o; + return Objects.equals(this.id, cancelProductOrderCreateEvent.id) && + Objects.equals(this.href, cancelProductOrderCreateEvent.href) && + Objects.equals(this.eventId, cancelProductOrderCreateEvent.eventId) && + Objects.equals(this.eventTime, cancelProductOrderCreateEvent.eventTime) && + Objects.equals(this.eventType, cancelProductOrderCreateEvent.eventType) && + Objects.equals(this.correlationId, cancelProductOrderCreateEvent.correlationId) && + Objects.equals(this.domain, cancelProductOrderCreateEvent.domain) && + Objects.equals(this.title, cancelProductOrderCreateEvent.title) && + Objects.equals(this.description, cancelProductOrderCreateEvent.description) && + Objects.equals(this.priority, cancelProductOrderCreateEvent.priority) && + Objects.equals(this.timeOcurred, cancelProductOrderCreateEvent.timeOcurred) && + Objects.equals(this.event, cancelProductOrderCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CancelProductOrderCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderCreateEventPayload.java new file mode 100644 index 0000000..86c4ec6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderCreateEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class CancelProductOrderCreateEventPayload { + @JsonProperty("cancelProductOrder") + private CancelProductOrder cancelProductOrder = null; + + public CancelProductOrderCreateEventPayload cancelProductOrder(CancelProductOrder cancelProductOrder) { + this.cancelProductOrder = cancelProductOrder; + return this; + } + + /** + * Get cancelProductOrder + * @return cancelProductOrder + **/ + @Schema(description = "") + + @Valid + public CancelProductOrder getCancelProductOrder() { + return cancelProductOrder; + } + + public void setCancelProductOrder(CancelProductOrder cancelProductOrder) { + this.cancelProductOrder = cancelProductOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CancelProductOrderCreateEventPayload cancelProductOrderCreateEventPayload = (CancelProductOrderCreateEventPayload) o; + return Objects.equals(this.cancelProductOrder, cancelProductOrderCreateEventPayload.cancelProductOrder); + } + + @Override + public int hashCode() { + return Objects.hash(cancelProductOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CancelProductOrderCreateEventPayload {\n"); + + sb.append(" cancelProductOrder: ").append(toIndentedString(cancelProductOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderInformationRequiredEvent.java b/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderInformationRequiredEvent.java new file mode 100644 index 0000000..fd6e530 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderInformationRequiredEvent.java @@ -0,0 +1,342 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class CancelProductOrderInformationRequiredEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("event") + private CancelProductOrderInformationRequiredEventPayload event = null; + + public CancelProductOrderInformationRequiredEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public CancelProductOrderInformationRequiredEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public CancelProductOrderInformationRequiredEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public CancelProductOrderInformationRequiredEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public CancelProductOrderInformationRequiredEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public CancelProductOrderInformationRequiredEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public CancelProductOrderInformationRequiredEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CancelProductOrderInformationRequiredEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public CancelProductOrderInformationRequiredEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public CancelProductOrderInformationRequiredEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public CancelProductOrderInformationRequiredEvent event(CancelProductOrderInformationRequiredEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public CancelProductOrderInformationRequiredEventPayload getEvent() { + return event; + } + + public void setEvent(CancelProductOrderInformationRequiredEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CancelProductOrderInformationRequiredEvent cancelProductOrderInformationRequiredEvent = (CancelProductOrderInformationRequiredEvent) o; + return Objects.equals(this.eventId, cancelProductOrderInformationRequiredEvent.eventId) && + Objects.equals(this.eventTime, cancelProductOrderInformationRequiredEvent.eventTime) && + Objects.equals(this.eventType, cancelProductOrderInformationRequiredEvent.eventType) && + Objects.equals(this.correlationId, cancelProductOrderInformationRequiredEvent.correlationId) && + Objects.equals(this.domain, cancelProductOrderInformationRequiredEvent.domain) && + Objects.equals(this.title, cancelProductOrderInformationRequiredEvent.title) && + Objects.equals(this.description, cancelProductOrderInformationRequiredEvent.description) && + Objects.equals(this.priority, cancelProductOrderInformationRequiredEvent.priority) && + Objects.equals(this.timeOcurred, cancelProductOrderInformationRequiredEvent.timeOcurred) && + Objects.equals(this.fieldPath, cancelProductOrderInformationRequiredEvent.fieldPath) && + Objects.equals(this.event, cancelProductOrderInformationRequiredEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, fieldPath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CancelProductOrderInformationRequiredEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderInformationRequiredEventPayload.java b/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderInformationRequiredEventPayload.java new file mode 100644 index 0000000..75bf9e5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderInformationRequiredEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class CancelProductOrderInformationRequiredEventPayload { + @JsonProperty("cancelProductOrder") + private CancelProductOrder cancelProductOrder = null; + + public CancelProductOrderInformationRequiredEventPayload cancelProductOrder(CancelProductOrder cancelProductOrder) { + this.cancelProductOrder = cancelProductOrder; + return this; + } + + /** + * Get cancelProductOrder + * @return cancelProductOrder + **/ + @Schema(description = "") + + @Valid + public CancelProductOrder getCancelProductOrder() { + return cancelProductOrder; + } + + public void setCancelProductOrder(CancelProductOrder cancelProductOrder) { + this.cancelProductOrder = cancelProductOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CancelProductOrderInformationRequiredEventPayload cancelProductOrderInformationRequiredEventPayload = (CancelProductOrderInformationRequiredEventPayload) o; + return Objects.equals(this.cancelProductOrder, cancelProductOrderInformationRequiredEventPayload.cancelProductOrder); + } + + @Override + public int hashCode() { + return Objects.hash(cancelProductOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CancelProductOrderInformationRequiredEventPayload {\n"); + + sb.append(" cancelProductOrder: ").append(toIndentedString(cancelProductOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderStateChangeEvent.java new file mode 100644 index 0000000..c0280f5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderStateChangeEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class CancelProductOrderStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private CancelProductOrderStateChangeEventPayload event = null; + + public CancelProductOrderStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CancelProductOrderStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CancelProductOrderStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public CancelProductOrderStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public CancelProductOrderStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public CancelProductOrderStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public CancelProductOrderStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public CancelProductOrderStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public CancelProductOrderStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CancelProductOrderStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public CancelProductOrderStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public CancelProductOrderStateChangeEvent event(CancelProductOrderStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public CancelProductOrderStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(CancelProductOrderStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CancelProductOrderStateChangeEvent cancelProductOrderStateChangeEvent = (CancelProductOrderStateChangeEvent) o; + return Objects.equals(this.id, cancelProductOrderStateChangeEvent.id) && + Objects.equals(this.href, cancelProductOrderStateChangeEvent.href) && + Objects.equals(this.eventId, cancelProductOrderStateChangeEvent.eventId) && + Objects.equals(this.eventTime, cancelProductOrderStateChangeEvent.eventTime) && + Objects.equals(this.eventType, cancelProductOrderStateChangeEvent.eventType) && + Objects.equals(this.correlationId, cancelProductOrderStateChangeEvent.correlationId) && + Objects.equals(this.domain, cancelProductOrderStateChangeEvent.domain) && + Objects.equals(this.title, cancelProductOrderStateChangeEvent.title) && + Objects.equals(this.description, cancelProductOrderStateChangeEvent.description) && + Objects.equals(this.priority, cancelProductOrderStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, cancelProductOrderStateChangeEvent.timeOcurred) && + Objects.equals(this.event, cancelProductOrderStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CancelProductOrderStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderStateChangeEventPayload.java new file mode 100644 index 0000000..dde76f6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/CancelProductOrderStateChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class CancelProductOrderStateChangeEventPayload { + @JsonProperty("cancelProductOrder") + private CancelProductOrder cancelProductOrder = null; + + public CancelProductOrderStateChangeEventPayload cancelProductOrder(CancelProductOrder cancelProductOrder) { + this.cancelProductOrder = cancelProductOrder; + return this; + } + + /** + * Get cancelProductOrder + * @return cancelProductOrder + **/ + @Schema(description = "") + + @Valid + public CancelProductOrder getCancelProductOrder() { + return cancelProductOrder; + } + + public void setCancelProductOrder(CancelProductOrder cancelProductOrder) { + this.cancelProductOrder = cancelProductOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CancelProductOrderStateChangeEventPayload cancelProductOrderStateChangeEventPayload = (CancelProductOrderStateChangeEventPayload) o; + return Objects.equals(this.cancelProductOrder, cancelProductOrderStateChangeEventPayload.cancelProductOrder); + } + + @Override + public int hashCode() { + return Objects.hash(cancelProductOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CancelProductOrderStateChangeEventPayload {\n"); + + sb.append(" cancelProductOrder: ").append(toIndentedString(cancelProductOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/Characteristic.java b/src/main/java/org/etsi/osl/tmf/po622/model/Characteristic.java new file mode 100644 index 0000000..d709b73 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/Characteristic.java @@ -0,0 +1,222 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Describes a given characteristic of an object or entity through a name/value pair. + */ +@Schema(description = "Describes a given characteristic of an object or entity through a name/value pair.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class Characteristic { + @JsonProperty("name") + private String name = null; + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("value") + private Any value = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Characteristic name(String name) { + this.name = name; + return this; + } + + /** + * Name of the characteristic + * @return name + **/ + @Schema(description = "Name of the characteristic") + @NotNull + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Characteristic valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * Data type of the value of the characteristic + * @return valueType + **/ + @Schema(description = "Data type of the value of the characteristic") + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public Characteristic value(Any value) { + this.value = value; + return this; + } + + /** + * Get value + * @return value + **/ + @Schema(description = "") + @NotNull + + @Valid + public Any getValue() { + return value; + } + + public void setValue(Any value) { + this.value = value; + } + + public Characteristic baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public Characteristic schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Characteristic type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Characteristic characteristic = (Characteristic) o; + return Objects.equals(this.name, characteristic.name) && + Objects.equals(this.valueType, characteristic.valueType) && + Objects.equals(this.value, characteristic.value) && + Objects.equals(this.baseType, characteristic.baseType) && + Objects.equals(this.schemaLocation, characteristic.schemaLocation) && + Objects.equals(this.type, characteristic.type); + } + + @Override + public int hashCode() { + return Objects.hash(name, valueType, value, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Characteristic {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/EntityRef.java b/src/main/java/org/etsi/osl/tmf/po622/model/EntityRef.java new file mode 100644 index 0000000..97784a5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/EntityRef.java @@ -0,0 +1,243 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Entity reference schema to be use for all entityRef class. + */ +@Schema(description = "Entity reference schema to be use for all entityRef class.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class EntityRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public EntityRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EntityRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public EntityRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public EntityRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public EntityRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public EntityRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public EntityRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntityRef entityRef = (EntityRef) o; + return Objects.equals(this.id, entityRef.id) && + Objects.equals(this.href, entityRef.href) && + Objects.equals(this.name, entityRef.name) && + Objects.equals(this.baseType, entityRef.baseType) && + Objects.equals(this.schemaLocation, entityRef.schemaLocation) && + Objects.equals(this.type, entityRef.type) && + Objects.equals(this._atReferredType, entityRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntityRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/Error.java b/src/main/java/org/etsi/osl/tmf/po622/model/Error.java new file mode 100644 index 0000000..ac84983 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/Error.java @@ -0,0 +1,268 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx) + */ +@Schema(description = "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class Error { + @JsonProperty("code") + private String code = null; + + @JsonProperty("reason") + private String reason = null; + + @JsonProperty("message") + private String message = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("referenceError") + private String referenceError = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Error code(String code) { + this.code = code; + return this; + } + + /** + * Application relevant detail, defined in the API or a common list. + * @return code + **/ + @Schema(description = "Application relevant detail, defined in the API or a common list.") + @NotNull + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public Error reason(String reason) { + this.reason = reason; + return this; + } + + /** + * Explanation of the reason for the error which can be shown to a client user. + * @return reason + **/ + @Schema(description = "Explanation of the reason for the error which can be shown to a client user.") + @NotNull + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public Error message(String message) { + this.message = message; + return this; + } + + /** + * More details and corrective actions related to the error which can be shown to a client user. + * @return message + **/ + @Schema(description = "More details and corrective actions related to the error which can be shown to a client user.") + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Error status(String status) { + this.status = status; + return this; + } + + /** + * HTTP Error code extension + * @return status + **/ + @Schema(description = "HTTP Error code extension") + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Error referenceError(String referenceError) { + this.referenceError = referenceError; + return this; + } + + /** + * URI of documentation describing the error. + * @return referenceError + **/ + @Schema(description = "URI of documentation describing the error.") + + public String getReferenceError() { + return referenceError; + } + + public void setReferenceError(String referenceError) { + this.referenceError = referenceError; + } + + public Error baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class. + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class.") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public Error schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Error type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name. + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name.") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Error error = (Error) o; + return Objects.equals(this.code, error.code) && + Objects.equals(this.reason, error.reason) && + Objects.equals(this.message, error.message) && + Objects.equals(this.status, error.status) && + Objects.equals(this.referenceError, error.referenceError) && + Objects.equals(this.baseType, error.baseType) && + Objects.equals(this.schemaLocation, error.schemaLocation) && + Objects.equals(this.type, error.type); + } + + @Override + public int hashCode() { + return Objects.hash(code, reason, message, status, referenceError, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Error {\n"); + + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" referenceError: ").append(toIndentedString(referenceError)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/po622/model/EventSubscription.java new file mode 100644 index 0000000..8e67b57 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/EventSubscription.java @@ -0,0 +1,148 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class EventSubscription { + @JsonProperty("id") + private String id = null; + + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscription id(String id) { + this.id = id; + return this; + } + + /** + * Id of the listener + * @return id + **/ + @Schema(description = "Id of the listener") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EventSubscription callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscription query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscription eventSubscription = (EventSubscription) o; + return Objects.equals(this.id, eventSubscription.id) && + Objects.equals(this.callback, eventSubscription.callback) && + Objects.equals(this.query, eventSubscription.query); + } + + @Override + public int hashCode() { + return Objects.hash(id, callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscription {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/EventSubscriptionInput.java b/src/main/java/org/etsi/osl/tmf/po622/model/EventSubscriptionInput.java new file mode 100644 index 0000000..083bc48 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/EventSubscriptionInput.java @@ -0,0 +1,123 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class EventSubscriptionInput { + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscriptionInput callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscriptionInput query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscriptionInput eventSubscriptionInput = (EventSubscriptionInput) o; + return Objects.equals(this.callback, eventSubscriptionInput.callback) && + Objects.equals(this.query, eventSubscriptionInput.query); + } + + @Override + public int hashCode() { + return Objects.hash(callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscriptionInput {\n"); + + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/Money.java b/src/main/java/org/etsi/osl/tmf/po622/model/Money.java new file mode 100644 index 0000000..3e92fbf --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/Money.java @@ -0,0 +1,121 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * A base / value business entity used to represent money + */ +@Schema(description = "A base / value business entity used to represent money") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class Money { + @JsonProperty("unit") + private String unit = null; + + @JsonProperty("value") + private Float value = null; + + public Money unit(String unit) { + this.unit = unit; + return this; + } + + /** + * Currency (ISO4217 norm uses 3 letters to define the currency) + * @return unit + **/ + @Schema(description = "Currency (ISO4217 norm uses 3 letters to define the currency)") + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public Money value(Float value) { + this.value = value; + return this; + } + + /** + * A positive floating point number + * @return value + **/ + @Schema(description = "A positive floating point number") + + public Float getValue() { + return value; + } + + public void setValue(Float value) { + this.value = value; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Money money = (Money) o; + return Objects.equals(this.unit, money.unit) && + Objects.equals(this.value, money.value); + } + + @Override + public int hashCode() { + return Objects.hash(unit, value); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Money {\n"); + + sb.append(" unit: ").append(toIndentedString(unit)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/OrderItemActionType.java b/src/main/java/org/etsi/osl/tmf/po622/model/OrderItemActionType.java new file mode 100644 index 0000000..f9477f2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/OrderItemActionType.java @@ -0,0 +1,55 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * action to be performed on the product + */ +public enum OrderItemActionType { + ADD("add"), + MODIFY("modify"), + DELETE("delete"), + NOCHANGE("noChange"); + + private String value; + + OrderItemActionType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static OrderItemActionType fromValue(String text) { + for (OrderItemActionType b : OrderItemActionType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/OrderItemRelationship.java b/src/main/java/org/etsi/osl/tmf/po622/model/OrderItemRelationship.java new file mode 100644 index 0000000..9ab0338 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/OrderItemRelationship.java @@ -0,0 +1,192 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * OrderItemRelationship + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class OrderItemRelationship { + @JsonProperty("id") + private String id = null; + + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public OrderItemRelationship id(String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + **/ + @Schema(description = "") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public OrderItemRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * The type of order item relationship + * @return relationshipType + **/ + @Schema(description = "The type of order item relationship") + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public OrderItemRelationship baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public OrderItemRelationship schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public OrderItemRelationship type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OrderItemRelationship orderItemRelationship = (OrderItemRelationship) o; + return Objects.equals(this.id, orderItemRelationship.id) && + Objects.equals(this.relationshipType, orderItemRelationship.relationshipType) && + Objects.equals(this.baseType, orderItemRelationship.baseType) && + Objects.equals(this.schemaLocation, orderItemRelationship.schemaLocation) && + Objects.equals(this.type, orderItemRelationship.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, relationshipType, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OrderItemRelationship {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/OrderPrice.java b/src/main/java/org/etsi/osl/tmf/po622/model/OrderPrice.java new file mode 100644 index 0000000..ec9f853 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/OrderPrice.java @@ -0,0 +1,376 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * An amount, usually of money, that represents the actual price paid by the Customer for this item or this order + */ +@Schema(description = "An amount, usually of money, that represents the actual price paid by the Customer for this item or this order") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class OrderPrice { + @JsonProperty("description") + private String description = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("priceType") + private String priceType = null; + + @JsonProperty("recurringChargePeriod") + private String recurringChargePeriod = null; + + @JsonProperty("unitOfMeasure") + private String unitOfMeasure = null; + + @JsonProperty("billingAccount") + private BillingAccountRef billingAccount = null; + + @JsonProperty("price") + private Price price = null; + + @JsonProperty("priceAlteration") + @Valid + private List priceAlteration = null; + + @JsonProperty("productOfferingPrice") + private ProductOfferingPriceRef productOfferingPrice = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public OrderPrice description(String description) { + this.description = description; + return this; + } + + /** + * A narrative that explains in detail the semantics of this order item price. + * @return description + **/ + @Schema(description = "A narrative that explains in detail the semantics of this order item price.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public OrderPrice name(String name) { + this.name = name; + return this; + } + + /** + * A short descriptive name such as \"Subscription price\". + * @return name + **/ + @Schema(description = "A short descriptive name such as \"Subscription price\".") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public OrderPrice priceType(String priceType) { + this.priceType = priceType; + return this; + } + + /** + * A category that describes the price, such as recurring, discount, allowance, penalty, and so forth + * @return priceType + **/ + @Schema(description = "A category that describes the price, such as recurring, discount, allowance, penalty, and so forth") + + public String getPriceType() { + return priceType; + } + + public void setPriceType(String priceType) { + this.priceType = priceType; + } + + public OrderPrice recurringChargePeriod(String recurringChargePeriod) { + this.recurringChargePeriod = recurringChargePeriod; + return this; + } + + /** + * Could be month, week... + * @return recurringChargePeriod + **/ + @Schema(description = "Could be month, week...") + + public String getRecurringChargePeriod() { + return recurringChargePeriod; + } + + public void setRecurringChargePeriod(String recurringChargePeriod) { + this.recurringChargePeriod = recurringChargePeriod; + } + + public OrderPrice unitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + return this; + } + + /** + * Could be minutes, GB... + * @return unitOfMeasure + **/ + @Schema(description = "Could be minutes, GB...") + + public String getUnitOfMeasure() { + return unitOfMeasure; + } + + public void setUnitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + } + + public OrderPrice billingAccount(BillingAccountRef billingAccount) { + this.billingAccount = billingAccount; + return this; + } + + /** + * Get billingAccount + * @return billingAccount + **/ + @Schema(description = "") + + @Valid + public BillingAccountRef getBillingAccount() { + return billingAccount; + } + + public void setBillingAccount(BillingAccountRef billingAccount) { + this.billingAccount = billingAccount; + } + + public OrderPrice price(Price price) { + this.price = price; + return this; + } + + /** + * Get price + * @return price + **/ + @Schema(description = "") + + @Valid + public Price getPrice() { + return price; + } + + public void setPrice(Price price) { + this.price = price; + } + + public OrderPrice priceAlteration(List priceAlteration) { + this.priceAlteration = priceAlteration; + return this; + } + + public OrderPrice addPriceAlterationItem(PriceAlteration priceAlterationItem) { + if (this.priceAlteration == null) { + this.priceAlteration = new ArrayList<>(); + } + this.priceAlteration.add(priceAlterationItem); + return this; + } + + /** + * a strucuture used to describe a price alteration + * @return priceAlteration + **/ + @Schema(description = "a strucuture used to describe a price alteration") + @Valid + public List getPriceAlteration() { + return priceAlteration; + } + + public void setPriceAlteration(List priceAlteration) { + this.priceAlteration = priceAlteration; + } + + public OrderPrice productOfferingPrice(ProductOfferingPriceRef productOfferingPrice) { + this.productOfferingPrice = productOfferingPrice; + return this; + } + + /** + * Get productOfferingPrice + * @return productOfferingPrice + **/ + @Schema(description = "") + + @Valid + public ProductOfferingPriceRef getProductOfferingPrice() { + return productOfferingPrice; + } + + public void setProductOfferingPrice(ProductOfferingPriceRef productOfferingPrice) { + this.productOfferingPrice = productOfferingPrice; + } + + public OrderPrice baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public OrderPrice schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public OrderPrice type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OrderPrice orderPrice = (OrderPrice) o; + return Objects.equals(this.description, orderPrice.description) && + Objects.equals(this.name, orderPrice.name) && + Objects.equals(this.priceType, orderPrice.priceType) && + Objects.equals(this.recurringChargePeriod, orderPrice.recurringChargePeriod) && + Objects.equals(this.unitOfMeasure, orderPrice.unitOfMeasure) && + Objects.equals(this.billingAccount, orderPrice.billingAccount) && + Objects.equals(this.price, orderPrice.price) && + Objects.equals(this.priceAlteration, orderPrice.priceAlteration) && + Objects.equals(this.productOfferingPrice, orderPrice.productOfferingPrice) && + Objects.equals(this.baseType, orderPrice.baseType) && + Objects.equals(this.schemaLocation, orderPrice.schemaLocation) && + Objects.equals(this.type, orderPrice.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, name, priceType, recurringChargePeriod, unitOfMeasure, billingAccount, price, priceAlteration, productOfferingPrice, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OrderPrice {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" priceType: ").append(toIndentedString(priceType)).append("\n"); + sb.append(" recurringChargePeriod: ").append(toIndentedString(recurringChargePeriod)).append("\n"); + sb.append(" unitOfMeasure: ").append(toIndentedString(unitOfMeasure)).append("\n"); + sb.append(" billingAccount: ").append(toIndentedString(billingAccount)).append("\n"); + sb.append(" price: ").append(toIndentedString(price)).append("\n"); + sb.append(" priceAlteration: ").append(toIndentedString(priceAlteration)).append("\n"); + sb.append(" productOfferingPrice: ").append(toIndentedString(productOfferingPrice)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/OrderTerm.java b/src/main/java/org/etsi/osl/tmf/po622/model/OrderTerm.java new file mode 100644 index 0000000..999b3db --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/OrderTerm.java @@ -0,0 +1,218 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Quantity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Description of a productTerm linked to this orderItem. This represent a commitment with a duration + */ +@Schema(description = "Description of a productTerm linked to this orderItem. This represent a commitment with a duration") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class OrderTerm { + @JsonProperty("description") + private String description = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("duration") + private Quantity duration = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public OrderTerm description(String description) { + this.description = description; + return this; + } + + /** + * Description of the productOrderTerm + * @return description + **/ + @Schema(description = "Description of the productOrderTerm") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public OrderTerm name(String name) { + this.name = name; + return this; + } + + /** + * Name of the productOrderTerm + * @return name + **/ + @Schema(description = "Name of the productOrderTerm") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public OrderTerm duration(Quantity duration) { + this.duration = duration; + return this; + } + + /** + * Get duration + * @return duration + **/ + @Schema(description = "") + + @Valid + public Quantity getDuration() { + return duration; + } + + public void setDuration(Quantity duration) { + this.duration = duration; + } + + public OrderTerm baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public OrderTerm schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public OrderTerm type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OrderTerm orderTerm = (OrderTerm) o; + return Objects.equals(this.description, orderTerm.description) && + Objects.equals(this.name, orderTerm.name) && + Objects.equals(this.duration, orderTerm.duration) && + Objects.equals(this.baseType, orderTerm.baseType) && + Objects.equals(this.schemaLocation, orderTerm.schemaLocation) && + Objects.equals(this.type, orderTerm.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, name, duration, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OrderTerm {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" duration: ").append(toIndentedString(duration)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/PaymentRef.java b/src/main/java/org/etsi/osl/tmf/po622/model/PaymentRef.java new file mode 100644 index 0000000..d60169e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/PaymentRef.java @@ -0,0 +1,243 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * If an immediate payment has been done at the product order submission, the payment information are captured and stored (as a reference) in the order. + */ +@Schema(description = "If an immediate payment has been done at the product order submission, the payment information are captured and stored (as a reference) in the order.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class PaymentRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public PaymentRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public PaymentRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public PaymentRef name(String name) { + this.name = name; + return this; + } + + /** + * A name for the payment + * @return name + **/ + @Schema(description = "A name for the payment") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public PaymentRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public PaymentRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public PaymentRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public PaymentRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PaymentRef paymentRef = (PaymentRef) o; + return Objects.equals(this.id, paymentRef.id) && + Objects.equals(this.href, paymentRef.href) && + Objects.equals(this.name, paymentRef.name) && + Objects.equals(this.baseType, paymentRef.baseType) && + Objects.equals(this.schemaLocation, paymentRef.schemaLocation) && + Objects.equals(this.type, paymentRef.type) && + Objects.equals(this._atReferredType, paymentRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PaymentRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/Place.java b/src/main/java/org/etsi/osl/tmf/po622/model/Place.java new file mode 100644 index 0000000..62c9689 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/Place.java @@ -0,0 +1,217 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Place reference. Place defines the places where the products are sold or delivered. + */ +@Schema(description = "Place reference. Place defines the places where the products are sold or delivered.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class Place { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Place id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the place + * @return id + **/ + @Schema(description = "Unique identifier of the place") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Place href(String href) { + this.href = href; + return this; + } + + /** + * Unique reference of the place + * @return href + **/ + @Schema(description = "Unique reference of the place") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public Place name(String name) { + this.name = name; + return this; + } + + /** + * A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home] + * @return name + **/ + @Schema(description = "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Place baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public Place schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Place type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Place place = (Place) o; + return Objects.equals(this.id, place.id) && + Objects.equals(this.href, place.href) && + Objects.equals(this.name, place.name) && + Objects.equals(this.baseType, place.baseType) && + Objects.equals(this.schemaLocation, place.schemaLocation) && + Objects.equals(this.type, place.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Place {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/Price.java b/src/main/java/org/etsi/osl/tmf/po622/model/Price.java new file mode 100644 index 0000000..e1c950d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/Price.java @@ -0,0 +1,244 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Provides all amounts (tax included, duty free, tax rate), used currency and percentage to apply for Price Alteration. + */ +@Schema(description = "Provides all amounts (tax included, duty free, tax rate), used currency and percentage to apply for Price Alteration.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class Price { + @JsonProperty("percentage") + private Float percentage = null; + + @JsonProperty("taxRate") + private Float taxRate = null; + + @JsonProperty("dutyFreeAmount") + private Money dutyFreeAmount = null; + + @JsonProperty("taxIncludedAmount") + private Money taxIncludedAmount = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Price percentage(Float percentage) { + this.percentage = percentage; + return this; + } + + /** + * Percentage to apply for ProdOfferPriceAlteration + * @return percentage + **/ + @Schema(description = "Percentage to apply for ProdOfferPriceAlteration") + + public Float getPercentage() { + return percentage; + } + + public void setPercentage(Float percentage) { + this.percentage = percentage; + } + + public Price taxRate(Float taxRate) { + this.taxRate = taxRate; + return this; + } + + /** + * Tax rate + * @return taxRate + **/ + @Schema(description = "Tax rate") + + public Float getTaxRate() { + return taxRate; + } + + public void setTaxRate(Float taxRate) { + this.taxRate = taxRate; + } + + public Price dutyFreeAmount(Money dutyFreeAmount) { + this.dutyFreeAmount = dutyFreeAmount; + return this; + } + + /** + * Get dutyFreeAmount + * @return dutyFreeAmount + **/ + @Schema(description = "") + + @Valid + public Money getDutyFreeAmount() { + return dutyFreeAmount; + } + + public void setDutyFreeAmount(Money dutyFreeAmount) { + this.dutyFreeAmount = dutyFreeAmount; + } + + public Price taxIncludedAmount(Money taxIncludedAmount) { + this.taxIncludedAmount = taxIncludedAmount; + return this; + } + + /** + * Get taxIncludedAmount + * @return taxIncludedAmount + **/ + @Schema(description = "") + + @Valid + public Money getTaxIncludedAmount() { + return taxIncludedAmount; + } + + public void setTaxIncludedAmount(Money taxIncludedAmount) { + this.taxIncludedAmount = taxIncludedAmount; + } + + public Price baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public Price schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Price type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Price price = (Price) o; + return Objects.equals(this.percentage, price.percentage) && + Objects.equals(this.taxRate, price.taxRate) && + Objects.equals(this.dutyFreeAmount, price.dutyFreeAmount) && + Objects.equals(this.taxIncludedAmount, price.taxIncludedAmount) && + Objects.equals(this.baseType, price.baseType) && + Objects.equals(this.schemaLocation, price.schemaLocation) && + Objects.equals(this.type, price.type); + } + + @Override + public int hashCode() { + return Objects.hash(percentage, taxRate, dutyFreeAmount, taxIncludedAmount, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Price {\n"); + + sb.append(" percentage: ").append(toIndentedString(percentage)).append("\n"); + sb.append(" taxRate: ").append(toIndentedString(taxRate)).append("\n"); + sb.append(" dutyFreeAmount: ").append(toIndentedString(dutyFreeAmount)).append("\n"); + sb.append(" taxIncludedAmount: ").append(toIndentedString(taxIncludedAmount)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/PriceAlteration.java b/src/main/java/org/etsi/osl/tmf/po622/model/PriceAlteration.java new file mode 100644 index 0000000..5efe9e7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/PriceAlteration.java @@ -0,0 +1,367 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Is an amount, usually of money, that modifies the price charged for an order item. + */ +@Schema(description = "Is an amount, usually of money, that modifies the price charged for an order item.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class PriceAlteration { + @JsonProperty("applicationDuration") + private Integer applicationDuration = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("priceType") + private String priceType = null; + + @JsonProperty("priority") + private Integer priority = null; + + @JsonProperty("recurringChargePeriod") + private String recurringChargePeriod = null; + + @JsonProperty("unitOfMeasure") + private String unitOfMeasure = null; + + @JsonProperty("price") + private Price price = null; + + @JsonProperty("productOfferingPrice") + private ProductOfferingPriceRef productOfferingPrice = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public PriceAlteration applicationDuration(Integer applicationDuration) { + this.applicationDuration = applicationDuration; + return this; + } + + /** + * Duration during which the alteration applies on the order item price (for instance 2 months free of charge for the recurring charge) + * @return applicationDuration + **/ + @Schema(description = "Duration during which the alteration applies on the order item price (for instance 2 months free of charge for the recurring charge)") + + public Integer getApplicationDuration() { + return applicationDuration; + } + + public void setApplicationDuration(Integer applicationDuration) { + this.applicationDuration = applicationDuration; + } + + public PriceAlteration description(String description) { + this.description = description; + return this; + } + + /** + * A narrative that explains in detail the semantics of this order item price alteration + * @return description + **/ + @Schema(description = "A narrative that explains in detail the semantics of this order item price alteration") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public PriceAlteration name(String name) { + this.name = name; + return this; + } + + /** + * Name of the order item price alteration + * @return name + **/ + @Schema(description = "Name of the order item price alteration") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public PriceAlteration priceType(String priceType) { + this.priceType = priceType; + return this; + } + + /** + * A category that describes the price such as recurring, one time and usage. + * @return priceType + **/ + @Schema(description = "A category that describes the price such as recurring, one time and usage.") + @NotNull + + public String getPriceType() { + return priceType; + } + + public void setPriceType(String priceType) { + this.priceType = priceType; + } + + public PriceAlteration priority(Integer priority) { + this.priority = priority; + return this; + } + + /** + * Priority level for applying this alteration among all the defined alterations on the order item price + * @return priority + **/ + @Schema(description = "Priority level for applying this alteration among all the defined alterations on the order item price") + + public Integer getPriority() { + return priority; + } + + public void setPriority(Integer priority) { + this.priority = priority; + } + + public PriceAlteration recurringChargePeriod(String recurringChargePeriod) { + this.recurringChargePeriod = recurringChargePeriod; + return this; + } + + /** + * Could be month, week... + * @return recurringChargePeriod + **/ + @Schema(description = "Could be month, week...") + + public String getRecurringChargePeriod() { + return recurringChargePeriod; + } + + public void setRecurringChargePeriod(String recurringChargePeriod) { + this.recurringChargePeriod = recurringChargePeriod; + } + + public PriceAlteration unitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + return this; + } + + /** + * Could be minutes, GB... + * @return unitOfMeasure + **/ + @Schema(description = "Could be minutes, GB...") + + public String getUnitOfMeasure() { + return unitOfMeasure; + } + + public void setUnitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + } + + public PriceAlteration price(Price price) { + this.price = price; + return this; + } + + /** + * Get price + * @return price + **/ + @Schema(description = "") + @NotNull + + @Valid + public Price getPrice() { + return price; + } + + public void setPrice(Price price) { + this.price = price; + } + + public PriceAlteration productOfferingPrice(ProductOfferingPriceRef productOfferingPrice) { + this.productOfferingPrice = productOfferingPrice; + return this; + } + + /** + * Get productOfferingPrice + * @return productOfferingPrice + **/ + @Schema(description = "") + + @Valid + public ProductOfferingPriceRef getProductOfferingPrice() { + return productOfferingPrice; + } + + public void setProductOfferingPrice(ProductOfferingPriceRef productOfferingPrice) { + this.productOfferingPrice = productOfferingPrice; + } + + public PriceAlteration baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public PriceAlteration schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public PriceAlteration type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PriceAlteration priceAlteration = (PriceAlteration) o; + return Objects.equals(this.applicationDuration, priceAlteration.applicationDuration) && + Objects.equals(this.description, priceAlteration.description) && + Objects.equals(this.name, priceAlteration.name) && + Objects.equals(this.priceType, priceAlteration.priceType) && + Objects.equals(this.priority, priceAlteration.priority) && + Objects.equals(this.recurringChargePeriod, priceAlteration.recurringChargePeriod) && + Objects.equals(this.unitOfMeasure, priceAlteration.unitOfMeasure) && + Objects.equals(this.price, priceAlteration.price) && + Objects.equals(this.productOfferingPrice, priceAlteration.productOfferingPrice) && + Objects.equals(this.baseType, priceAlteration.baseType) && + Objects.equals(this.schemaLocation, priceAlteration.schemaLocation) && + Objects.equals(this.type, priceAlteration.type); + } + + @Override + public int hashCode() { + return Objects.hash(applicationDuration, description, name, priceType, priority, recurringChargePeriod, unitOfMeasure, price, productOfferingPrice, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PriceAlteration {\n"); + + sb.append(" applicationDuration: ").append(toIndentedString(applicationDuration)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" priceType: ").append(toIndentedString(priceType)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" recurringChargePeriod: ").append(toIndentedString(recurringChargePeriod)).append("\n"); + sb.append(" unitOfMeasure: ").append(toIndentedString(unitOfMeasure)).append("\n"); + sb.append(" price: ").append(toIndentedString(price)).append("\n"); + sb.append(" productOfferingPrice: ").append(toIndentedString(productOfferingPrice)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/Product.java b/src/main/java/org/etsi/osl/tmf/po622/model/Product.java new file mode 100644 index 0000000..ee4c02b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/Product.java @@ -0,0 +1,856 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.service.ResourceRef; +import org.etsi.osl.tmf.common.model.service.ServiceRef; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * A product offering procured by a customer or other interested party playing a party role. A product is realized as one or more service(s) and / or resource(s). + */ +@Schema(description = "A product offering procured by a customer or other interested party playing a party role. A product is realized as one or more service(s) and / or resource(s).") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class Product { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("isBundle") + private Boolean isBundle = null; + + @JsonProperty("isCustomerVisible") + private Boolean isCustomerVisible = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("orderDate") + private OffsetDateTime orderDate = null; + + @JsonProperty("productSerialNumber") + private String productSerialNumber = null; + + @JsonProperty("startDate") + private OffsetDateTime startDate = null; + + @JsonProperty("terminationDate") + private OffsetDateTime terminationDate = null; + + @JsonProperty("agreement") + @Valid + private List agreement = null; + + @JsonProperty("billingAccount") + private BillingAccountRef billingAccount = null; + + @JsonProperty("place") + @Valid + private List place = null; + + @JsonProperty("product") + @Valid + private List product = null; + + @JsonProperty("productCharacteristic") + @Valid + private List productCharacteristic = null; + + @JsonProperty("productOffering") + private ProductOfferingRef productOffering = null; + + @JsonProperty("productOrderItem") + @Valid + private List productOrderItem = null; + + @JsonProperty("productPrice") + @Valid + private List productPrice = null; + + @JsonProperty("productRelationship") + @Valid + private List productRelationship = null; + + @JsonProperty("productSpecification") + private ProductSpecificationRef productSpecification = null; + + @JsonProperty("productTerm") + @Valid + private List productTerm = null; + + @JsonProperty("realizingResource") + @Valid + private List realizingResource = null; + + @JsonProperty("realizingService") + @Valid + private List realizingService = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @JsonProperty("status") + private ProductStatusType status = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Product id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the product + * @return id + **/ + @Schema(description = "Unique identifier of the product") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Product href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the product + * @return href + **/ + @Schema(description = "Reference of the product") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public Product description(String description) { + this.description = description; + return this; + } + + /** + * Is the description of the product. It could be copied from the description of the Product Offering. + * @return description + **/ + @Schema(description = "Is the description of the product. It could be copied from the description of the Product Offering.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Product isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * If true, the product is a ProductBundle which is an instantiation of a BundledProductOffering. If false, the product is a ProductComponent which is an instantiation of a SimpleProductOffering. + * @return isBundle + **/ + @Schema(description = "If true, the product is a ProductBundle which is an instantiation of a BundledProductOffering. If false, the product is a ProductComponent which is an instantiation of a SimpleProductOffering.") + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + public Product isCustomerVisible(Boolean isCustomerVisible) { + this.isCustomerVisible = isCustomerVisible; + return this; + } + + /** + * If true, the product is visible by the customer. + * @return isCustomerVisible + **/ + @Schema(description = "If true, the product is visible by the customer.") + + public Boolean isIsCustomerVisible() { + return isCustomerVisible; + } + + public void setIsCustomerVisible(Boolean isCustomerVisible) { + this.isCustomerVisible = isCustomerVisible; + } + + public Product name(String name) { + this.name = name; + return this; + } + + /** + * Name of the product. It could be the same as the name of the product offering + * @return name + **/ + @Schema(description = "Name of the product. It could be the same as the name of the product offering") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Product orderDate(OffsetDateTime orderDate) { + this.orderDate = orderDate; + return this; + } + + /** + * Is the date when the product was ordered + * @return orderDate + **/ + @Schema(description = "Is the date when the product was ordered") + + @Valid + public OffsetDateTime getOrderDate() { + return orderDate; + } + + public void setOrderDate(OffsetDateTime orderDate) { + this.orderDate = orderDate; + } + + public Product productSerialNumber(String productSerialNumber) { + this.productSerialNumber = productSerialNumber; + return this; + } + + /** + * Is the serial number for the product. This is typically applicable to tangible products e.g. Broadband Router. + * @return productSerialNumber + **/ + @Schema(description = "Is the serial number for the product. This is typically applicable to tangible products e.g. Broadband Router.") + + public String getProductSerialNumber() { + return productSerialNumber; + } + + public void setProductSerialNumber(String productSerialNumber) { + this.productSerialNumber = productSerialNumber; + } + + public Product startDate(OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Is the date from which the product starts + * @return startDate + **/ + @Schema(description = "Is the date from which the product starts") + + @Valid + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; + } + + public Product terminationDate(OffsetDateTime terminationDate) { + this.terminationDate = terminationDate; + return this; + } + + /** + * Is the date when the product was terminated + * @return terminationDate + **/ + @Schema(description = "Is the date when the product was terminated") + + @Valid + public OffsetDateTime getTerminationDate() { + return terminationDate; + } + + public void setTerminationDate(OffsetDateTime terminationDate) { + this.terminationDate = terminationDate; + } + + public Product agreement(List agreement) { + this.agreement = agreement; + return this; + } + + public Product addAgreementItem(AgreementItemRef agreementItem) { + if (this.agreement == null) { + this.agreement = new ArrayList<>(); + } + this.agreement.add(agreementItem); + return this; + } + + /** + * Get agreement + * @return agreement + **/ + @Schema(description = "") + @Valid + public List getAgreement() { + return agreement; + } + + public void setAgreement(List agreement) { + this.agreement = agreement; + } + + public Product billingAccount(BillingAccountRef billingAccount) { + this.billingAccount = billingAccount; + return this; + } + + /** + * Get billingAccount + * @return billingAccount + **/ + @Schema(description = "") + + @Valid + public BillingAccountRef getBillingAccount() { + return billingAccount; + } + + public void setBillingAccount(BillingAccountRef billingAccount) { + this.billingAccount = billingAccount; + } + + public Product place(List place) { + this.place = place; + return this; + } + + public Product addPlaceItem(RelatedPlaceRefOrValue placeItem) { + if (this.place == null) { + this.place = new ArrayList<>(); + } + this.place.add(placeItem); + return this; + } + + /** + * Get place + * @return place + **/ + @Schema(description = "") + @Valid + public List getPlace() { + return place; + } + + public void setPlace(List place) { + this.place = place; + } + + public Product product(List product) { + this.product = product; + return this; + } + + public Product addProductItem(ProductRefOrValue productItem) { + if (this.product == null) { + this.product = new ArrayList<>(); + } + this.product.add(productItem); + return this; + } + + /** + * Get product + * @return product + **/ + @Schema(description = "") + @Valid + public List getProduct() { + return product; + } + + public void setProduct(List product) { + this.product = product; + } + + public Product productCharacteristic(List productCharacteristic) { + this.productCharacteristic = productCharacteristic; + return this; + } + + public Product addProductCharacteristicItem(Characteristic productCharacteristicItem) { + if (this.productCharacteristic == null) { + this.productCharacteristic = new ArrayList<>(); + } + this.productCharacteristic.add(productCharacteristicItem); + return this; + } + + /** + * Get productCharacteristic + * @return productCharacteristic + **/ + @Schema(description = "") + @Valid + public List getProductCharacteristic() { + return productCharacteristic; + } + + public void setProductCharacteristic(List productCharacteristic) { + this.productCharacteristic = productCharacteristic; + } + + public Product productOffering(ProductOfferingRef productOffering) { + this.productOffering = productOffering; + return this; + } + + /** + * Get productOffering + * @return productOffering + **/ + @Schema(description = "") + + @Valid + public ProductOfferingRef getProductOffering() { + return productOffering; + } + + public void setProductOffering(ProductOfferingRef productOffering) { + this.productOffering = productOffering; + } + + public Product productOrderItem(List productOrderItem) { + this.productOrderItem = productOrderItem; + return this; + } + + public Product addProductOrderItemItem(RelatedProductOrderItem productOrderItemItem) { + if (this.productOrderItem == null) { + this.productOrderItem = new ArrayList<>(); + } + this.productOrderItem.add(productOrderItemItem); + return this; + } + + /** + * Get productOrderItem + * @return productOrderItem + **/ + @Schema(description = "") + @Valid + public List getProductOrderItem() { + return productOrderItem; + } + + public void setProductOrderItem(List productOrderItem) { + this.productOrderItem = productOrderItem; + } + + public Product productPrice(List productPrice) { + this.productPrice = productPrice; + return this; + } + + public Product addProductPriceItem(ProductPrice productPriceItem) { + if (this.productPrice == null) { + this.productPrice = new ArrayList<>(); + } + this.productPrice.add(productPriceItem); + return this; + } + + /** + * Get productPrice + * @return productPrice + **/ + @Schema(description = "") + @Valid + public List getProductPrice() { + return productPrice; + } + + public void setProductPrice(List productPrice) { + this.productPrice = productPrice; + } + + public Product productRelationship(List productRelationship) { + this.productRelationship = productRelationship; + return this; + } + + public Product addProductRelationshipItem(ProductRelationship productRelationshipItem) { + if (this.productRelationship == null) { + this.productRelationship = new ArrayList<>(); + } + this.productRelationship.add(productRelationshipItem); + return this; + } + + /** + * Get productRelationship + * @return productRelationship + **/ + @Schema(description = "") + @Valid + public List getProductRelationship() { + return productRelationship; + } + + public void setProductRelationship(List productRelationship) { + this.productRelationship = productRelationship; + } + + public Product productSpecification(ProductSpecificationRef productSpecification) { + this.productSpecification = productSpecification; + return this; + } + + /** + * Get productSpecification + * @return productSpecification + **/ + @Schema(description = "") + + @Valid + public ProductSpecificationRef getProductSpecification() { + return productSpecification; + } + + public void setProductSpecification(ProductSpecificationRef productSpecification) { + this.productSpecification = productSpecification; + } + + public Product productTerm(List productTerm) { + this.productTerm = productTerm; + return this; + } + + public Product addProductTermItem(ProductTerm productTermItem) { + if (this.productTerm == null) { + this.productTerm = new ArrayList<>(); + } + this.productTerm.add(productTermItem); + return this; + } + + /** + * Get productTerm + * @return productTerm + **/ + @Schema(description = "") + @Valid + public List getProductTerm() { + return productTerm; + } + + public void setProductTerm(List productTerm) { + this.productTerm = productTerm; + } + + public Product realizingResource(List realizingResource) { + this.realizingResource = realizingResource; + return this; + } + + public Product addRealizingResourceItem(ResourceRef realizingResourceItem) { + if (this.realizingResource == null) { + this.realizingResource = new ArrayList<>(); + } + this.realizingResource.add(realizingResourceItem); + return this; + } + + /** + * Get realizingResource + * @return realizingResource + **/ + @Schema(description = "") + @Valid + public List getRealizingResource() { + return realizingResource; + } + + public void setRealizingResource(List realizingResource) { + this.realizingResource = realizingResource; + } + + public Product realizingService(List realizingService) { + this.realizingService = realizingService; + return this; + } + + public Product addRealizingServiceItem(ServiceRef realizingServiceItem) { + if (this.realizingService == null) { + this.realizingService = new ArrayList<>(); + } + this.realizingService.add(realizingServiceItem); + return this; + } + + /** + * Get realizingService + * @return realizingService + **/ + @Schema(description = "") + @Valid + public List getRealizingService() { + return realizingService; + } + + public void setRealizingService(List realizingService) { + this.realizingService = realizingService; + } + + public Product relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public Product addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + @Valid + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public Product status(ProductStatusType status) { + this.status = status; + return this; + } + + /** + * Get status + * @return status + **/ + @Schema(description = "") + + @Valid + public ProductStatusType getStatus() { + return status; + } + + public void setStatus(ProductStatusType status) { + this.status = status; + } + + public Product baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public Product schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Product type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Product product = (Product) o; + return Objects.equals(this.id, product.id) && + Objects.equals(this.href, product.href) && + Objects.equals(this.description, product.description) && + Objects.equals(this.isBundle, product.isBundle) && + Objects.equals(this.isCustomerVisible, product.isCustomerVisible) && + Objects.equals(this.name, product.name) && + Objects.equals(this.orderDate, product.orderDate) && + Objects.equals(this.productSerialNumber, product.productSerialNumber) && + Objects.equals(this.startDate, product.startDate) && + Objects.equals(this.terminationDate, product.terminationDate) && + Objects.equals(this.agreement, product.agreement) && + Objects.equals(this.billingAccount, product.billingAccount) && + Objects.equals(this.place, product.place) && + Objects.equals(this.product, product.product) && + Objects.equals(this.productCharacteristic, product.productCharacteristic) && + Objects.equals(this.productOffering, product.productOffering) && + Objects.equals(this.productOrderItem, product.productOrderItem) && + Objects.equals(this.productPrice, product.productPrice) && + Objects.equals(this.productRelationship, product.productRelationship) && + Objects.equals(this.productSpecification, product.productSpecification) && + Objects.equals(this.productTerm, product.productTerm) && + Objects.equals(this.realizingResource, product.realizingResource) && + Objects.equals(this.realizingService, product.realizingService) && + Objects.equals(this.relatedParty, product.relatedParty) && + Objects.equals(this.status, product.status) && + Objects.equals(this.baseType, product.baseType) && + Objects.equals(this.schemaLocation, product.schemaLocation) && + Objects.equals(this.type, product.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, description, isBundle, isCustomerVisible, name, orderDate, productSerialNumber, startDate, terminationDate, agreement, billingAccount, place, product, productCharacteristic, productOffering, productOrderItem, productPrice, productRelationship, productSpecification, productTerm, realizingResource, realizingService, relatedParty, status, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Product {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" isCustomerVisible: ").append(toIndentedString(isCustomerVisible)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" orderDate: ").append(toIndentedString(orderDate)).append("\n"); + sb.append(" productSerialNumber: ").append(toIndentedString(productSerialNumber)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" terminationDate: ").append(toIndentedString(terminationDate)).append("\n"); + sb.append(" agreement: ").append(toIndentedString(agreement)).append("\n"); + sb.append(" billingAccount: ").append(toIndentedString(billingAccount)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" product: ").append(toIndentedString(product)).append("\n"); + sb.append(" productCharacteristic: ").append(toIndentedString(productCharacteristic)).append("\n"); + sb.append(" productOffering: ").append(toIndentedString(productOffering)).append("\n"); + sb.append(" productOrderItem: ").append(toIndentedString(productOrderItem)).append("\n"); + sb.append(" productPrice: ").append(toIndentedString(productPrice)).append("\n"); + sb.append(" productRelationship: ").append(toIndentedString(productRelationship)).append("\n"); + sb.append(" productSpecification: ").append(toIndentedString(productSpecification)).append("\n"); + sb.append(" productTerm: ").append(toIndentedString(productTerm)).append("\n"); + sb.append(" realizingResource: ").append(toIndentedString(realizingResource)).append("\n"); + sb.append(" realizingService: ").append(toIndentedString(realizingService)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOfferingPriceRef.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOfferingPriceRef.java new file mode 100644 index 0000000..25224fb --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOfferingPriceRef.java @@ -0,0 +1,243 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * ProductPriceOffering reference. An amount, usually of money, that is asked for or allowed when a ProductOffering is bought, rented, or leased + */ +@Schema(description = "ProductPriceOffering reference. An amount, usually of money, that is asked for or allowed when a ProductOffering is bought, rented, or leased") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOfferingPriceRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public ProductOfferingPriceRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductOfferingPriceRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductOfferingPriceRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ProductOfferingPriceRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public ProductOfferingPriceRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductOfferingPriceRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public ProductOfferingPriceRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingPriceRef productOfferingPriceRef = (ProductOfferingPriceRef) o; + return Objects.equals(this.id, productOfferingPriceRef.id) && + Objects.equals(this.href, productOfferingPriceRef.href) && + Objects.equals(this.name, productOfferingPriceRef.name) && + Objects.equals(this.baseType, productOfferingPriceRef.baseType) && + Objects.equals(this.schemaLocation, productOfferingPriceRef.schemaLocation) && + Objects.equals(this.type, productOfferingPriceRef.type) && + Objects.equals(this._atReferredType, productOfferingPriceRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingPriceRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOfferingQualificationItemRef.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOfferingQualificationItemRef.java new file mode 100644 index 0000000..1c3b20c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOfferingQualificationItemRef.java @@ -0,0 +1,316 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * It's a productOfferingQualification item that has been executed previously. + */ +@Schema(description = "It's a productOfferingQualification item that has been executed previously.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOfferingQualificationItemRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("productOfferingQualificationHref") + private String productOfferingQualificationHref = null; + + @JsonProperty("productOfferingQualificationId") + private String productOfferingQualificationId = null; + + @JsonProperty("productOfferingQualificationName") + private String productOfferingQualificationName = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public ProductOfferingQualificationItemRef id(String id) { + this.id = id; + return this; + } + + /** + * Id of an item of a product offering qualification + * @return id + **/ + @Schema(description = "Id of an item of a product offering qualification") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductOfferingQualificationItemRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductOfferingQualificationItemRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ProductOfferingQualificationItemRef productOfferingQualificationHref(String productOfferingQualificationHref) { + this.productOfferingQualificationHref = productOfferingQualificationHref; + return this; + } + + /** + * Reference of the related entity. + * @return productOfferingQualificationHref + **/ + @Schema(description = "Reference of the related entity.") + + public String getProductOfferingQualificationHref() { + return productOfferingQualificationHref; + } + + public void setProductOfferingQualificationHref(String productOfferingQualificationHref) { + this.productOfferingQualificationHref = productOfferingQualificationHref; + } + + public ProductOfferingQualificationItemRef productOfferingQualificationId(String productOfferingQualificationId) { + this.productOfferingQualificationId = productOfferingQualificationId; + return this; + } + + /** + * Unique identifier of a related entity. + * @return productOfferingQualificationId + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getProductOfferingQualificationId() { + return productOfferingQualificationId; + } + + public void setProductOfferingQualificationId(String productOfferingQualificationId) { + this.productOfferingQualificationId = productOfferingQualificationId; + } + + public ProductOfferingQualificationItemRef productOfferingQualificationName(String productOfferingQualificationName) { + this.productOfferingQualificationName = productOfferingQualificationName; + return this; + } + + /** + * Name of the related entity. + * @return productOfferingQualificationName + **/ + @Schema(description = "Name of the related entity.") + + public String getProductOfferingQualificationName() { + return productOfferingQualificationName; + } + + public void setProductOfferingQualificationName(String productOfferingQualificationName) { + this.productOfferingQualificationName = productOfferingQualificationName; + } + + public ProductOfferingQualificationItemRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public ProductOfferingQualificationItemRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductOfferingQualificationItemRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public ProductOfferingQualificationItemRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingQualificationItemRef productOfferingQualificationItemRef = (ProductOfferingQualificationItemRef) o; + return Objects.equals(this.id, productOfferingQualificationItemRef.id) && + Objects.equals(this.href, productOfferingQualificationItemRef.href) && + Objects.equals(this.name, productOfferingQualificationItemRef.name) && + Objects.equals(this.productOfferingQualificationHref, productOfferingQualificationItemRef.productOfferingQualificationHref) && + Objects.equals(this.productOfferingQualificationId, productOfferingQualificationItemRef.productOfferingQualificationId) && + Objects.equals(this.productOfferingQualificationName, productOfferingQualificationItemRef.productOfferingQualificationName) && + Objects.equals(this.baseType, productOfferingQualificationItemRef.baseType) && + Objects.equals(this.schemaLocation, productOfferingQualificationItemRef.schemaLocation) && + Objects.equals(this.type, productOfferingQualificationItemRef.type) && + Objects.equals(this._atReferredType, productOfferingQualificationItemRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, productOfferingQualificationHref, productOfferingQualificationId, productOfferingQualificationName, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingQualificationItemRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" productOfferingQualificationHref: ").append(toIndentedString(productOfferingQualificationHref)).append("\n"); + sb.append(" productOfferingQualificationId: ").append(toIndentedString(productOfferingQualificationId)).append("\n"); + sb.append(" productOfferingQualificationName: ").append(toIndentedString(productOfferingQualificationName)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOfferingQualificationRef.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOfferingQualificationRef.java new file mode 100644 index 0000000..ed7f58a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOfferingQualificationRef.java @@ -0,0 +1,243 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * It's a productOfferingQualification that has been executed previously + */ +@Schema(description = "It's a productOfferingQualification that has been executed previously") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOfferingQualificationRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public ProductOfferingQualificationRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductOfferingQualificationRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductOfferingQualificationRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ProductOfferingQualificationRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public ProductOfferingQualificationRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductOfferingQualificationRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public ProductOfferingQualificationRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingQualificationRef productOfferingQualificationRef = (ProductOfferingQualificationRef) o; + return Objects.equals(this.id, productOfferingQualificationRef.id) && + Objects.equals(this.href, productOfferingQualificationRef.href) && + Objects.equals(this.name, productOfferingQualificationRef.name) && + Objects.equals(this.baseType, productOfferingQualificationRef.baseType) && + Objects.equals(this.schemaLocation, productOfferingQualificationRef.schemaLocation) && + Objects.equals(this.type, productOfferingQualificationRef.type) && + Objects.equals(this._atReferredType, productOfferingQualificationRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingQualificationRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOfferingRef.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOfferingRef.java new file mode 100644 index 0000000..f18eb07 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOfferingRef.java @@ -0,0 +1,243 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information. + */ +@Schema(description = "ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOfferingRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public ProductOfferingRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductOfferingRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductOfferingRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ProductOfferingRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public ProductOfferingRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductOfferingRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public ProductOfferingRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingRef productOfferingRef = (ProductOfferingRef) o; + return Objects.equals(this.id, productOfferingRef.id) && + Objects.equals(this.href, productOfferingRef.href) && + Objects.equals(this.name, productOfferingRef.name) && + Objects.equals(this.baseType, productOfferingRef.baseType) && + Objects.equals(this.schemaLocation, productOfferingRef.schemaLocation) && + Objects.equals(this.type, productOfferingRef.type) && + Objects.equals(this._atReferredType, productOfferingRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrder.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrder.java new file mode 100644 index 0000000..b8a7a38 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrder.java @@ -0,0 +1,838 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * A Product Order is a type of order which can be used to place an order between a customer and a service provider or between a service provider and a partner and vice versa, + */ +@Schema(description = "A Product Order is a type of order which can be used to place an order between a customer and a service provider or between a service provider and a partner and vice versa,") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOrder { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("cancellationDate") + private OffsetDateTime cancellationDate = null; + + @JsonProperty("cancellationReason") + private String cancellationReason = null; + + @JsonProperty("category") + private String category = null; + + @JsonProperty("completionDate") + private OffsetDateTime completionDate = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("expectedCompletionDate") + private OffsetDateTime expectedCompletionDate = null; + + @JsonProperty("externalId") + private String externalId = null; + + @JsonProperty("notificationContact") + private String notificationContact = null; + + @JsonProperty("orderDate") + private OffsetDateTime orderDate = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("requestedCompletionDate") + private OffsetDateTime requestedCompletionDate = null; + + @JsonProperty("requestedStartDate") + private OffsetDateTime requestedStartDate = null; + + @JsonProperty("agreement") + @Valid + private List agreement = null; + + @JsonProperty("billingAccount") + private BillingAccountRef billingAccount = null; + + @JsonProperty("channel") + @Valid + private List channel = null; + + @JsonProperty("note") + @Valid + private List note = null; + + @JsonProperty("orderTotalPrice") + @Valid + private List orderTotalPrice = null; + + @JsonProperty("payment") + @Valid + private List payment = null; + + @JsonProperty("productOfferingQualification") + @Valid + private List productOfferingQualification = null; + + @JsonProperty("productOrderItem") + @Valid + private List productOrderItem = new ArrayList<>(); + + @JsonProperty("quote") + @Valid + private List quote = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @JsonProperty("state") + private ProductOrderStateType state = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ProductOrder id(String id) { + this.id = id; + return this; + } + + /** + * ID created on repository side (OM system) + * @return id + **/ + @Schema(description = "ID created on repository side (OM system)") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductOrder href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink to access the order + * @return href + **/ + @Schema(description = "Hyperlink to access the order") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductOrder cancellationDate(OffsetDateTime cancellationDate) { + this.cancellationDate = cancellationDate; + return this; + } + + /** + * Date when the order is cancelled. This is used when order is cancelled. + * @return cancellationDate + **/ + @Schema(description = "Date when the order is cancelled. This is used when order is cancelled. ") + + @Valid + public OffsetDateTime getCancellationDate() { + return cancellationDate; + } + + public void setCancellationDate(OffsetDateTime cancellationDate) { + this.cancellationDate = cancellationDate; + } + + public ProductOrder cancellationReason(String cancellationReason) { + this.cancellationReason = cancellationReason; + return this; + } + + /** + * Reason why the order is cancelled. This is used when order is cancelled. + * @return cancellationReason + **/ + @Schema(description = "Reason why the order is cancelled. This is used when order is cancelled. ") + + public String getCancellationReason() { + return cancellationReason; + } + + public void setCancellationReason(String cancellationReason) { + this.cancellationReason = cancellationReason; + } + + public ProductOrder category(String category) { + this.category = category; + return this; + } + + /** + * Used to categorize the order from a business perspective that can be useful for the OM system (e.g. \"enterprise\", \"residential\", ...) + * @return category + **/ + @Schema(description = "Used to categorize the order from a business perspective that can be useful for the OM system (e.g. \"enterprise\", \"residential\", ...)") + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public ProductOrder completionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Date when the order was completed + * @return completionDate + **/ + @Schema(description = "Date when the order was completed") + + @Valid + public OffsetDateTime getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + } + + public ProductOrder description(String description) { + this.description = description; + return this; + } + + /** + * Description of the product order + * @return description + **/ + @Schema(description = "Description of the product order") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductOrder expectedCompletionDate(OffsetDateTime expectedCompletionDate) { + this.expectedCompletionDate = expectedCompletionDate; + return this; + } + + /** + * Expected delivery date amended by the provider + * @return expectedCompletionDate + **/ + @Schema(description = "Expected delivery date amended by the provider") + + @Valid + public OffsetDateTime getExpectedCompletionDate() { + return expectedCompletionDate; + } + + public void setExpectedCompletionDate(OffsetDateTime expectedCompletionDate) { + this.expectedCompletionDate = expectedCompletionDate; + } + + public ProductOrder externalId(String externalId) { + this.externalId = externalId; + return this; + } + + /** + * ID given by the consumer and only understandable by him (to facilitate his searches afterwards) + * @return externalId + **/ + @Schema(description = "ID given by the consumer and only understandable by him (to facilitate his searches afterwards)") + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public ProductOrder notificationContact(String notificationContact) { + this.notificationContact = notificationContact; + return this; + } + + /** + * Contact attached to the order to send back information regarding this order + * @return notificationContact + **/ + @Schema(description = "Contact attached to the order to send back information regarding this order") + + public String getNotificationContact() { + return notificationContact; + } + + public void setNotificationContact(String notificationContact) { + this.notificationContact = notificationContact; + } + + public ProductOrder orderDate(OffsetDateTime orderDate) { + this.orderDate = orderDate; + return this; + } + + /** + * Date when the order was created + * @return orderDate + **/ + @Schema(description = "Date when the order was created") + + @Valid + public OffsetDateTime getOrderDate() { + return orderDate; + } + + public void setOrderDate(OffsetDateTime orderDate) { + this.orderDate = orderDate; + } + + public ProductOrder priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A way that can be used by consumers to prioritize orders in OM system (from 0 to 4 : 0 is the highest priority, and 4 the lowest) + * @return priority + **/ + @Schema(description = "A way that can be used by consumers to prioritize orders in OM system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ProductOrder requestedCompletionDate(OffsetDateTime requestedCompletionDate) { + this.requestedCompletionDate = requestedCompletionDate; + return this; + } + + /** + * Requested delivery date from the requestor perspective + * @return requestedCompletionDate + **/ + @Schema(description = "Requested delivery date from the requestor perspective") + + @Valid + public OffsetDateTime getRequestedCompletionDate() { + return requestedCompletionDate; + } + + public void setRequestedCompletionDate(OffsetDateTime requestedCompletionDate) { + this.requestedCompletionDate = requestedCompletionDate; + } + + public ProductOrder requestedStartDate(OffsetDateTime requestedStartDate) { + this.requestedStartDate = requestedStartDate; + return this; + } + + /** + * Order fulfillment start date wished by the requestor. This is used when, for any reason, requestor cannot allow seller to begin to operationally begin the fulfillment before a date. + * @return requestedStartDate + **/ + @Schema(description = "Order fulfillment start date wished by the requestor. This is used when, for any reason, requestor cannot allow seller to begin to operationally begin the fulfillment before a date. ") + + @Valid + public OffsetDateTime getRequestedStartDate() { + return requestedStartDate; + } + + public void setRequestedStartDate(OffsetDateTime requestedStartDate) { + this.requestedStartDate = requestedStartDate; + } + + public ProductOrder agreement(List agreement) { + this.agreement = agreement; + return this; + } + + public ProductOrder addAgreementItem(AgreementRef agreementItem) { + if (this.agreement == null) { + this.agreement = new ArrayList<>(); + } + this.agreement.add(agreementItem); + return this; + } + + /** + * A reference to an agreement defined in the context of the product order + * @return agreement + **/ + @Schema(description = "A reference to an agreement defined in the context of the product order") + @Valid + public List getAgreement() { + return agreement; + } + + public void setAgreement(List agreement) { + this.agreement = agreement; + } + + public ProductOrder billingAccount(BillingAccountRef billingAccount) { + this.billingAccount = billingAccount; + return this; + } + + /** + * Get billingAccount + * @return billingAccount + **/ + @Schema(description = "") + + @Valid + public BillingAccountRef getBillingAccount() { + return billingAccount; + } + + public void setBillingAccount(BillingAccountRef billingAccount) { + this.billingAccount = billingAccount; + } + + public ProductOrder channel(List channel) { + this.channel = channel; + return this; + } + + public ProductOrder addChannelItem(RelatedChannel channelItem) { + if (this.channel == null) { + this.channel = new ArrayList<>(); + } + this.channel.add(channelItem); + return this; + } + + /** + * Get channel + * @return channel + **/ + @Schema(description = "") + @Valid + public List getChannel() { + return channel; + } + + public void setChannel(List channel) { + this.channel = channel; + } + + public ProductOrder note(List note) { + this.note = note; + return this; + } + + public ProductOrder addNoteItem(Note noteItem) { + if (this.note == null) { + this.note = new ArrayList<>(); + } + this.note.add(noteItem); + return this; + } + + /** + * Get note + * @return note + **/ + @Schema(description = "") + @Valid + public List getNote() { + return note; + } + + public void setNote(List note) { + this.note = note; + } + + public ProductOrder orderTotalPrice(List orderTotalPrice) { + this.orderTotalPrice = orderTotalPrice; + return this; + } + + public ProductOrder addOrderTotalPriceItem(OrderPrice orderTotalPriceItem) { + if (this.orderTotalPrice == null) { + this.orderTotalPrice = new ArrayList<>(); + } + this.orderTotalPrice.add(orderTotalPriceItem); + return this; + } + + /** + * Get orderTotalPrice + * @return orderTotalPrice + **/ + @Schema(description = "") + @Valid + public List getOrderTotalPrice() { + return orderTotalPrice; + } + + public void setOrderTotalPrice(List orderTotalPrice) { + this.orderTotalPrice = orderTotalPrice; + } + + public ProductOrder payment(List payment) { + this.payment = payment; + return this; + } + + public ProductOrder addPaymentItem(PaymentRef paymentItem) { + if (this.payment == null) { + this.payment = new ArrayList<>(); + } + this.payment.add(paymentItem); + return this; + } + + /** + * Get payment + * @return payment + **/ + @Schema(description = "") + @Valid + public List getPayment() { + return payment; + } + + public void setPayment(List payment) { + this.payment = payment; + } + + public ProductOrder productOfferingQualification(List productOfferingQualification) { + this.productOfferingQualification = productOfferingQualification; + return this; + } + + public ProductOrder addProductOfferingQualificationItem(ProductOfferingQualificationRef productOfferingQualificationItem) { + if (this.productOfferingQualification == null) { + this.productOfferingQualification = new ArrayList<>(); + } + this.productOfferingQualification.add(productOfferingQualificationItem); + return this; + } + + /** + * Get productOfferingQualification + * @return productOfferingQualification + **/ + @Schema(description = "") + @Valid + public List getProductOfferingQualification() { + return productOfferingQualification; + } + + public void setProductOfferingQualification(List productOfferingQualification) { + this.productOfferingQualification = productOfferingQualification; + } + + public ProductOrder productOrderItem(List productOrderItem) { + this.productOrderItem = productOrderItem; + return this; + } + + public ProductOrder addProductOrderItemItem(ProductOrderItem productOrderItemItem) { + this.productOrderItem.add(productOrderItemItem); + return this; + } + + /** + * Get productOrderItem + * @return productOrderItem + **/ + @Schema(description = "") + @NotNull + @Valid + @Size(min=1) public List getProductOrderItem() { + return productOrderItem; + } + + public void setProductOrderItem(List productOrderItem) { + this.productOrderItem = productOrderItem; + } + + public ProductOrder quote(List quote) { + this.quote = quote; + return this; + } + + public ProductOrder addQuoteItem(QuoteRef quoteItem) { + if (this.quote == null) { + this.quote = new ArrayList<>(); + } + this.quote.add(quoteItem); + return this; + } + + /** + * Get quote + * @return quote + **/ + @Schema(description = "") + @Valid + public List getQuote() { + return quote; + } + + public void setQuote(List quote) { + this.quote = quote; + } + + public ProductOrder relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ProductOrder addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + @Valid + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public ProductOrder state(ProductOrderStateType state) { + this.state = state; + return this; + } + + /** + * Get state + * @return state + **/ + @Schema(description = "") + + @Valid + public ProductOrderStateType getState() { + return state; + } + + public void setState(ProductOrderStateType state) { + this.state = state; + } + + public ProductOrder baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public ProductOrder schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductOrder type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOrder productOrder = (ProductOrder) o; + return Objects.equals(this.id, productOrder.id) && + Objects.equals(this.href, productOrder.href) && + Objects.equals(this.cancellationDate, productOrder.cancellationDate) && + Objects.equals(this.cancellationReason, productOrder.cancellationReason) && + Objects.equals(this.category, productOrder.category) && + Objects.equals(this.completionDate, productOrder.completionDate) && + Objects.equals(this.description, productOrder.description) && + Objects.equals(this.expectedCompletionDate, productOrder.expectedCompletionDate) && + Objects.equals(this.externalId, productOrder.externalId) && + Objects.equals(this.notificationContact, productOrder.notificationContact) && + Objects.equals(this.orderDate, productOrder.orderDate) && + Objects.equals(this.priority, productOrder.priority) && + Objects.equals(this.requestedCompletionDate, productOrder.requestedCompletionDate) && + Objects.equals(this.requestedStartDate, productOrder.requestedStartDate) && + Objects.equals(this.agreement, productOrder.agreement) && + Objects.equals(this.billingAccount, productOrder.billingAccount) && + Objects.equals(this.channel, productOrder.channel) && + Objects.equals(this.note, productOrder.note) && + Objects.equals(this.orderTotalPrice, productOrder.orderTotalPrice) && + Objects.equals(this.payment, productOrder.payment) && + Objects.equals(this.productOfferingQualification, productOrder.productOfferingQualification) && + Objects.equals(this.productOrderItem, productOrder.productOrderItem) && + Objects.equals(this.quote, productOrder.quote) && + Objects.equals(this.relatedParty, productOrder.relatedParty) && + Objects.equals(this.state, productOrder.state) && + Objects.equals(this.baseType, productOrder.baseType) && + Objects.equals(this.schemaLocation, productOrder.schemaLocation) && + Objects.equals(this.type, productOrder.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, cancellationDate, cancellationReason, category, completionDate, description, expectedCompletionDate, externalId, notificationContact, orderDate, priority, requestedCompletionDate, requestedStartDate, agreement, billingAccount, channel, note, orderTotalPrice, payment, productOfferingQualification, productOrderItem, quote, relatedParty, state, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOrder {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" cancellationDate: ").append(toIndentedString(cancellationDate)).append("\n"); + sb.append(" cancellationReason: ").append(toIndentedString(cancellationReason)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" expectedCompletionDate: ").append(toIndentedString(expectedCompletionDate)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" notificationContact: ").append(toIndentedString(notificationContact)).append("\n"); + sb.append(" orderDate: ").append(toIndentedString(orderDate)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" requestedCompletionDate: ").append(toIndentedString(requestedCompletionDate)).append("\n"); + sb.append(" requestedStartDate: ").append(toIndentedString(requestedStartDate)).append("\n"); + sb.append(" agreement: ").append(toIndentedString(agreement)).append("\n"); + sb.append(" billingAccount: ").append(toIndentedString(billingAccount)).append("\n"); + sb.append(" channel: ").append(toIndentedString(channel)).append("\n"); + sb.append(" note: ").append(toIndentedString(note)).append("\n"); + sb.append(" orderTotalPrice: ").append(toIndentedString(orderTotalPrice)).append("\n"); + sb.append(" payment: ").append(toIndentedString(payment)).append("\n"); + sb.append(" productOfferingQualification: ").append(toIndentedString(productOfferingQualification)).append("\n"); + sb.append(" productOrderItem: ").append(toIndentedString(productOrderItem)).append("\n"); + sb.append(" quote: ").append(toIndentedString(quote)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderAttributeValueChangeEvent.java new file mode 100644 index 0000000..84c8851 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderAttributeValueChangeEvent.java @@ -0,0 +1,342 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOrderAttributeValueChangeEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("event") + private ProductOrderAttributeValueChangeEventPayload event = null; + + public ProductOrderAttributeValueChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ProductOrderAttributeValueChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ProductOrderAttributeValueChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ProductOrderAttributeValueChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ProductOrderAttributeValueChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ProductOrderAttributeValueChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ProductOrderAttributeValueChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductOrderAttributeValueChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ProductOrderAttributeValueChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ProductOrderAttributeValueChangeEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ProductOrderAttributeValueChangeEvent event(ProductOrderAttributeValueChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ProductOrderAttributeValueChangeEventPayload getEvent() { + return event; + } + + public void setEvent(ProductOrderAttributeValueChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOrderAttributeValueChangeEvent productOrderAttributeValueChangeEvent = (ProductOrderAttributeValueChangeEvent) o; + return Objects.equals(this.eventId, productOrderAttributeValueChangeEvent.eventId) && + Objects.equals(this.eventTime, productOrderAttributeValueChangeEvent.eventTime) && + Objects.equals(this.eventType, productOrderAttributeValueChangeEvent.eventType) && + Objects.equals(this.correlationId, productOrderAttributeValueChangeEvent.correlationId) && + Objects.equals(this.domain, productOrderAttributeValueChangeEvent.domain) && + Objects.equals(this.title, productOrderAttributeValueChangeEvent.title) && + Objects.equals(this.description, productOrderAttributeValueChangeEvent.description) && + Objects.equals(this.priority, productOrderAttributeValueChangeEvent.priority) && + Objects.equals(this.timeOcurred, productOrderAttributeValueChangeEvent.timeOcurred) && + Objects.equals(this.fieldPath, productOrderAttributeValueChangeEvent.fieldPath) && + Objects.equals(this.event, productOrderAttributeValueChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, fieldPath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOrderAttributeValueChangeEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderAttributeValueChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderAttributeValueChangeEventPayload.java new file mode 100644 index 0000000..28ebc7c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderAttributeValueChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOrderAttributeValueChangeEventPayload { + @JsonProperty("productOrder") + private ProductOrder productOrder = null; + + public ProductOrderAttributeValueChangeEventPayload productOrder(ProductOrder productOrder) { + this.productOrder = productOrder; + return this; + } + + /** + * Get productOrder + * @return productOrder + **/ + @Schema(description = "") + + @Valid + public ProductOrder getProductOrder() { + return productOrder; + } + + public void setProductOrder(ProductOrder productOrder) { + this.productOrder = productOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOrderAttributeValueChangeEventPayload productOrderAttributeValueChangeEventPayload = (ProductOrderAttributeValueChangeEventPayload) o; + return Objects.equals(this.productOrder, productOrderAttributeValueChangeEventPayload.productOrder); + } + + @Override + public int hashCode() { + return Objects.hash(productOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOrderAttributeValueChangeEventPayload {\n"); + + sb.append(" productOrder: ").append(toIndentedString(productOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderCreate.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderCreate.java new file mode 100644 index 0000000..7da8d3d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderCreate.java @@ -0,0 +1,690 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * A Product Order is a type of order which can be used to place an order between a customer and a service provider or between a service provider and a partner and vice versa, Skipped properties: id,href,completionDate,orderDate,state,expectedCompletionDate,productOrderItem.state + */ +@Schema(description = "A Product Order is a type of order which can be used to place an order between a customer and a service provider or between a service provider and a partner and vice versa, Skipped properties: id,href,completionDate,orderDate,state,expectedCompletionDate,productOrderItem.state") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOrderCreate { + @JsonProperty("cancellationDate") + private OffsetDateTime cancellationDate = null; + + @JsonProperty("cancellationReason") + private String cancellationReason = null; + + @JsonProperty("category") + private String category = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("externalId") + private String externalId = null; + + @JsonProperty("notificationContact") + private String notificationContact = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("requestedCompletionDate") + private OffsetDateTime requestedCompletionDate = null; + + @JsonProperty("requestedStartDate") + private OffsetDateTime requestedStartDate = null; + + @JsonProperty("agreement") + @Valid + private List agreement = null; + + @JsonProperty("billingAccount") + private BillingAccountRef billingAccount = null; + + @JsonProperty("channel") + @Valid + private List channel = null; + + @JsonProperty("note") + @Valid + private List note = null; + + @JsonProperty("orderTotalPrice") + @Valid + private List orderTotalPrice = null; + + @JsonProperty("payment") + @Valid + private List payment = null; + + @JsonProperty("productOfferingQualification") + @Valid + private List productOfferingQualification = null; + + @JsonProperty("productOrderItem") + @Valid + private List productOrderItem = new ArrayList<>(); + + @JsonProperty("quote") + @Valid + private List quote = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ProductOrderCreate cancellationDate(OffsetDateTime cancellationDate) { + this.cancellationDate = cancellationDate; + return this; + } + + /** + * Date when the order is cancelled. This is used when order is cancelled. + * @return cancellationDate + **/ + @Schema(description = "Date when the order is cancelled. This is used when order is cancelled. ") + + @Valid + public OffsetDateTime getCancellationDate() { + return cancellationDate; + } + + public void setCancellationDate(OffsetDateTime cancellationDate) { + this.cancellationDate = cancellationDate; + } + + public ProductOrderCreate cancellationReason(String cancellationReason) { + this.cancellationReason = cancellationReason; + return this; + } + + /** + * Reason why the order is cancelled. This is used when order is cancelled. + * @return cancellationReason + **/ + @Schema(description = "Reason why the order is cancelled. This is used when order is cancelled. ") + + public String getCancellationReason() { + return cancellationReason; + } + + public void setCancellationReason(String cancellationReason) { + this.cancellationReason = cancellationReason; + } + + public ProductOrderCreate category(String category) { + this.category = category; + return this; + } + + /** + * Used to categorize the order from a business perspective that can be useful for the OM system (e.g. \"enterprise\", \"residential\", ...) + * @return category + **/ + @Schema(description = "Used to categorize the order from a business perspective that can be useful for the OM system (e.g. \"enterprise\", \"residential\", ...)") + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public ProductOrderCreate description(String description) { + this.description = description; + return this; + } + + /** + * Description of the product order + * @return description + **/ + @Schema(description = "Description of the product order") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductOrderCreate externalId(String externalId) { + this.externalId = externalId; + return this; + } + + /** + * ID given by the consumer and only understandable by him (to facilitate his searches afterwards) + * @return externalId + **/ + @Schema(description = "ID given by the consumer and only understandable by him (to facilitate his searches afterwards)") + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public ProductOrderCreate notificationContact(String notificationContact) { + this.notificationContact = notificationContact; + return this; + } + + /** + * Contact attached to the order to send back information regarding this order + * @return notificationContact + **/ + @Schema(description = "Contact attached to the order to send back information regarding this order") + + public String getNotificationContact() { + return notificationContact; + } + + public void setNotificationContact(String notificationContact) { + this.notificationContact = notificationContact; + } + + public ProductOrderCreate priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A way that can be used by consumers to prioritize orders in OM system (from 0 to 4 : 0 is the highest priority, and 4 the lowest) + * @return priority + **/ + @Schema(description = "A way that can be used by consumers to prioritize orders in OM system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ProductOrderCreate requestedCompletionDate(OffsetDateTime requestedCompletionDate) { + this.requestedCompletionDate = requestedCompletionDate; + return this; + } + + /** + * Requested delivery date from the requestor perspective + * @return requestedCompletionDate + **/ + @Schema(description = "Requested delivery date from the requestor perspective") + + @Valid + public OffsetDateTime getRequestedCompletionDate() { + return requestedCompletionDate; + } + + public void setRequestedCompletionDate(OffsetDateTime requestedCompletionDate) { + this.requestedCompletionDate = requestedCompletionDate; + } + + public ProductOrderCreate requestedStartDate(OffsetDateTime requestedStartDate) { + this.requestedStartDate = requestedStartDate; + return this; + } + + /** + * Order fulfillment start date wished by the requestor. This is used when, for any reason, requestor cannot allow seller to begin to operationally begin the fulfillment before a date. + * @return requestedStartDate + **/ + @Schema(description = "Order fulfillment start date wished by the requestor. This is used when, for any reason, requestor cannot allow seller to begin to operationally begin the fulfillment before a date. ") + + @Valid + public OffsetDateTime getRequestedStartDate() { + return requestedStartDate; + } + + public void setRequestedStartDate(OffsetDateTime requestedStartDate) { + this.requestedStartDate = requestedStartDate; + } + + public ProductOrderCreate agreement(List agreement) { + this.agreement = agreement; + return this; + } + + public ProductOrderCreate addAgreementItem(AgreementRef agreementItem) { + if (this.agreement == null) { + this.agreement = new ArrayList<>(); + } + this.agreement.add(agreementItem); + return this; + } + + /** + * A reference to an agreement defined in the context of the product order + * @return agreement + **/ + @Schema(description = "A reference to an agreement defined in the context of the product order") + @Valid + public List getAgreement() { + return agreement; + } + + public void setAgreement(List agreement) { + this.agreement = agreement; + } + + public ProductOrderCreate billingAccount(BillingAccountRef billingAccount) { + this.billingAccount = billingAccount; + return this; + } + + /** + * Get billingAccount + * @return billingAccount + **/ + @Schema(description = "") + + @Valid + public BillingAccountRef getBillingAccount() { + return billingAccount; + } + + public void setBillingAccount(BillingAccountRef billingAccount) { + this.billingAccount = billingAccount; + } + + public ProductOrderCreate channel(List channel) { + this.channel = channel; + return this; + } + + public ProductOrderCreate addChannelItem(RelatedChannel channelItem) { + if (this.channel == null) { + this.channel = new ArrayList<>(); + } + this.channel.add(channelItem); + return this; + } + + /** + * Get channel + * @return channel + **/ + @Schema(description = "") + @Valid + public List getChannel() { + return channel; + } + + public void setChannel(List channel) { + this.channel = channel; + } + + public ProductOrderCreate note(List note) { + this.note = note; + return this; + } + + public ProductOrderCreate addNoteItem(Note noteItem) { + if (this.note == null) { + this.note = new ArrayList<>(); + } + this.note.add(noteItem); + return this; + } + + /** + * Get note + * @return note + **/ + @Schema(description = "") + @Valid + public List getNote() { + return note; + } + + public void setNote(List note) { + this.note = note; + } + + public ProductOrderCreate orderTotalPrice(List orderTotalPrice) { + this.orderTotalPrice = orderTotalPrice; + return this; + } + + public ProductOrderCreate addOrderTotalPriceItem(OrderPrice orderTotalPriceItem) { + if (this.orderTotalPrice == null) { + this.orderTotalPrice = new ArrayList<>(); + } + this.orderTotalPrice.add(orderTotalPriceItem); + return this; + } + + /** + * Get orderTotalPrice + * @return orderTotalPrice + **/ + @Schema(description = "") + @Valid + public List getOrderTotalPrice() { + return orderTotalPrice; + } + + public void setOrderTotalPrice(List orderTotalPrice) { + this.orderTotalPrice = orderTotalPrice; + } + + public ProductOrderCreate payment(List payment) { + this.payment = payment; + return this; + } + + public ProductOrderCreate addPaymentItem(PaymentRef paymentItem) { + if (this.payment == null) { + this.payment = new ArrayList<>(); + } + this.payment.add(paymentItem); + return this; + } + + /** + * Get payment + * @return payment + **/ + @Schema(description = "") + @Valid + public List getPayment() { + return payment; + } + + public void setPayment(List payment) { + this.payment = payment; + } + + public ProductOrderCreate productOfferingQualification(List productOfferingQualification) { + this.productOfferingQualification = productOfferingQualification; + return this; + } + + public ProductOrderCreate addProductOfferingQualificationItem(ProductOfferingQualificationRef productOfferingQualificationItem) { + if (this.productOfferingQualification == null) { + this.productOfferingQualification = new ArrayList<>(); + } + this.productOfferingQualification.add(productOfferingQualificationItem); + return this; + } + + /** + * Get productOfferingQualification + * @return productOfferingQualification + **/ + @Schema(description = "") + @Valid + public List getProductOfferingQualification() { + return productOfferingQualification; + } + + public void setProductOfferingQualification(List productOfferingQualification) { + this.productOfferingQualification = productOfferingQualification; + } + + public ProductOrderCreate productOrderItem(List productOrderItem) { + this.productOrderItem = productOrderItem; + return this; + } + + public ProductOrderCreate addProductOrderItemItem(ProductOrderItem productOrderItemItem) { + this.productOrderItem.add(productOrderItemItem); + return this; + } + + /** + * Get productOrderItem + * @return productOrderItem + **/ + @Schema(description = "") + @NotNull + @Valid + @Size(min=1) public List getProductOrderItem() { + return productOrderItem; + } + + public void setProductOrderItem(List productOrderItem) { + this.productOrderItem = productOrderItem; + } + + public ProductOrderCreate quote(List quote) { + this.quote = quote; + return this; + } + + public ProductOrderCreate addQuoteItem(QuoteRef quoteItem) { + if (this.quote == null) { + this.quote = new ArrayList<>(); + } + this.quote.add(quoteItem); + return this; + } + + /** + * Get quote + * @return quote + **/ + @Schema(description = "") + @Valid + public List getQuote() { + return quote; + } + + public void setQuote(List quote) { + this.quote = quote; + } + + public ProductOrderCreate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ProductOrderCreate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + @Valid + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public ProductOrderCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public ProductOrderCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductOrderCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOrderCreate productOrderCreate = (ProductOrderCreate) o; + return Objects.equals(this.cancellationDate, productOrderCreate.cancellationDate) && + Objects.equals(this.cancellationReason, productOrderCreate.cancellationReason) && + Objects.equals(this.category, productOrderCreate.category) && + Objects.equals(this.description, productOrderCreate.description) && + Objects.equals(this.externalId, productOrderCreate.externalId) && + Objects.equals(this.notificationContact, productOrderCreate.notificationContact) && + Objects.equals(this.priority, productOrderCreate.priority) && + Objects.equals(this.requestedCompletionDate, productOrderCreate.requestedCompletionDate) && + Objects.equals(this.requestedStartDate, productOrderCreate.requestedStartDate) && + Objects.equals(this.agreement, productOrderCreate.agreement) && + Objects.equals(this.billingAccount, productOrderCreate.billingAccount) && + Objects.equals(this.channel, productOrderCreate.channel) && + Objects.equals(this.note, productOrderCreate.note) && + Objects.equals(this.orderTotalPrice, productOrderCreate.orderTotalPrice) && + Objects.equals(this.payment, productOrderCreate.payment) && + Objects.equals(this.productOfferingQualification, productOrderCreate.productOfferingQualification) && + Objects.equals(this.productOrderItem, productOrderCreate.productOrderItem) && + Objects.equals(this.quote, productOrderCreate.quote) && + Objects.equals(this.relatedParty, productOrderCreate.relatedParty) && + Objects.equals(this.baseType, productOrderCreate.baseType) && + Objects.equals(this.schemaLocation, productOrderCreate.schemaLocation) && + Objects.equals(this.type, productOrderCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(cancellationDate, cancellationReason, category, description, externalId, notificationContact, priority, requestedCompletionDate, requestedStartDate, agreement, billingAccount, channel, note, orderTotalPrice, payment, productOfferingQualification, productOrderItem, quote, relatedParty, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOrderCreate {\n"); + + sb.append(" cancellationDate: ").append(toIndentedString(cancellationDate)).append("\n"); + sb.append(" cancellationReason: ").append(toIndentedString(cancellationReason)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" notificationContact: ").append(toIndentedString(notificationContact)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" requestedCompletionDate: ").append(toIndentedString(requestedCompletionDate)).append("\n"); + sb.append(" requestedStartDate: ").append(toIndentedString(requestedStartDate)).append("\n"); + sb.append(" agreement: ").append(toIndentedString(agreement)).append("\n"); + sb.append(" billingAccount: ").append(toIndentedString(billingAccount)).append("\n"); + sb.append(" channel: ").append(toIndentedString(channel)).append("\n"); + sb.append(" note: ").append(toIndentedString(note)).append("\n"); + sb.append(" orderTotalPrice: ").append(toIndentedString(orderTotalPrice)).append("\n"); + sb.append(" payment: ").append(toIndentedString(payment)).append("\n"); + sb.append(" productOfferingQualification: ").append(toIndentedString(productOfferingQualification)).append("\n"); + sb.append(" productOrderItem: ").append(toIndentedString(productOrderItem)).append("\n"); + sb.append(" quote: ").append(toIndentedString(quote)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderCreateEvent.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderCreateEvent.java new file mode 100644 index 0000000..4bbbc94 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderCreateEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOrderCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ProductOrderCreateEventPayload event = null; + + public ProductOrderCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductOrderCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductOrderCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ProductOrderCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ProductOrderCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ProductOrderCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ProductOrderCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ProductOrderCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ProductOrderCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductOrderCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ProductOrderCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ProductOrderCreateEvent event(ProductOrderCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ProductOrderCreateEventPayload getEvent() { + return event; + } + + public void setEvent(ProductOrderCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOrderCreateEvent productOrderCreateEvent = (ProductOrderCreateEvent) o; + return Objects.equals(this.id, productOrderCreateEvent.id) && + Objects.equals(this.href, productOrderCreateEvent.href) && + Objects.equals(this.eventId, productOrderCreateEvent.eventId) && + Objects.equals(this.eventTime, productOrderCreateEvent.eventTime) && + Objects.equals(this.eventType, productOrderCreateEvent.eventType) && + Objects.equals(this.correlationId, productOrderCreateEvent.correlationId) && + Objects.equals(this.domain, productOrderCreateEvent.domain) && + Objects.equals(this.title, productOrderCreateEvent.title) && + Objects.equals(this.description, productOrderCreateEvent.description) && + Objects.equals(this.priority, productOrderCreateEvent.priority) && + Objects.equals(this.timeOcurred, productOrderCreateEvent.timeOcurred) && + Objects.equals(this.event, productOrderCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOrderCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderCreateEventPayload.java new file mode 100644 index 0000000..f89b45d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderCreateEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOrderCreateEventPayload { + @JsonProperty("productOrder") + private ProductOrder productOrder = null; + + public ProductOrderCreateEventPayload productOrder(ProductOrder productOrder) { + this.productOrder = productOrder; + return this; + } + + /** + * Get productOrder + * @return productOrder + **/ + @Schema(description = "") + + @Valid + public ProductOrder getProductOrder() { + return productOrder; + } + + public void setProductOrder(ProductOrder productOrder) { + this.productOrder = productOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOrderCreateEventPayload productOrderCreateEventPayload = (ProductOrderCreateEventPayload) o; + return Objects.equals(this.productOrder, productOrderCreateEventPayload.productOrder); + } + + @Override + public int hashCode() { + return Objects.hash(productOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOrderCreateEventPayload {\n"); + + sb.append(" productOrder: ").append(toIndentedString(productOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderDeleteEvent.java new file mode 100644 index 0000000..dd87d1c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderDeleteEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOrderDeleteEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ProductOrderDeleteEventPayload event = null; + + public ProductOrderDeleteEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductOrderDeleteEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductOrderDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ProductOrderDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ProductOrderDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ProductOrderDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ProductOrderDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ProductOrderDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ProductOrderDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductOrderDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ProductOrderDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ProductOrderDeleteEvent event(ProductOrderDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ProductOrderDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(ProductOrderDeleteEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOrderDeleteEvent productOrderDeleteEvent = (ProductOrderDeleteEvent) o; + return Objects.equals(this.id, productOrderDeleteEvent.id) && + Objects.equals(this.href, productOrderDeleteEvent.href) && + Objects.equals(this.eventId, productOrderDeleteEvent.eventId) && + Objects.equals(this.eventTime, productOrderDeleteEvent.eventTime) && + Objects.equals(this.eventType, productOrderDeleteEvent.eventType) && + Objects.equals(this.correlationId, productOrderDeleteEvent.correlationId) && + Objects.equals(this.domain, productOrderDeleteEvent.domain) && + Objects.equals(this.title, productOrderDeleteEvent.title) && + Objects.equals(this.description, productOrderDeleteEvent.description) && + Objects.equals(this.priority, productOrderDeleteEvent.priority) && + Objects.equals(this.timeOcurred, productOrderDeleteEvent.timeOcurred) && + Objects.equals(this.event, productOrderDeleteEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOrderDeleteEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderDeleteEventPayload.java new file mode 100644 index 0000000..94de1d9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderDeleteEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOrderDeleteEventPayload { + @JsonProperty("productOrder") + private ProductOrder productOrder = null; + + public ProductOrderDeleteEventPayload productOrder(ProductOrder productOrder) { + this.productOrder = productOrder; + return this; + } + + /** + * Get productOrder + * @return productOrder + **/ + @Schema(description = "") + + @Valid + public ProductOrder getProductOrder() { + return productOrder; + } + + public void setProductOrder(ProductOrder productOrder) { + this.productOrder = productOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOrderDeleteEventPayload productOrderDeleteEventPayload = (ProductOrderDeleteEventPayload) o; + return Objects.equals(this.productOrder, productOrderDeleteEventPayload.productOrder); + } + + @Override + public int hashCode() { + return Objects.hash(productOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOrderDeleteEventPayload {\n"); + + sb.append(" productOrder: ").append(toIndentedString(productOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderInformationRequiredEvent.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderInformationRequiredEvent.java new file mode 100644 index 0000000..38a85af --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderInformationRequiredEvent.java @@ -0,0 +1,342 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOrderInformationRequiredEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("event") + private ProductOrderInformationRequiredEventPayload event = null; + + public ProductOrderInformationRequiredEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ProductOrderInformationRequiredEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ProductOrderInformationRequiredEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ProductOrderInformationRequiredEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ProductOrderInformationRequiredEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ProductOrderInformationRequiredEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ProductOrderInformationRequiredEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductOrderInformationRequiredEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ProductOrderInformationRequiredEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ProductOrderInformationRequiredEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ProductOrderInformationRequiredEvent event(ProductOrderInformationRequiredEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ProductOrderInformationRequiredEventPayload getEvent() { + return event; + } + + public void setEvent(ProductOrderInformationRequiredEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOrderInformationRequiredEvent productOrderInformationRequiredEvent = (ProductOrderInformationRequiredEvent) o; + return Objects.equals(this.eventId, productOrderInformationRequiredEvent.eventId) && + Objects.equals(this.eventTime, productOrderInformationRequiredEvent.eventTime) && + Objects.equals(this.eventType, productOrderInformationRequiredEvent.eventType) && + Objects.equals(this.correlationId, productOrderInformationRequiredEvent.correlationId) && + Objects.equals(this.domain, productOrderInformationRequiredEvent.domain) && + Objects.equals(this.title, productOrderInformationRequiredEvent.title) && + Objects.equals(this.description, productOrderInformationRequiredEvent.description) && + Objects.equals(this.priority, productOrderInformationRequiredEvent.priority) && + Objects.equals(this.timeOcurred, productOrderInformationRequiredEvent.timeOcurred) && + Objects.equals(this.fieldPath, productOrderInformationRequiredEvent.fieldPath) && + Objects.equals(this.event, productOrderInformationRequiredEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, fieldPath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOrderInformationRequiredEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderInformationRequiredEventPayload.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderInformationRequiredEventPayload.java new file mode 100644 index 0000000..603295d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderInformationRequiredEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOrderInformationRequiredEventPayload { + @JsonProperty("productOrder") + private ProductOrder productOrder = null; + + public ProductOrderInformationRequiredEventPayload productOrder(ProductOrder productOrder) { + this.productOrder = productOrder; + return this; + } + + /** + * Get productOrder + * @return productOrder + **/ + @Schema(description = "") + + @Valid + public ProductOrder getProductOrder() { + return productOrder; + } + + public void setProductOrder(ProductOrder productOrder) { + this.productOrder = productOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOrderInformationRequiredEventPayload productOrderInformationRequiredEventPayload = (ProductOrderInformationRequiredEventPayload) o; + return Objects.equals(this.productOrder, productOrderInformationRequiredEventPayload.productOrder); + } + + @Override + public int hashCode() { + return Objects.hash(productOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOrderInformationRequiredEventPayload {\n"); + + sb.append(" productOrder: ").append(toIndentedString(productOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderItem.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderItem.java new file mode 100644 index 0000000..a2dcbb8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderItem.java @@ -0,0 +1,630 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * An identified part of the order. A product order is decomposed into one or more order items. + */ +@Schema(description = "An identified part of the order. A product order is decomposed into one or more order items.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOrderItem { + @JsonProperty("id") + private String id = null; + + @JsonProperty("quantity") + private Integer quantity = null; + + @JsonProperty("action") + private OrderItemActionType action = null; + + @JsonProperty("appointment") + private AppointmentRef appointment = null; + + @JsonProperty("billingAccount") + private BillingAccountRef billingAccount = null; + + @JsonProperty("itemPrice") + @Valid + private List itemPrice = null; + + @JsonProperty("itemTerm") + @Valid + private List itemTerm = null; + + @JsonProperty("itemTotalPrice") + @Valid + private List itemTotalPrice = null; + + @JsonProperty("payment") + @Valid + private List payment = null; + + @JsonProperty("product") + private ProductRefOrValue product = null; + + @JsonProperty("productOffering") + private ProductOfferingRef productOffering = null; + + @JsonProperty("productOfferingQualificationItem") + private ProductOfferingQualificationItemRef productOfferingQualificationItem = null; + + @JsonProperty("productOrderItem") + @Valid + private List productOrderItem = null; + + @JsonProperty("productOrderItemRelationship") + @Valid + private List productOrderItemRelationship = null; + + @JsonProperty("qualification") + @Valid + private List qualification = null; + + @JsonProperty("quoteItem") + private QuoteItemRef quoteItem = null; + + @JsonProperty("state") + private ProductOrderItemStateType state = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ProductOrderItem id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the line item (generally it is a sequence number 01, 02, 03, ...) + * @return id + **/ + @Schema(description = "Identifier of the line item (generally it is a sequence number 01, 02, 03, ...)") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductOrderItem quantity(Integer quantity) { + this.quantity = quantity; + return this; + } + + /** + * Quantity ordered + * @return quantity + **/ + @Schema(description = "Quantity ordered") + + public Integer getQuantity() { + return quantity; + } + + public void setQuantity(Integer quantity) { + this.quantity = quantity; + } + + public ProductOrderItem action(OrderItemActionType action) { + this.action = action; + return this; + } + + /** + * Get action + * @return action + **/ + @Schema(description = "") + @NotNull + + @Valid + public OrderItemActionType getAction() { + return action; + } + + public void setAction(OrderItemActionType action) { + this.action = action; + } + + public ProductOrderItem appointment(AppointmentRef appointment) { + this.appointment = appointment; + return this; + } + + /** + * Get appointment + * @return appointment + **/ + @Schema(description = "") + + @Valid + public AppointmentRef getAppointment() { + return appointment; + } + + public void setAppointment(AppointmentRef appointment) { + this.appointment = appointment; + } + + public ProductOrderItem billingAccount(BillingAccountRef billingAccount) { + this.billingAccount = billingAccount; + return this; + } + + /** + * Get billingAccount + * @return billingAccount + **/ + @Schema(description = "") + + @Valid + public BillingAccountRef getBillingAccount() { + return billingAccount; + } + + public void setBillingAccount(BillingAccountRef billingAccount) { + this.billingAccount = billingAccount; + } + + public ProductOrderItem itemPrice(List itemPrice) { + this.itemPrice = itemPrice; + return this; + } + + public ProductOrderItem addItemPriceItem(OrderPrice itemPriceItem) { + if (this.itemPrice == null) { + this.itemPrice = new ArrayList<>(); + } + this.itemPrice.add(itemPriceItem); + return this; + } + + /** + * Get itemPrice + * @return itemPrice + **/ + @Schema(description = "") + @Valid + public List getItemPrice() { + return itemPrice; + } + + public void setItemPrice(List itemPrice) { + this.itemPrice = itemPrice; + } + + public ProductOrderItem itemTerm(List itemTerm) { + this.itemTerm = itemTerm; + return this; + } + + public ProductOrderItem addItemTermItem(OrderTerm itemTermItem) { + if (this.itemTerm == null) { + this.itemTerm = new ArrayList<>(); + } + this.itemTerm.add(itemTermItem); + return this; + } + + /** + * Get itemTerm + * @return itemTerm + **/ + @Schema(description = "") + @Valid + public List getItemTerm() { + return itemTerm; + } + + public void setItemTerm(List itemTerm) { + this.itemTerm = itemTerm; + } + + public ProductOrderItem itemTotalPrice(List itemTotalPrice) { + this.itemTotalPrice = itemTotalPrice; + return this; + } + + public ProductOrderItem addItemTotalPriceItem(OrderPrice itemTotalPriceItem) { + if (this.itemTotalPrice == null) { + this.itemTotalPrice = new ArrayList<>(); + } + this.itemTotalPrice.add(itemTotalPriceItem); + return this; + } + + /** + * Get itemTotalPrice + * @return itemTotalPrice + **/ + @Schema(description = "") + @Valid + public List getItemTotalPrice() { + return itemTotalPrice; + } + + public void setItemTotalPrice(List itemTotalPrice) { + this.itemTotalPrice = itemTotalPrice; + } + + public ProductOrderItem payment(List payment) { + this.payment = payment; + return this; + } + + public ProductOrderItem addPaymentItem(PaymentRef paymentItem) { + if (this.payment == null) { + this.payment = new ArrayList<>(); + } + this.payment.add(paymentItem); + return this; + } + + /** + * Get payment + * @return payment + **/ + @Schema(description = "") + @Valid + public List getPayment() { + return payment; + } + + public void setPayment(List payment) { + this.payment = payment; + } + + public ProductOrderItem product(ProductRefOrValue product) { + this.product = product; + return this; + } + + /** + * Get product + * @return product + **/ + @Schema(description = "") + + @Valid + public ProductRefOrValue getProduct() { + return product; + } + + public void setProduct(ProductRefOrValue product) { + this.product = product; + } + + public ProductOrderItem productOffering(ProductOfferingRef productOffering) { + this.productOffering = productOffering; + return this; + } + + /** + * Get productOffering + * @return productOffering + **/ + @Schema(description = "") + + @Valid + public ProductOfferingRef getProductOffering() { + return productOffering; + } + + public void setProductOffering(ProductOfferingRef productOffering) { + this.productOffering = productOffering; + } + + public ProductOrderItem productOfferingQualificationItem(ProductOfferingQualificationItemRef productOfferingQualificationItem) { + this.productOfferingQualificationItem = productOfferingQualificationItem; + return this; + } + + /** + * Get productOfferingQualificationItem + * @return productOfferingQualificationItem + **/ + @Schema(description = "") + + @Valid + public ProductOfferingQualificationItemRef getProductOfferingQualificationItem() { + return productOfferingQualificationItem; + } + + public void setProductOfferingQualificationItem(ProductOfferingQualificationItemRef productOfferingQualificationItem) { + this.productOfferingQualificationItem = productOfferingQualificationItem; + } + + public ProductOrderItem productOrderItem(List productOrderItem) { + this.productOrderItem = productOrderItem; + return this; + } + + public ProductOrderItem addProductOrderItemItem(ProductOrderItem productOrderItemItem) { + if (this.productOrderItem == null) { + this.productOrderItem = new ArrayList<>(); + } + this.productOrderItem.add(productOrderItemItem); + return this; + } + + /** + * Get productOrderItem + * @return productOrderItem + **/ + @Schema(description = "") + @Valid + public List getProductOrderItem() { + return productOrderItem; + } + + public void setProductOrderItem(List productOrderItem) { + this.productOrderItem = productOrderItem; + } + + public ProductOrderItem productOrderItemRelationship(List productOrderItemRelationship) { + this.productOrderItemRelationship = productOrderItemRelationship; + return this; + } + + public ProductOrderItem addProductOrderItemRelationshipItem(OrderItemRelationship productOrderItemRelationshipItem) { + if (this.productOrderItemRelationship == null) { + this.productOrderItemRelationship = new ArrayList<>(); + } + this.productOrderItemRelationship.add(productOrderItemRelationshipItem); + return this; + } + + /** + * Get productOrderItemRelationship + * @return productOrderItemRelationship + **/ + @Schema(description = "") + @Valid + public List getProductOrderItemRelationship() { + return productOrderItemRelationship; + } + + public void setProductOrderItemRelationship(List productOrderItemRelationship) { + this.productOrderItemRelationship = productOrderItemRelationship; + } + + public ProductOrderItem qualification(List qualification) { + this.qualification = qualification; + return this; + } + + public ProductOrderItem addQualificationItem(ProductOfferingQualificationRef qualificationItem) { + if (this.qualification == null) { + this.qualification = new ArrayList<>(); + } + this.qualification.add(qualificationItem); + return this; + } + + /** + * Get qualification + * @return qualification + **/ + @Schema(description = "") + @Valid + public List getQualification() { + return qualification; + } + + public void setQualification(List qualification) { + this.qualification = qualification; + } + + public ProductOrderItem quoteItem(QuoteItemRef quoteItem) { + this.quoteItem = quoteItem; + return this; + } + + /** + * Get quoteItem + * @return quoteItem + **/ + @Schema(description = "") + + @Valid + public QuoteItemRef getQuoteItem() { + return quoteItem; + } + + public void setQuoteItem(QuoteItemRef quoteItem) { + this.quoteItem = quoteItem; + } + + public ProductOrderItem state(ProductOrderItemStateType state) { + this.state = state; + return this; + } + + /** + * Get state + * @return state + **/ + @Schema(description = "") + + @Valid + public ProductOrderItemStateType getState() { + return state; + } + + public void setState(ProductOrderItemStateType state) { + this.state = state; + } + + public ProductOrderItem baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public ProductOrderItem schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductOrderItem type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOrderItem productOrderItem = (ProductOrderItem) o; + return Objects.equals(this.id, productOrderItem.id) && + Objects.equals(this.quantity, productOrderItem.quantity) && + Objects.equals(this.action, productOrderItem.action) && + Objects.equals(this.appointment, productOrderItem.appointment) && + Objects.equals(this.billingAccount, productOrderItem.billingAccount) && + Objects.equals(this.itemPrice, productOrderItem.itemPrice) && + Objects.equals(this.itemTerm, productOrderItem.itemTerm) && + Objects.equals(this.itemTotalPrice, productOrderItem.itemTotalPrice) && + Objects.equals(this.payment, productOrderItem.payment) && + Objects.equals(this.product, productOrderItem.product) && + Objects.equals(this.productOffering, productOrderItem.productOffering) && + Objects.equals(this.productOfferingQualificationItem, productOrderItem.productOfferingQualificationItem) && + Objects.equals(this.productOrderItem, productOrderItem.productOrderItem) && + Objects.equals(this.productOrderItemRelationship, productOrderItem.productOrderItemRelationship) && + Objects.equals(this.qualification, productOrderItem.qualification) && + Objects.equals(this.quoteItem, productOrderItem.quoteItem) && + Objects.equals(this.state, productOrderItem.state) && + Objects.equals(this.baseType, productOrderItem.baseType) && + Objects.equals(this.schemaLocation, productOrderItem.schemaLocation) && + Objects.equals(this.type, productOrderItem.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, quantity, action, appointment, billingAccount, itemPrice, itemTerm, itemTotalPrice, payment, product, productOffering, productOfferingQualificationItem, productOrderItem, productOrderItemRelationship, qualification, quoteItem, state, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOrderItem {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" quantity: ").append(toIndentedString(quantity)).append("\n"); + sb.append(" action: ").append(toIndentedString(action)).append("\n"); + sb.append(" appointment: ").append(toIndentedString(appointment)).append("\n"); + sb.append(" billingAccount: ").append(toIndentedString(billingAccount)).append("\n"); + sb.append(" itemPrice: ").append(toIndentedString(itemPrice)).append("\n"); + sb.append(" itemTerm: ").append(toIndentedString(itemTerm)).append("\n"); + sb.append(" itemTotalPrice: ").append(toIndentedString(itemTotalPrice)).append("\n"); + sb.append(" payment: ").append(toIndentedString(payment)).append("\n"); + sb.append(" product: ").append(toIndentedString(product)).append("\n"); + sb.append(" productOffering: ").append(toIndentedString(productOffering)).append("\n"); + sb.append(" productOfferingQualificationItem: ").append(toIndentedString(productOfferingQualificationItem)).append("\n"); + sb.append(" productOrderItem: ").append(toIndentedString(productOrderItem)).append("\n"); + sb.append(" productOrderItemRelationship: ").append(toIndentedString(productOrderItemRelationship)).append("\n"); + sb.append(" qualification: ").append(toIndentedString(qualification)).append("\n"); + sb.append(" quoteItem: ").append(toIndentedString(quoteItem)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderItemStateType.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderItemStateType.java new file mode 100644 index 0000000..1fff283 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderItemStateType.java @@ -0,0 +1,61 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Possible values for the state of the product order item + */ +public enum ProductOrderItemStateType { + ACKNOWLEDGED("acknowledged"), + REJECTED("rejected"), + PENDING("pending"), + HELD("held"), + INPROGRESS("inProgress"), + CANCELLED("cancelled"), + COMPLETED("completed"), + FAILED("failed"), + ASSESSINGCANCELLATION("assessingCancellation"), + PENDINGCANCELLATION("pendingCancellation"); + + private String value; + + ProductOrderItemStateType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ProductOrderItemStateType fromValue(String text) { + for (ProductOrderItemStateType b : ProductOrderItemStateType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderRef.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderRef.java new file mode 100644 index 0000000..3f9c0eb --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderRef.java @@ -0,0 +1,243 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * ProductOrder (ProductOrder) .The product order which the recommendation is related with. + */ +@Schema(description = "ProductOrder (ProductOrder) .The product order which the recommendation is related with.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOrderRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public ProductOrderRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductOrderRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductOrderRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ProductOrderRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public ProductOrderRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductOrderRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public ProductOrderRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOrderRef productOrderRef = (ProductOrderRef) o; + return Objects.equals(this.id, productOrderRef.id) && + Objects.equals(this.href, productOrderRef.href) && + Objects.equals(this.name, productOrderRef.name) && + Objects.equals(this.baseType, productOrderRef.baseType) && + Objects.equals(this.schemaLocation, productOrderRef.schemaLocation) && + Objects.equals(this.type, productOrderRef.type) && + Objects.equals(this._atReferredType, productOrderRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOrderRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderStateChangeEvent.java new file mode 100644 index 0000000..613e5c7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderStateChangeEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOrderStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ProductOrderStateChangeEventPayload event = null; + + public ProductOrderStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductOrderStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductOrderStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ProductOrderStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ProductOrderStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ProductOrderStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ProductOrderStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ProductOrderStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ProductOrderStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductOrderStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ProductOrderStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ProductOrderStateChangeEvent event(ProductOrderStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ProductOrderStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(ProductOrderStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOrderStateChangeEvent productOrderStateChangeEvent = (ProductOrderStateChangeEvent) o; + return Objects.equals(this.id, productOrderStateChangeEvent.id) && + Objects.equals(this.href, productOrderStateChangeEvent.href) && + Objects.equals(this.eventId, productOrderStateChangeEvent.eventId) && + Objects.equals(this.eventTime, productOrderStateChangeEvent.eventTime) && + Objects.equals(this.eventType, productOrderStateChangeEvent.eventType) && + Objects.equals(this.correlationId, productOrderStateChangeEvent.correlationId) && + Objects.equals(this.domain, productOrderStateChangeEvent.domain) && + Objects.equals(this.title, productOrderStateChangeEvent.title) && + Objects.equals(this.description, productOrderStateChangeEvent.description) && + Objects.equals(this.priority, productOrderStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, productOrderStateChangeEvent.timeOcurred) && + Objects.equals(this.event, productOrderStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOrderStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderStateChangeEventPayload.java new file mode 100644 index 0000000..3ca7b78 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderStateChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOrderStateChangeEventPayload { + @JsonProperty("productOrder") + private ProductOrder productOrder = null; + + public ProductOrderStateChangeEventPayload productOrder(ProductOrder productOrder) { + this.productOrder = productOrder; + return this; + } + + /** + * Get productOrder + * @return productOrder + **/ + @Schema(description = "") + + @Valid + public ProductOrder getProductOrder() { + return productOrder; + } + + public void setProductOrder(ProductOrder productOrder) { + this.productOrder = productOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOrderStateChangeEventPayload productOrderStateChangeEventPayload = (ProductOrderStateChangeEventPayload) o; + return Objects.equals(this.productOrder, productOrderStateChangeEventPayload.productOrder); + } + + @Override + public int hashCode() { + return Objects.hash(productOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOrderStateChangeEventPayload {\n"); + + sb.append(" productOrder: ").append(toIndentedString(productOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderStateType.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderStateType.java new file mode 100644 index 0000000..f676615 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderStateType.java @@ -0,0 +1,62 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Possible values for the state of the order + */ +public enum ProductOrderStateType { + ACKNOWLEDGED("acknowledged"), + REJECTED("rejected"), + PENDING("pending"), + HELD("held"), + INPROGRESS("inProgress"), + CANCELLED("cancelled"), + COMPLETED("completed"), + FAILED("failed"), + PARTIAL("partial"), + ASSESSINGCANCELLATION("assessingCancellation"), + PENDINGCANCELLATION("pendingCancellation"); + + private String value; + + ProductOrderStateType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ProductOrderStateType fromValue(String text) { + for (ProductOrderStateType b : ProductOrderStateType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderUpdate.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderUpdate.java new file mode 100644 index 0000000..ddef47a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductOrderUpdate.java @@ -0,0 +1,765 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * A Product Order is a type of order which can be used to place an order between a customer and a service provider or between a service provider and a partner and vice versa, Skipped properties: id,href,orderDate + */ +@Schema(description = "A Product Order is a type of order which can be used to place an order between a customer and a service provider or between a service provider and a partner and vice versa, Skipped properties: id,href,orderDate") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductOrderUpdate { + @JsonProperty("cancellationDate") + private OffsetDateTime cancellationDate = null; + + @JsonProperty("cancellationReason") + private String cancellationReason = null; + + @JsonProperty("category") + private String category = null; + + @JsonProperty("completionDate") + private OffsetDateTime completionDate = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("expectedCompletionDate") + private OffsetDateTime expectedCompletionDate = null; + + @JsonProperty("externalId") + private String externalId = null; + + @JsonProperty("notificationContact") + private String notificationContact = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("requestedCompletionDate") + private OffsetDateTime requestedCompletionDate = null; + + @JsonProperty("requestedStartDate") + private OffsetDateTime requestedStartDate = null; + + @JsonProperty("agreement") + @Valid + private List agreement = null; + + @JsonProperty("billingAccount") + private BillingAccountRef billingAccount = null; + + @JsonProperty("channel") + @Valid + private List channel = null; + + @JsonProperty("note") + @Valid + private List note = null; + + @JsonProperty("orderTotalPrice") + @Valid + private List orderTotalPrice = null; + + @JsonProperty("payment") + @Valid + private List payment = null; + + @JsonProperty("productOfferingQualification") + @Valid + private List productOfferingQualification = null; + + @JsonProperty("productOrderItem") + @Valid + private List productOrderItem = new ArrayList<>(); + + @JsonProperty("quote") + @Valid + private List quote = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @JsonProperty("state") + private ProductOrderStateType state = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ProductOrderUpdate cancellationDate(OffsetDateTime cancellationDate) { + this.cancellationDate = cancellationDate; + return this; + } + + /** + * Date when the order is cancelled. This is used when order is cancelled. + * @return cancellationDate + **/ + @Schema(description = "Date when the order is cancelled. This is used when order is cancelled. ") + + @Valid + public OffsetDateTime getCancellationDate() { + return cancellationDate; + } + + public void setCancellationDate(OffsetDateTime cancellationDate) { + this.cancellationDate = cancellationDate; + } + + public ProductOrderUpdate cancellationReason(String cancellationReason) { + this.cancellationReason = cancellationReason; + return this; + } + + /** + * Reason why the order is cancelled. This is used when order is cancelled. + * @return cancellationReason + **/ + @Schema(description = "Reason why the order is cancelled. This is used when order is cancelled. ") + + public String getCancellationReason() { + return cancellationReason; + } + + public void setCancellationReason(String cancellationReason) { + this.cancellationReason = cancellationReason; + } + + public ProductOrderUpdate category(String category) { + this.category = category; + return this; + } + + /** + * Used to categorize the order from a business perspective that can be useful for the OM system (e.g. \"enterprise\", \"residential\", ...) + * @return category + **/ + @Schema(description = "Used to categorize the order from a business perspective that can be useful for the OM system (e.g. \"enterprise\", \"residential\", ...)") + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public ProductOrderUpdate completionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Date when the order was completed + * @return completionDate + **/ + @Schema(description = "Date when the order was completed") + + @Valid + public OffsetDateTime getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + } + + public ProductOrderUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Description of the product order + * @return description + **/ + @Schema(description = "Description of the product order") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductOrderUpdate expectedCompletionDate(OffsetDateTime expectedCompletionDate) { + this.expectedCompletionDate = expectedCompletionDate; + return this; + } + + /** + * Expected delivery date amended by the provider + * @return expectedCompletionDate + **/ + @Schema(description = "Expected delivery date amended by the provider") + + @Valid + public OffsetDateTime getExpectedCompletionDate() { + return expectedCompletionDate; + } + + public void setExpectedCompletionDate(OffsetDateTime expectedCompletionDate) { + this.expectedCompletionDate = expectedCompletionDate; + } + + public ProductOrderUpdate externalId(String externalId) { + this.externalId = externalId; + return this; + } + + /** + * ID given by the consumer and only understandable by him (to facilitate his searches afterwards) + * @return externalId + **/ + @Schema(description = "ID given by the consumer and only understandable by him (to facilitate his searches afterwards)") + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public ProductOrderUpdate notificationContact(String notificationContact) { + this.notificationContact = notificationContact; + return this; + } + + /** + * Contact attached to the order to send back information regarding this order + * @return notificationContact + **/ + @Schema(description = "Contact attached to the order to send back information regarding this order") + + public String getNotificationContact() { + return notificationContact; + } + + public void setNotificationContact(String notificationContact) { + this.notificationContact = notificationContact; + } + + public ProductOrderUpdate priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A way that can be used by consumers to prioritize orders in OM system (from 0 to 4 : 0 is the highest priority, and 4 the lowest) + * @return priority + **/ + @Schema(description = "A way that can be used by consumers to prioritize orders in OM system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ProductOrderUpdate requestedCompletionDate(OffsetDateTime requestedCompletionDate) { + this.requestedCompletionDate = requestedCompletionDate; + return this; + } + + /** + * Requested delivery date from the requestor perspective + * @return requestedCompletionDate + **/ + @Schema(description = "Requested delivery date from the requestor perspective") + + @Valid + public OffsetDateTime getRequestedCompletionDate() { + return requestedCompletionDate; + } + + public void setRequestedCompletionDate(OffsetDateTime requestedCompletionDate) { + this.requestedCompletionDate = requestedCompletionDate; + } + + public ProductOrderUpdate requestedStartDate(OffsetDateTime requestedStartDate) { + this.requestedStartDate = requestedStartDate; + return this; + } + + /** + * Order fulfillment start date wished by the requestor. This is used when, for any reason, requestor cannot allow seller to begin to operationally begin the fulfillment before a date. + * @return requestedStartDate + **/ + @Schema(description = "Order fulfillment start date wished by the requestor. This is used when, for any reason, requestor cannot allow seller to begin to operationally begin the fulfillment before a date. ") + + @Valid + public OffsetDateTime getRequestedStartDate() { + return requestedStartDate; + } + + public void setRequestedStartDate(OffsetDateTime requestedStartDate) { + this.requestedStartDate = requestedStartDate; + } + + public ProductOrderUpdate agreement(List agreement) { + this.agreement = agreement; + return this; + } + + public ProductOrderUpdate addAgreementItem(AgreementRef agreementItem) { + if (this.agreement == null) { + this.agreement = new ArrayList<>(); + } + this.agreement.add(agreementItem); + return this; + } + + /** + * A reference to an agreement defined in the context of the product order + * @return agreement + **/ + @Schema(description = "A reference to an agreement defined in the context of the product order") + @Valid + public List getAgreement() { + return agreement; + } + + public void setAgreement(List agreement) { + this.agreement = agreement; + } + + public ProductOrderUpdate billingAccount(BillingAccountRef billingAccount) { + this.billingAccount = billingAccount; + return this; + } + + /** + * Get billingAccount + * @return billingAccount + **/ + @Schema(description = "") + + @Valid + public BillingAccountRef getBillingAccount() { + return billingAccount; + } + + public void setBillingAccount(BillingAccountRef billingAccount) { + this.billingAccount = billingAccount; + } + + public ProductOrderUpdate channel(List channel) { + this.channel = channel; + return this; + } + + public ProductOrderUpdate addChannelItem(RelatedChannel channelItem) { + if (this.channel == null) { + this.channel = new ArrayList<>(); + } + this.channel.add(channelItem); + return this; + } + + /** + * Get channel + * @return channel + **/ + @Schema(description = "") + @Valid + public List getChannel() { + return channel; + } + + public void setChannel(List channel) { + this.channel = channel; + } + + public ProductOrderUpdate note(List note) { + this.note = note; + return this; + } + + public ProductOrderUpdate addNoteItem(Note noteItem) { + if (this.note == null) { + this.note = new ArrayList<>(); + } + this.note.add(noteItem); + return this; + } + + /** + * Get note + * @return note + **/ + @Schema(description = "") + @Valid + public List getNote() { + return note; + } + + public void setNote(List note) { + this.note = note; + } + + public ProductOrderUpdate orderTotalPrice(List orderTotalPrice) { + this.orderTotalPrice = orderTotalPrice; + return this; + } + + public ProductOrderUpdate addOrderTotalPriceItem(OrderPrice orderTotalPriceItem) { + if (this.orderTotalPrice == null) { + this.orderTotalPrice = new ArrayList<>(); + } + this.orderTotalPrice.add(orderTotalPriceItem); + return this; + } + + /** + * Get orderTotalPrice + * @return orderTotalPrice + **/ + @Schema(description = "") + @Valid + public List getOrderTotalPrice() { + return orderTotalPrice; + } + + public void setOrderTotalPrice(List orderTotalPrice) { + this.orderTotalPrice = orderTotalPrice; + } + + public ProductOrderUpdate payment(List payment) { + this.payment = payment; + return this; + } + + public ProductOrderUpdate addPaymentItem(PaymentRef paymentItem) { + if (this.payment == null) { + this.payment = new ArrayList<>(); + } + this.payment.add(paymentItem); + return this; + } + + /** + * Get payment + * @return payment + **/ + @Schema(description = "") + @Valid + public List getPayment() { + return payment; + } + + public void setPayment(List payment) { + this.payment = payment; + } + + public ProductOrderUpdate productOfferingQualification(List productOfferingQualification) { + this.productOfferingQualification = productOfferingQualification; + return this; + } + + public ProductOrderUpdate addProductOfferingQualificationItem(ProductOfferingQualificationRef productOfferingQualificationItem) { + if (this.productOfferingQualification == null) { + this.productOfferingQualification = new ArrayList<>(); + } + this.productOfferingQualification.add(productOfferingQualificationItem); + return this; + } + + /** + * Get productOfferingQualification + * @return productOfferingQualification + **/ + @Schema(description = "") + @Valid + public List getProductOfferingQualification() { + return productOfferingQualification; + } + + public void setProductOfferingQualification(List productOfferingQualification) { + this.productOfferingQualification = productOfferingQualification; + } + + public ProductOrderUpdate productOrderItem(List productOrderItem) { + this.productOrderItem = productOrderItem; + return this; + } + + public ProductOrderUpdate addProductOrderItemItem(ProductOrderItem productOrderItemItem) { + this.productOrderItem.add(productOrderItemItem); + return this; + } + + /** + * Get productOrderItem + * @return productOrderItem + **/ + @Schema(description = "") + @NotNull + @Valid + @Size(min=1) public List getProductOrderItem() { + return productOrderItem; + } + + public void setProductOrderItem(List productOrderItem) { + this.productOrderItem = productOrderItem; + } + + public ProductOrderUpdate quote(List quote) { + this.quote = quote; + return this; + } + + public ProductOrderUpdate addQuoteItem(QuoteRef quoteItem) { + if (this.quote == null) { + this.quote = new ArrayList<>(); + } + this.quote.add(quoteItem); + return this; + } + + /** + * Get quote + * @return quote + **/ + @Schema(description = "") + @Valid + public List getQuote() { + return quote; + } + + public void setQuote(List quote) { + this.quote = quote; + } + + public ProductOrderUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ProductOrderUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + @Valid + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public ProductOrderUpdate state(ProductOrderStateType state) { + this.state = state; + return this; + } + + /** + * Get state + * @return state + **/ + @Schema(description = "") + + @Valid + public ProductOrderStateType getState() { + return state; + } + + public void setState(ProductOrderStateType state) { + this.state = state; + } + + public ProductOrderUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public ProductOrderUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductOrderUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOrderUpdate productOrderUpdate = (ProductOrderUpdate) o; + return Objects.equals(this.cancellationDate, productOrderUpdate.cancellationDate) && + Objects.equals(this.cancellationReason, productOrderUpdate.cancellationReason) && + Objects.equals(this.category, productOrderUpdate.category) && + Objects.equals(this.completionDate, productOrderUpdate.completionDate) && + Objects.equals(this.description, productOrderUpdate.description) && + Objects.equals(this.expectedCompletionDate, productOrderUpdate.expectedCompletionDate) && + Objects.equals(this.externalId, productOrderUpdate.externalId) && + Objects.equals(this.notificationContact, productOrderUpdate.notificationContact) && + Objects.equals(this.priority, productOrderUpdate.priority) && + Objects.equals(this.requestedCompletionDate, productOrderUpdate.requestedCompletionDate) && + Objects.equals(this.requestedStartDate, productOrderUpdate.requestedStartDate) && + Objects.equals(this.agreement, productOrderUpdate.agreement) && + Objects.equals(this.billingAccount, productOrderUpdate.billingAccount) && + Objects.equals(this.channel, productOrderUpdate.channel) && + Objects.equals(this.note, productOrderUpdate.note) && + Objects.equals(this.orderTotalPrice, productOrderUpdate.orderTotalPrice) && + Objects.equals(this.payment, productOrderUpdate.payment) && + Objects.equals(this.productOfferingQualification, productOrderUpdate.productOfferingQualification) && + Objects.equals(this.productOrderItem, productOrderUpdate.productOrderItem) && + Objects.equals(this.quote, productOrderUpdate.quote) && + Objects.equals(this.relatedParty, productOrderUpdate.relatedParty) && + Objects.equals(this.state, productOrderUpdate.state) && + Objects.equals(this.baseType, productOrderUpdate.baseType) && + Objects.equals(this.schemaLocation, productOrderUpdate.schemaLocation) && + Objects.equals(this.type, productOrderUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(cancellationDate, cancellationReason, category, completionDate, description, expectedCompletionDate, externalId, notificationContact, priority, requestedCompletionDate, requestedStartDate, agreement, billingAccount, channel, note, orderTotalPrice, payment, productOfferingQualification, productOrderItem, quote, relatedParty, state, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOrderUpdate {\n"); + + sb.append(" cancellationDate: ").append(toIndentedString(cancellationDate)).append("\n"); + sb.append(" cancellationReason: ").append(toIndentedString(cancellationReason)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" expectedCompletionDate: ").append(toIndentedString(expectedCompletionDate)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" notificationContact: ").append(toIndentedString(notificationContact)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" requestedCompletionDate: ").append(toIndentedString(requestedCompletionDate)).append("\n"); + sb.append(" requestedStartDate: ").append(toIndentedString(requestedStartDate)).append("\n"); + sb.append(" agreement: ").append(toIndentedString(agreement)).append("\n"); + sb.append(" billingAccount: ").append(toIndentedString(billingAccount)).append("\n"); + sb.append(" channel: ").append(toIndentedString(channel)).append("\n"); + sb.append(" note: ").append(toIndentedString(note)).append("\n"); + sb.append(" orderTotalPrice: ").append(toIndentedString(orderTotalPrice)).append("\n"); + sb.append(" payment: ").append(toIndentedString(payment)).append("\n"); + sb.append(" productOfferingQualification: ").append(toIndentedString(productOfferingQualification)).append("\n"); + sb.append(" productOrderItem: ").append(toIndentedString(productOrderItem)).append("\n"); + sb.append(" quote: ").append(toIndentedString(quote)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductPrice.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductPrice.java new file mode 100644 index 0000000..58f6b58 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductPrice.java @@ -0,0 +1,379 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * An amount, usually of money, that represents the actual price paid by a Customer for a purchase, a rent or a lease of a Product. The price is valid for a defined period of time. + */ +@Schema(description = "An amount, usually of money, that represents the actual price paid by a Customer for a purchase, a rent or a lease of a Product. The price is valid for a defined period of time.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductPrice { + @JsonProperty("description") + private String description = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("priceType") + private String priceType = null; + + @JsonProperty("recurringChargePeriod") + private String recurringChargePeriod = null; + + @JsonProperty("unitOfMeasure") + private String unitOfMeasure = null; + + @JsonProperty("billingAccount") + private BillingAccountRef billingAccount = null; + + @JsonProperty("price") + private Price price = null; + + @JsonProperty("productOfferingPrice") + private ProductOfferingPriceRef productOfferingPrice = null; + + @JsonProperty("productPriceAlteration") + @Valid + private List productPriceAlteration = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ProductPrice description(String description) { + this.description = description; + return this; + } + + /** + * A narrative that explains in detail the semantics of this product price. + * @return description + **/ + @Schema(description = "A narrative that explains in detail the semantics of this product price.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductPrice name(String name) { + this.name = name; + return this; + } + + /** + * A short descriptive name such as \"Subscription price\". + * @return name + **/ + @Schema(description = "A short descriptive name such as \"Subscription price\".") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ProductPrice priceType(String priceType) { + this.priceType = priceType; + return this; + } + + /** + * A category that describes the price, such as recurring, discount, allowance, penalty, and so forth. + * @return priceType + **/ + @Schema(description = "A category that describes the price, such as recurring, discount, allowance, penalty, and so forth.") + @NotNull + + public String getPriceType() { + return priceType; + } + + public void setPriceType(String priceType) { + this.priceType = priceType; + } + + public ProductPrice recurringChargePeriod(String recurringChargePeriod) { + this.recurringChargePeriod = recurringChargePeriod; + return this; + } + + /** + * Could be month, week... + * @return recurringChargePeriod + **/ + @Schema(description = "Could be month, week...") + + public String getRecurringChargePeriod() { + return recurringChargePeriod; + } + + public void setRecurringChargePeriod(String recurringChargePeriod) { + this.recurringChargePeriod = recurringChargePeriod; + } + + public ProductPrice unitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + return this; + } + + /** + * Could be minutes, GB... + * @return unitOfMeasure + **/ + @Schema(description = "Could be minutes, GB...") + + public String getUnitOfMeasure() { + return unitOfMeasure; + } + + public void setUnitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + } + + public ProductPrice billingAccount(BillingAccountRef billingAccount) { + this.billingAccount = billingAccount; + return this; + } + + /** + * Get billingAccount + * @return billingAccount + **/ + @Schema(description = "") + + @Valid + public BillingAccountRef getBillingAccount() { + return billingAccount; + } + + public void setBillingAccount(BillingAccountRef billingAccount) { + this.billingAccount = billingAccount; + } + + public ProductPrice price(Price price) { + this.price = price; + return this; + } + + /** + * Get price + * @return price + **/ + @Schema(description = "") + @NotNull + + @Valid + public Price getPrice() { + return price; + } + + public void setPrice(Price price) { + this.price = price; + } + + public ProductPrice productOfferingPrice(ProductOfferingPriceRef productOfferingPrice) { + this.productOfferingPrice = productOfferingPrice; + return this; + } + + /** + * Get productOfferingPrice + * @return productOfferingPrice + **/ + @Schema(description = "") + + @Valid + public ProductOfferingPriceRef getProductOfferingPrice() { + return productOfferingPrice; + } + + public void setProductOfferingPrice(ProductOfferingPriceRef productOfferingPrice) { + this.productOfferingPrice = productOfferingPrice; + } + + public ProductPrice productPriceAlteration(List productPriceAlteration) { + this.productPriceAlteration = productPriceAlteration; + return this; + } + + public ProductPrice addProductPriceAlterationItem(PriceAlteration productPriceAlterationItem) { + if (this.productPriceAlteration == null) { + this.productPriceAlteration = new ArrayList<>(); + } + this.productPriceAlteration.add(productPriceAlterationItem); + return this; + } + + /** + * Get productPriceAlteration + * @return productPriceAlteration + **/ + @Schema(description = "") + @Valid + public List getProductPriceAlteration() { + return productPriceAlteration; + } + + public void setProductPriceAlteration(List productPriceAlteration) { + this.productPriceAlteration = productPriceAlteration; + } + + public ProductPrice baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public ProductPrice schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductPrice type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductPrice productPrice = (ProductPrice) o; + return Objects.equals(this.description, productPrice.description) && + Objects.equals(this.name, productPrice.name) && + Objects.equals(this.priceType, productPrice.priceType) && + Objects.equals(this.recurringChargePeriod, productPrice.recurringChargePeriod) && + Objects.equals(this.unitOfMeasure, productPrice.unitOfMeasure) && + Objects.equals(this.billingAccount, productPrice.billingAccount) && + Objects.equals(this.price, productPrice.price) && + Objects.equals(this.productOfferingPrice, productPrice.productOfferingPrice) && + Objects.equals(this.productPriceAlteration, productPrice.productPriceAlteration) && + Objects.equals(this.baseType, productPrice.baseType) && + Objects.equals(this.schemaLocation, productPrice.schemaLocation) && + Objects.equals(this.type, productPrice.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, name, priceType, recurringChargePeriod, unitOfMeasure, billingAccount, price, productOfferingPrice, productPriceAlteration, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductPrice {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" priceType: ").append(toIndentedString(priceType)).append("\n"); + sb.append(" recurringChargePeriod: ").append(toIndentedString(recurringChargePeriod)).append("\n"); + sb.append(" unitOfMeasure: ").append(toIndentedString(unitOfMeasure)).append("\n"); + sb.append(" billingAccount: ").append(toIndentedString(billingAccount)).append("\n"); + sb.append(" price: ").append(toIndentedString(price)).append("\n"); + sb.append(" productOfferingPrice: ").append(toIndentedString(productOfferingPrice)).append("\n"); + sb.append(" productPriceAlteration: ").append(toIndentedString(productPriceAlteration)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductRef.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductRef.java new file mode 100644 index 0000000..92d6d9c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductRef.java @@ -0,0 +1,242 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * ProductRef + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public ProductRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ProductRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public ProductRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public ProductRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductRef productRef = (ProductRef) o; + return Objects.equals(this.id, productRef.id) && + Objects.equals(this.href, productRef.href) && + Objects.equals(this.name, productRef.name) && + Objects.equals(this.baseType, productRef.baseType) && + Objects.equals(this.schemaLocation, productRef.schemaLocation) && + Objects.equals(this.type, productRef.type) && + Objects.equals(this._atReferredType, productRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductRefOrValue.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductRefOrValue.java new file mode 100644 index 0000000..c77a6ed --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductRefOrValue.java @@ -0,0 +1,880 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.service.ResourceRef; +import org.etsi.osl.tmf.common.model.service.ServiceRef; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * A product to be created defined by value or existing defined by reference. The polymorphic attributes @type, @schemaLocation & @referredType are related to the product entity and not the RelatedProductRefOrValue class itself + */ +@Schema(description = "A product to be created defined by value or existing defined by reference. The polymorphic attributes @type, @schemaLocation & @referredType are related to the product entity and not the RelatedProductRefOrValue class itself") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductRefOrValue { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("isBundle") + private Boolean isBundle = null; + + @JsonProperty("isCustomerVisible") + private Boolean isCustomerVisible = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("orderDate") + private OffsetDateTime orderDate = null; + + @JsonProperty("productSerialNumber") + private String productSerialNumber = null; + + @JsonProperty("startDate") + private OffsetDateTime startDate = null; + + @JsonProperty("terminationDate") + private OffsetDateTime terminationDate = null; + + @JsonProperty("agreement") + @Valid + private List agreement = null; + + @JsonProperty("billingAccount") + private BillingAccountRef billingAccount = null; + + @JsonProperty("place") + @Valid + private List place = null; + + @JsonProperty("product") + @Valid + private List product = null; + + @JsonProperty("productCharacteristic") + @Valid + private List productCharacteristic = null; + + @JsonProperty("productOffering") + private ProductOfferingRef productOffering = null; + + @JsonProperty("productOrderItem") + @Valid + private List productOrderItem = null; + + @JsonProperty("productPrice") + @Valid + private List productPrice = null; + + @JsonProperty("productRelationship") + @Valid + private List productRelationship = null; + + @JsonProperty("productSpecification") + private ProductSpecificationRef productSpecification = null; + + @JsonProperty("productTerm") + @Valid + private List productTerm = null; + + @JsonProperty("realizingResource") + @Valid + private List realizingResource = null; + + @JsonProperty("realizingService") + @Valid + private List realizingService = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @JsonProperty("status") + private ProductStatusType status = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public ProductRefOrValue id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the product + * @return id + **/ + @Schema(description = "Unique identifier of the product") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductRefOrValue href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the product + * @return href + **/ + @Schema(description = "Reference of the product") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductRefOrValue description(String description) { + this.description = description; + return this; + } + + /** + * Is the description of the product. It could be copied from the description of the Product Offering. + * @return description + **/ + @Schema(description = "Is the description of the product. It could be copied from the description of the Product Offering.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductRefOrValue isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * If true, the product is a ProductBundle which is an instantiation of a BundledProductOffering. If false, the product is a ProductComponent which is an instantiation of a SimpleProductOffering. + * @return isBundle + **/ + @Schema(description = "If true, the product is a ProductBundle which is an instantiation of a BundledProductOffering. If false, the product is a ProductComponent which is an instantiation of a SimpleProductOffering.") + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + public ProductRefOrValue isCustomerVisible(Boolean isCustomerVisible) { + this.isCustomerVisible = isCustomerVisible; + return this; + } + + /** + * If true, the product is visible by the customer. + * @return isCustomerVisible + **/ + @Schema(description = "If true, the product is visible by the customer.") + + public Boolean isIsCustomerVisible() { + return isCustomerVisible; + } + + public void setIsCustomerVisible(Boolean isCustomerVisible) { + this.isCustomerVisible = isCustomerVisible; + } + + public ProductRefOrValue name(String name) { + this.name = name; + return this; + } + + /** + * Name of the product. It could be the same as the name of the product offering + * @return name + **/ + @Schema(description = "Name of the product. It could be the same as the name of the product offering") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ProductRefOrValue orderDate(OffsetDateTime orderDate) { + this.orderDate = orderDate; + return this; + } + + /** + * Is the date when the product was ordered + * @return orderDate + **/ + @Schema(description = "Is the date when the product was ordered") + + @Valid + public OffsetDateTime getOrderDate() { + return orderDate; + } + + public void setOrderDate(OffsetDateTime orderDate) { + this.orderDate = orderDate; + } + + public ProductRefOrValue productSerialNumber(String productSerialNumber) { + this.productSerialNumber = productSerialNumber; + return this; + } + + /** + * Is the serial number for the product. This is typically applicable to tangible products e.g. Broadband Router. + * @return productSerialNumber + **/ + @Schema(description = "Is the serial number for the product. This is typically applicable to tangible products e.g. Broadband Router.") + + public String getProductSerialNumber() { + return productSerialNumber; + } + + public void setProductSerialNumber(String productSerialNumber) { + this.productSerialNumber = productSerialNumber; + } + + public ProductRefOrValue startDate(OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Is the date from which the product starts + * @return startDate + **/ + @Schema(description = "Is the date from which the product starts") + + @Valid + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; + } + + public ProductRefOrValue terminationDate(OffsetDateTime terminationDate) { + this.terminationDate = terminationDate; + return this; + } + + /** + * Is the date when the product was terminated + * @return terminationDate + **/ + @Schema(description = "Is the date when the product was terminated") + + @Valid + public OffsetDateTime getTerminationDate() { + return terminationDate; + } + + public void setTerminationDate(OffsetDateTime terminationDate) { + this.terminationDate = terminationDate; + } + + public ProductRefOrValue agreement(List agreement) { + this.agreement = agreement; + return this; + } + + public ProductRefOrValue addAgreementItem(AgreementItemRef agreementItem) { + if (this.agreement == null) { + this.agreement = new ArrayList<>(); + } + this.agreement.add(agreementItem); + return this; + } + + /** + * Get agreement + * @return agreement + **/ + @Schema(description = "") + @Valid + public List getAgreement() { + return agreement; + } + + public void setAgreement(List agreement) { + this.agreement = agreement; + } + + public ProductRefOrValue billingAccount(BillingAccountRef billingAccount) { + this.billingAccount = billingAccount; + return this; + } + + /** + * Get billingAccount + * @return billingAccount + **/ + @Schema(description = "") + + @Valid + public BillingAccountRef getBillingAccount() { + return billingAccount; + } + + public void setBillingAccount(BillingAccountRef billingAccount) { + this.billingAccount = billingAccount; + } + + public ProductRefOrValue place(List place) { + this.place = place; + return this; + } + + public ProductRefOrValue addPlaceItem(RelatedPlaceRefOrValue placeItem) { + if (this.place == null) { + this.place = new ArrayList<>(); + } + this.place.add(placeItem); + return this; + } + + /** + * Get place + * @return place + **/ + @Schema(description = "") + @Valid + public List getPlace() { + return place; + } + + public void setPlace(List place) { + this.place = place; + } + + public ProductRefOrValue product(List product) { + this.product = product; + return this; + } + + public ProductRefOrValue addProductItem(ProductRefOrValue productItem) { + if (this.product == null) { + this.product = new ArrayList<>(); + } + this.product.add(productItem); + return this; + } + + /** + * Get product + * @return product + **/ + @Schema(description = "") + @Valid + public List getProduct() { + return product; + } + + public void setProduct(List product) { + this.product = product; + } + + public ProductRefOrValue productCharacteristic(List productCharacteristic) { + this.productCharacteristic = productCharacteristic; + return this; + } + + public ProductRefOrValue addProductCharacteristicItem(Characteristic productCharacteristicItem) { + if (this.productCharacteristic == null) { + this.productCharacteristic = new ArrayList<>(); + } + this.productCharacteristic.add(productCharacteristicItem); + return this; + } + + /** + * Get productCharacteristic + * @return productCharacteristic + **/ + @Schema(description = "") + @Valid + public List getProductCharacteristic() { + return productCharacteristic; + } + + public void setProductCharacteristic(List productCharacteristic) { + this.productCharacteristic = productCharacteristic; + } + + public ProductRefOrValue productOffering(ProductOfferingRef productOffering) { + this.productOffering = productOffering; + return this; + } + + /** + * Get productOffering + * @return productOffering + **/ + @Schema(description = "") + + @Valid + public ProductOfferingRef getProductOffering() { + return productOffering; + } + + public void setProductOffering(ProductOfferingRef productOffering) { + this.productOffering = productOffering; + } + + public ProductRefOrValue productOrderItem(List productOrderItem) { + this.productOrderItem = productOrderItem; + return this; + } + + public ProductRefOrValue addProductOrderItemItem(RelatedProductOrderItem productOrderItemItem) { + if (this.productOrderItem == null) { + this.productOrderItem = new ArrayList<>(); + } + this.productOrderItem.add(productOrderItemItem); + return this; + } + + /** + * Get productOrderItem + * @return productOrderItem + **/ + @Schema(description = "") + @Valid + public List getProductOrderItem() { + return productOrderItem; + } + + public void setProductOrderItem(List productOrderItem) { + this.productOrderItem = productOrderItem; + } + + public ProductRefOrValue productPrice(List productPrice) { + this.productPrice = productPrice; + return this; + } + + public ProductRefOrValue addProductPriceItem(ProductPrice productPriceItem) { + if (this.productPrice == null) { + this.productPrice = new ArrayList<>(); + } + this.productPrice.add(productPriceItem); + return this; + } + + /** + * Get productPrice + * @return productPrice + **/ + @Schema(description = "") + @Valid + public List getProductPrice() { + return productPrice; + } + + public void setProductPrice(List productPrice) { + this.productPrice = productPrice; + } + + public ProductRefOrValue productRelationship(List productRelationship) { + this.productRelationship = productRelationship; + return this; + } + + public ProductRefOrValue addProductRelationshipItem(ProductRelationship productRelationshipItem) { + if (this.productRelationship == null) { + this.productRelationship = new ArrayList<>(); + } + this.productRelationship.add(productRelationshipItem); + return this; + } + + /** + * Get productRelationship + * @return productRelationship + **/ + @Schema(description = "") + @Valid + public List getProductRelationship() { + return productRelationship; + } + + public void setProductRelationship(List productRelationship) { + this.productRelationship = productRelationship; + } + + public ProductRefOrValue productSpecification(ProductSpecificationRef productSpecification) { + this.productSpecification = productSpecification; + return this; + } + + /** + * Get productSpecification + * @return productSpecification + **/ + @Schema(description = "") + + @Valid + public ProductSpecificationRef getProductSpecification() { + return productSpecification; + } + + public void setProductSpecification(ProductSpecificationRef productSpecification) { + this.productSpecification = productSpecification; + } + + public ProductRefOrValue productTerm(List productTerm) { + this.productTerm = productTerm; + return this; + } + + public ProductRefOrValue addProductTermItem(ProductTerm productTermItem) { + if (this.productTerm == null) { + this.productTerm = new ArrayList<>(); + } + this.productTerm.add(productTermItem); + return this; + } + + /** + * Get productTerm + * @return productTerm + **/ + @Schema(description = "") + @Valid + public List getProductTerm() { + return productTerm; + } + + public void setProductTerm(List productTerm) { + this.productTerm = productTerm; + } + + public ProductRefOrValue realizingResource(List realizingResource) { + this.realizingResource = realizingResource; + return this; + } + + public ProductRefOrValue addRealizingResourceItem(ResourceRef realizingResourceItem) { + if (this.realizingResource == null) { + this.realizingResource = new ArrayList<>(); + } + this.realizingResource.add(realizingResourceItem); + return this; + } + + /** + * Get realizingResource + * @return realizingResource + **/ + @Schema(description = "") + @Valid + public List getRealizingResource() { + return realizingResource; + } + + public void setRealizingResource(List realizingResource) { + this.realizingResource = realizingResource; + } + + public ProductRefOrValue realizingService(List realizingService) { + this.realizingService = realizingService; + return this; + } + + public ProductRefOrValue addRealizingServiceItem(ServiceRef realizingServiceItem) { + if (this.realizingService == null) { + this.realizingService = new ArrayList<>(); + } + this.realizingService.add(realizingServiceItem); + return this; + } + + /** + * Get realizingService + * @return realizingService + **/ + @Schema(description = "") + @Valid + public List getRealizingService() { + return realizingService; + } + + public void setRealizingService(List realizingService) { + this.realizingService = realizingService; + } + + public ProductRefOrValue relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ProductRefOrValue addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + @Valid + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public ProductRefOrValue status(ProductStatusType status) { + this.status = status; + return this; + } + + /** + * Get status + * @return status + **/ + @Schema(description = "") + + @Valid + public ProductStatusType getStatus() { + return status; + } + + public void setStatus(ProductStatusType status) { + this.status = status; + } + + public ProductRefOrValue baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public ProductRefOrValue schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductRefOrValue type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public ProductRefOrValue _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductRefOrValue productRefOrValue = (ProductRefOrValue) o; + return Objects.equals(this.id, productRefOrValue.id) && + Objects.equals(this.href, productRefOrValue.href) && + Objects.equals(this.description, productRefOrValue.description) && + Objects.equals(this.isBundle, productRefOrValue.isBundle) && + Objects.equals(this.isCustomerVisible, productRefOrValue.isCustomerVisible) && + Objects.equals(this.name, productRefOrValue.name) && + Objects.equals(this.orderDate, productRefOrValue.orderDate) && + Objects.equals(this.productSerialNumber, productRefOrValue.productSerialNumber) && + Objects.equals(this.startDate, productRefOrValue.startDate) && + Objects.equals(this.terminationDate, productRefOrValue.terminationDate) && + Objects.equals(this.agreement, productRefOrValue.agreement) && + Objects.equals(this.billingAccount, productRefOrValue.billingAccount) && + Objects.equals(this.place, productRefOrValue.place) && + Objects.equals(this.product, productRefOrValue.product) && + Objects.equals(this.productCharacteristic, productRefOrValue.productCharacteristic) && + Objects.equals(this.productOffering, productRefOrValue.productOffering) && + Objects.equals(this.productOrderItem, productRefOrValue.productOrderItem) && + Objects.equals(this.productPrice, productRefOrValue.productPrice) && + Objects.equals(this.productRelationship, productRefOrValue.productRelationship) && + Objects.equals(this.productSpecification, productRefOrValue.productSpecification) && + Objects.equals(this.productTerm, productRefOrValue.productTerm) && + Objects.equals(this.realizingResource, productRefOrValue.realizingResource) && + Objects.equals(this.realizingService, productRefOrValue.realizingService) && + Objects.equals(this.relatedParty, productRefOrValue.relatedParty) && + Objects.equals(this.status, productRefOrValue.status) && + Objects.equals(this.baseType, productRefOrValue.baseType) && + Objects.equals(this.schemaLocation, productRefOrValue.schemaLocation) && + Objects.equals(this.type, productRefOrValue.type) && + Objects.equals(this._atReferredType, productRefOrValue._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, description, isBundle, isCustomerVisible, name, orderDate, productSerialNumber, startDate, terminationDate, agreement, billingAccount, place, product, productCharacteristic, productOffering, productOrderItem, productPrice, productRelationship, productSpecification, productTerm, realizingResource, realizingService, relatedParty, status, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductRefOrValue {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" isCustomerVisible: ").append(toIndentedString(isCustomerVisible)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" orderDate: ").append(toIndentedString(orderDate)).append("\n"); + sb.append(" productSerialNumber: ").append(toIndentedString(productSerialNumber)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" terminationDate: ").append(toIndentedString(terminationDate)).append("\n"); + sb.append(" agreement: ").append(toIndentedString(agreement)).append("\n"); + sb.append(" billingAccount: ").append(toIndentedString(billingAccount)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" product: ").append(toIndentedString(product)).append("\n"); + sb.append(" productCharacteristic: ").append(toIndentedString(productCharacteristic)).append("\n"); + sb.append(" productOffering: ").append(toIndentedString(productOffering)).append("\n"); + sb.append(" productOrderItem: ").append(toIndentedString(productOrderItem)).append("\n"); + sb.append(" productPrice: ").append(toIndentedString(productPrice)).append("\n"); + sb.append(" productRelationship: ").append(toIndentedString(productRelationship)).append("\n"); + sb.append(" productSpecification: ").append(toIndentedString(productSpecification)).append("\n"); + sb.append(" productTerm: ").append(toIndentedString(productTerm)).append("\n"); + sb.append(" realizingResource: ").append(toIndentedString(realizingResource)).append("\n"); + sb.append(" realizingService: ").append(toIndentedString(realizingService)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductRelationship.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductRelationship.java new file mode 100644 index 0000000..309c363 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductRelationship.java @@ -0,0 +1,198 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Linked products to the one instantiate, such as [bundled] if the product is a bundle and you want to describe the bundled products inside this bundle; [reliesOn] if the product needs another already owned product to rely on (e.g. an option on an already owned mobile access product) [targets] or [isTargeted] (depending on the way of expressing the link) for any other kind of links that may be useful + */ +@Schema(description = "Linked products to the one instantiate, such as [bundled] if the product is a bundle and you want to describe the bundled products inside this bundle; [reliesOn] if the product needs another already owned product to rely on (e.g. an option on an already owned mobile access product) [targets] or [isTargeted] (depending on the way of expressing the link) for any other kind of links that may be useful") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductRelationship { + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("product") + private ProductRefOrValue product = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ProductRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * Type of the product relationship, such as [bundled] if the product is a bundle and you want to describe the bundled products inside this bundle; [reliesOn] if the product needs another already owned product to rely on (e.g. an option on an already owned mobile access product) [targets] or [isTargeted] (depending on the way of expressing the link) for any other kind of links that may be useful + * @return relationshipType + **/ + @Schema(description = "Type of the product relationship, such as [bundled] if the product is a bundle and you want to describe the bundled products inside this bundle; [reliesOn] if the product needs another already owned product to rely on (e.g. an option on an already owned mobile access product) [targets] or [isTargeted] (depending on the way of expressing the link) for any other kind of links that may be useful") + @NotNull + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public ProductRelationship product(ProductRefOrValue product) { + this.product = product; + return this; + } + + /** + * Get product + * @return product + **/ + @Schema(description = "") + @NotNull + + @Valid + public ProductRefOrValue getProduct() { + return product; + } + + public void setProduct(ProductRefOrValue product) { + this.product = product; + } + + public ProductRelationship baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public ProductRelationship schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductRelationship type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductRelationship productRelationship = (ProductRelationship) o; + return Objects.equals(this.relationshipType, productRelationship.relationshipType) && + Objects.equals(this.product, productRelationship.product) && + Objects.equals(this.baseType, productRelationship.baseType) && + Objects.equals(this.schemaLocation, productRelationship.schemaLocation) && + Objects.equals(this.type, productRelationship.type); + } + + @Override + public int hashCode() { + return Objects.hash(relationshipType, product, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductRelationship {\n"); + + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" product: ").append(toIndentedString(product)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductSpecificationRef.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductSpecificationRef.java new file mode 100644 index 0000000..02b30f6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductSpecificationRef.java @@ -0,0 +1,293 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Product specification reference: A ProductSpecification is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role. + */ +@Schema(description = "Product specification reference: A ProductSpecification is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductSpecificationRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("version") + private String version = null; + + @JsonProperty("targetProductSchema") + private TargetProductSchema targetProductSchema = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public ProductSpecificationRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductSpecificationRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductSpecificationRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ProductSpecificationRef version(String version) { + this.version = version; + return this; + } + + /** + * Version of the product specification + * @return version + **/ + @Schema(description = "Version of the product specification") + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public ProductSpecificationRef targetProductSchema(TargetProductSchema targetProductSchema) { + this.targetProductSchema = targetProductSchema; + return this; + } + + /** + * Get targetProductSchema + * @return targetProductSchema + **/ + @Schema(description = "") + + @Valid + public TargetProductSchema getTargetProductSchema() { + return targetProductSchema; + } + + public void setTargetProductSchema(TargetProductSchema targetProductSchema) { + this.targetProductSchema = targetProductSchema; + } + + public ProductSpecificationRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public ProductSpecificationRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductSpecificationRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public ProductSpecificationRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductSpecificationRef productSpecificationRef = (ProductSpecificationRef) o; + return Objects.equals(this.id, productSpecificationRef.id) && + Objects.equals(this.href, productSpecificationRef.href) && + Objects.equals(this.name, productSpecificationRef.name) && + Objects.equals(this.version, productSpecificationRef.version) && + Objects.equals(this.targetProductSchema, productSpecificationRef.targetProductSchema) && + Objects.equals(this.baseType, productSpecificationRef.baseType) && + Objects.equals(this.schemaLocation, productSpecificationRef.schemaLocation) && + Objects.equals(this.type, productSpecificationRef.type) && + Objects.equals(this._atReferredType, productSpecificationRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, version, targetProductSchema, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductSpecificationRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" targetProductSchema: ").append(toIndentedString(targetProductSchema)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductStatusType.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductStatusType.java new file mode 100644 index 0000000..a5717e0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductStatusType.java @@ -0,0 +1,59 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Possible values for the status of the product + */ +public enum ProductStatusType { + CREATED("created"), + PENDINGACTIVE("pendingActive"), + CANCELLED("cancelled"), + ACTIVE("active"), + PENDINGTERMINATE("pendingTerminate"), + TERMINATED("terminated"), + SUSPENDED("suspended"), + ABORTED_("aborted "); + + private String value; + + ProductStatusType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ProductStatusType fromValue(String text) { + for (ProductStatusType b : ProductStatusType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/ProductTerm.java b/src/main/java/org/etsi/osl/tmf/po622/model/ProductTerm.java new file mode 100644 index 0000000..b43c089 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/ProductTerm.java @@ -0,0 +1,244 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Quantity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Description of a productTerm linked to this product. This represent a commitment with a duration + */ +@Schema(description = "Description of a productTerm linked to this product. This represent a commitment with a duration") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class ProductTerm { + @JsonProperty("description") + private String description = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("duration") + private Quantity duration = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ProductTerm description(String description) { + this.description = description; + return this; + } + + /** + * Description of the productTerm + * @return description + **/ + @Schema(description = "Description of the productTerm") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ProductTerm name(String name) { + this.name = name; + return this; + } + + /** + * Name of the productTerm + * @return name + **/ + @Schema(description = "Name of the productTerm") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ProductTerm duration(Quantity duration) { + this.duration = duration; + return this; + } + + /** + * Get duration + * @return duration + **/ + @Schema(description = "") + + @Valid + public Quantity getDuration() { + return duration; + } + + public void setDuration(Quantity duration) { + this.duration = duration; + } + + public ProductTerm validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ProductTerm baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public ProductTerm schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ProductTerm type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductTerm productTerm = (ProductTerm) o; + return Objects.equals(this.description, productTerm.description) && + Objects.equals(this.name, productTerm.name) && + Objects.equals(this.duration, productTerm.duration) && + Objects.equals(this.validFor, productTerm.validFor) && + Objects.equals(this.baseType, productTerm.baseType) && + Objects.equals(this.schemaLocation, productTerm.schemaLocation) && + Objects.equals(this.type, productTerm.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, name, duration, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductTerm {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" duration: ").append(toIndentedString(duration)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/QuoteItemRef.java b/src/main/java/org/etsi/osl/tmf/po622/model/QuoteItemRef.java new file mode 100644 index 0000000..9ce513c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/QuoteItemRef.java @@ -0,0 +1,316 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * It's a Quote item that has been executed previously. + */ +@Schema(description = "It's a Quote item that has been executed previously.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class QuoteItemRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("quoteHref") + private String quoteHref = null; + + @JsonProperty("quoteId") + private String quoteId = null; + + @JsonProperty("quoteName") + private String quoteName = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public QuoteItemRef id(String id) { + this.id = id; + return this; + } + + /** + * Id of an item of a quote + * @return id + **/ + @Schema(description = "Id of an item of a quote") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public QuoteItemRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public QuoteItemRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public QuoteItemRef quoteHref(String quoteHref) { + this.quoteHref = quoteHref; + return this; + } + + /** + * Reference of the related entity. + * @return quoteHref + **/ + @Schema(description = "Reference of the related entity.") + + public String getQuoteHref() { + return quoteHref; + } + + public void setQuoteHref(String quoteHref) { + this.quoteHref = quoteHref; + } + + public QuoteItemRef quoteId(String quoteId) { + this.quoteId = quoteId; + return this; + } + + /** + * Unique identifier of a related entity. + * @return quoteId + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getQuoteId() { + return quoteId; + } + + public void setQuoteId(String quoteId) { + this.quoteId = quoteId; + } + + public QuoteItemRef quoteName(String quoteName) { + this.quoteName = quoteName; + return this; + } + + /** + * Name of the related entity. + * @return quoteName + **/ + @Schema(description = "Name of the related entity.") + + public String getQuoteName() { + return quoteName; + } + + public void setQuoteName(String quoteName) { + this.quoteName = quoteName; + } + + public QuoteItemRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public QuoteItemRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public QuoteItemRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public QuoteItemRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QuoteItemRef quoteItemRef = (QuoteItemRef) o; + return Objects.equals(this.id, quoteItemRef.id) && + Objects.equals(this.href, quoteItemRef.href) && + Objects.equals(this.name, quoteItemRef.name) && + Objects.equals(this.quoteHref, quoteItemRef.quoteHref) && + Objects.equals(this.quoteId, quoteItemRef.quoteId) && + Objects.equals(this.quoteName, quoteItemRef.quoteName) && + Objects.equals(this.baseType, quoteItemRef.baseType) && + Objects.equals(this.schemaLocation, quoteItemRef.schemaLocation) && + Objects.equals(this.type, quoteItemRef.type) && + Objects.equals(this._atReferredType, quoteItemRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, quoteHref, quoteId, quoteName, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class QuoteItemRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" quoteHref: ").append(toIndentedString(quoteHref)).append("\n"); + sb.append(" quoteId: ").append(toIndentedString(quoteId)).append("\n"); + sb.append(" quoteName: ").append(toIndentedString(quoteName)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/QuoteRef.java b/src/main/java/org/etsi/osl/tmf/po622/model/QuoteRef.java new file mode 100644 index 0000000..39278ba --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/QuoteRef.java @@ -0,0 +1,243 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * It's a Quote that has been executed previously + */ +@Schema(description = "It's a Quote that has been executed previously") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class QuoteRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public QuoteRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public QuoteRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public QuoteRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public QuoteRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public QuoteRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public QuoteRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public QuoteRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QuoteRef quoteRef = (QuoteRef) o; + return Objects.equals(this.id, quoteRef.id) && + Objects.equals(this.href, quoteRef.href) && + Objects.equals(this.name, quoteRef.name) && + Objects.equals(this.baseType, quoteRef.baseType) && + Objects.equals(this.schemaLocation, quoteRef.schemaLocation) && + Objects.equals(this.type, quoteRef.type) && + Objects.equals(this._atReferredType, quoteRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class QuoteRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/RelatedChannel.java b/src/main/java/org/etsi/osl/tmf/po622/model/RelatedChannel.java new file mode 100644 index 0000000..6b82431 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/RelatedChannel.java @@ -0,0 +1,267 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Related channel to another entity. May be online web, mobile app, social ,etc. + */ +@Schema(description = "Related channel to another entity. May be online web, mobile app, social ,etc.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class RelatedChannel { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("role") + private String role = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public RelatedChannel id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public RelatedChannel href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public RelatedChannel name(String name) { + this.name = name; + return this; + } + + /** + * Name of the channel. + * @return name + **/ + @Schema(description = "Name of the channel.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public RelatedChannel role(String role) { + this.role = role; + return this; + } + + /** + * Role playing by the channel. + * @return role + **/ + @Schema(description = "Role playing by the channel.") + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public RelatedChannel baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public RelatedChannel schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public RelatedChannel type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public RelatedChannel _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RelatedChannel relatedChannel = (RelatedChannel) o; + return Objects.equals(this.id, relatedChannel.id) && + Objects.equals(this.href, relatedChannel.href) && + Objects.equals(this.name, relatedChannel.name) && + Objects.equals(this.role, relatedChannel.role) && + Objects.equals(this.baseType, relatedChannel.baseType) && + Objects.equals(this.schemaLocation, relatedChannel.schemaLocation) && + Objects.equals(this.type, relatedChannel.type) && + Objects.equals(this._atReferredType, relatedChannel._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, role, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RelatedChannel {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/RelatedPlaceRefOrValue.java b/src/main/java/org/etsi/osl/tmf/po622/model/RelatedPlaceRefOrValue.java new file mode 100644 index 0000000..36ef614 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/RelatedPlaceRefOrValue.java @@ -0,0 +1,267 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Related Entity reference. A related place defines a place described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the place entity and not the RelatedPlaceRefOrValue class itself + */ +@Schema(description = "Related Entity reference. A related place defines a place described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the place entity and not the RelatedPlaceRefOrValue class itself") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class RelatedPlaceRefOrValue { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("role") + private String role = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public RelatedPlaceRefOrValue id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the place + * @return id + **/ + @Schema(description = "Unique identifier of the place") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public RelatedPlaceRefOrValue href(String href) { + this.href = href; + return this; + } + + /** + * Unique reference of the place + * @return href + **/ + @Schema(description = "Unique reference of the place") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public RelatedPlaceRefOrValue name(String name) { + this.name = name; + return this; + } + + /** + * A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home] + * @return name + **/ + @Schema(description = "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public RelatedPlaceRefOrValue role(String role) { + this.role = role; + return this; + } + + /** + * Get role + * @return role + **/ + @Schema(description = "") + @NotNull + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public RelatedPlaceRefOrValue baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public RelatedPlaceRefOrValue schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public RelatedPlaceRefOrValue type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public RelatedPlaceRefOrValue _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RelatedPlaceRefOrValue relatedPlaceRefOrValue = (RelatedPlaceRefOrValue) o; + return Objects.equals(this.id, relatedPlaceRefOrValue.id) && + Objects.equals(this.href, relatedPlaceRefOrValue.href) && + Objects.equals(this.name, relatedPlaceRefOrValue.name) && + Objects.equals(this.role, relatedPlaceRefOrValue.role) && + Objects.equals(this.baseType, relatedPlaceRefOrValue.baseType) && + Objects.equals(this.schemaLocation, relatedPlaceRefOrValue.schemaLocation) && + Objects.equals(this.type, relatedPlaceRefOrValue.type) && + Objects.equals(this._atReferredType, relatedPlaceRefOrValue._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, role, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RelatedPlaceRefOrValue {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/RelatedProductOrderItem.java b/src/main/java/org/etsi/osl/tmf/po622/model/RelatedProductOrderItem.java new file mode 100644 index 0000000..f9e567e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/RelatedProductOrderItem.java @@ -0,0 +1,292 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * RelatedProductOrderItem (ProductOrder item) .The product order item which triggered product creation/change/termination. + */ +@Schema(description = "RelatedProductOrderItem (ProductOrder item) .The product order item which triggered product creation/change/termination.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class RelatedProductOrderItem { + @JsonProperty("orderItemAction") + private String orderItemAction = null; + + @JsonProperty("orderItemId") + private String orderItemId = null; + + @JsonProperty("productOrderHref") + private String productOrderHref = null; + + @JsonProperty("productOrderId") + private String productOrderId = null; + + @JsonProperty("role") + private String role = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public RelatedProductOrderItem orderItemAction(String orderItemAction) { + this.orderItemAction = orderItemAction; + return this; + } + + /** + * Action of the order item for this product + * @return orderItemAction + **/ + @Schema(description = "Action of the order item for this product") + + public String getOrderItemAction() { + return orderItemAction; + } + + public void setOrderItemAction(String orderItemAction) { + this.orderItemAction = orderItemAction; + } + + public RelatedProductOrderItem orderItemId(String orderItemId) { + this.orderItemId = orderItemId; + return this; + } + + /** + * Identifier of the order item where the product was managed + * @return orderItemId + **/ + @Schema(description = "Identifier of the order item where the product was managed") + @NotNull + + public String getOrderItemId() { + return orderItemId; + } + + public void setOrderItemId(String orderItemId) { + this.orderItemId = orderItemId; + } + + public RelatedProductOrderItem productOrderHref(String productOrderHref) { + this.productOrderHref = productOrderHref; + return this; + } + + /** + * Reference of the related entity. + * @return productOrderHref + **/ + @Schema(description = "Reference of the related entity.") + + public String getProductOrderHref() { + return productOrderHref; + } + + public void setProductOrderHref(String productOrderHref) { + this.productOrderHref = productOrderHref; + } + + public RelatedProductOrderItem productOrderId(String productOrderId) { + this.productOrderId = productOrderId; + return this; + } + + /** + * Unique identifier of a related entity. + * @return productOrderId + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getProductOrderId() { + return productOrderId; + } + + public void setProductOrderId(String productOrderId) { + this.productOrderId = productOrderId; + } + + public RelatedProductOrderItem role(String role) { + this.role = role; + return this; + } + + /** + * role of the product order item for this product + * @return role + **/ + @Schema(description = "role of the product order item for this product") + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public RelatedProductOrderItem baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public RelatedProductOrderItem schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public RelatedProductOrderItem type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public RelatedProductOrderItem _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RelatedProductOrderItem relatedProductOrderItem = (RelatedProductOrderItem) o; + return Objects.equals(this.orderItemAction, relatedProductOrderItem.orderItemAction) && + Objects.equals(this.orderItemId, relatedProductOrderItem.orderItemId) && + Objects.equals(this.productOrderHref, relatedProductOrderItem.productOrderHref) && + Objects.equals(this.productOrderId, relatedProductOrderItem.productOrderId) && + Objects.equals(this.role, relatedProductOrderItem.role) && + Objects.equals(this.baseType, relatedProductOrderItem.baseType) && + Objects.equals(this.schemaLocation, relatedProductOrderItem.schemaLocation) && + Objects.equals(this.type, relatedProductOrderItem.type) && + Objects.equals(this._atReferredType, relatedProductOrderItem._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(orderItemAction, orderItemId, productOrderHref, productOrderId, role, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RelatedProductOrderItem {\n"); + + sb.append(" orderItemAction: ").append(toIndentedString(orderItemAction)).append("\n"); + sb.append(" orderItemId: ").append(toIndentedString(orderItemId)).append("\n"); + sb.append(" productOrderHref: ").append(toIndentedString(productOrderHref)).append("\n"); + sb.append(" productOrderId: ").append(toIndentedString(productOrderId)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/TargetProductSchema.java b/src/main/java/org/etsi/osl/tmf/po622/model/TargetProductSchema.java new file mode 100644 index 0000000..34205af --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/TargetProductSchema.java @@ -0,0 +1,148 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * The reference object to the schema and type of target product which is described by product specification + */ +@Schema(description = "The reference object to the schema and type of target product which is described by product specification") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-10-30T10:29:21.184964400+02:00[Europe/Athens]") +public class TargetProductSchema { + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public TargetProductSchema baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public TargetProductSchema schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * This field provides a link to the schema describing the target product + * @return schemaLocation + **/ + @Schema(description = "This field provides a link to the schema describing the target product") + @NotNull + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public TargetProductSchema type(String type) { + this.type = type; + return this; + } + + /** + * Class type of the target product + * @return type + **/ + @Schema(description = "Class type of the target product") + @NotNull + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TargetProductSchema targetProductSchema = (TargetProductSchema) o; + return Objects.equals(this.baseType, targetProductSchema.baseType) && + Objects.equals(this.schemaLocation, targetProductSchema.schemaLocation) && + Objects.equals(this.type, targetProductSchema.type); + } + + @Override + public int hashCode() { + return Objects.hash(baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TargetProductSchema {\n"); + + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/po622/model/TaskStateType.java b/src/main/java/org/etsi/osl/tmf/po622/model/TaskStateType.java new file mode 100644 index 0000000..de78141 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/po622/model/TaskStateType.java @@ -0,0 +1,55 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.po622.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Possible values for the state of a task + */ +public enum TaskStateType { + ACKNOWLEDGED("acknowledged"), + TERMINATEDWITHERROR("terminatedWithError"), + INPROGRESS("inProgress"), + DONE("done"); + + private String value; + + TaskStateType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static TaskStateType fromValue(String text) { + for (TaskStateType b : TaskStateType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/prm669/api/ApiException.java b/src/main/java/org/etsi/osl/tmf/prm669/api/ApiException.java new file mode 100644 index 0000000..1e4884f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/api/ApiException.java @@ -0,0 +1,30 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/prm669/api/ApiOriginFilter.java b/src/main/java/org/etsi/osl/tmf/prm669/api/ApiOriginFilter.java new file mode 100644 index 0000000..3047c10 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/api/ApiOriginFilter.java @@ -0,0 +1,51 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.api; + +import java.io.IOException; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class ApiOriginFilter implements jakarta.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} diff --git a/src/main/java/org/etsi/osl/tmf/prm669/api/ApiResponseMessage.java b/src/main/java/org/etsi/osl/tmf/prm669/api/ApiResponseMessage.java new file mode 100644 index 0000000..a23ed3d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/api/ApiResponseMessage.java @@ -0,0 +1,89 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.api; + +import jakarta.xml.bind.annotation.XmlTransient; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +@jakarta.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/prm669/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/prm669/api/HubApi.java new file mode 100644 index 0000000..6e5134b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/api/HubApi.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.prm669.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.prm669.model.EventSubscription; +import org.etsi.osl.tmf.prm669.model.EventSubscriptionInput; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +@Tag(name = "hub", description = "the hub API") +public interface HubApi { + + Logger log = LoggerFactory.getLogger(HubApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Register a listener", operationId = "registerListener", description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Subscribed" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Unregister a listener", operationId = "unregisterListener", description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method not allowed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/prm669/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/prm669/api/HubApiController.java new file mode 100644 index 0000000..07db62e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/api/HubApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +@Controller("HubApiController669") +@RequestMapping("/partyRoleManagement/v4/") +public class HubApiController implements HubApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public HubApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/prm669/api/ListenerApi.java b/src/main/java/org/etsi/osl/tmf/prm669/api/ListenerApi.java new file mode 100644 index 0000000..a08cfe7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/api/ListenerApi.java @@ -0,0 +1,192 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.prm669.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.prm669.model.EventSubscription; +import org.etsi.osl.tmf.prm669.model.PartyRoleAttributeValueChangeEvent; +import org.etsi.osl.tmf.prm669.model.PartyRoleCreateEvent; +import org.etsi.osl.tmf.prm669.model.PartyRoleDeleteEvent; +import org.etsi.osl.tmf.prm669.model.PartyRoleStateChangeEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +@Tag(name = "listener", description = "the listener API") +public interface ListenerApi { + + Logger log = LoggerFactory.getLogger(ListenerApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Client listener for entity PartyRoleAttributeValueChangeEvent", operationId = "listenToPartyRoleAttributeValueChangeEvent", description = "Example of a client listener for receiving the notification PartyRoleAttributeValueChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/partyRoleAttributeValueChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToPartyRoleAttributeValueChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody PartyRoleAttributeValueChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity PartyRoleCreateEvent", operationId = "listenToPartyRoleCreateEvent", description = "Example of a client listener for receiving the notification PartyRoleCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/partyRoleCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToPartyRoleCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody PartyRoleCreateEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity PartyRoleDeleteEvent", operationId = "listenToPartyRoleDeleteEvent", description = "Example of a client listener for receiving the notification PartyRoleDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/partyRoleDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToPartyRoleDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody PartyRoleDeleteEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity PartyRoleStateChangeEvent", operationId = "listenToPartyRoleStateChangeEvent", description = "Example of a client listener for receiving the notification PartyRoleStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/partyRoleStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToPartyRoleStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody PartyRoleStateChangeEvent data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/prm669/api/ListenerApiController.java b/src/main/java/org/etsi/osl/tmf/prm669/api/ListenerApiController.java new file mode 100644 index 0000000..18b36f9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/api/ListenerApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +@Controller("ListenerApiController669") +@RequestMapping("/partyRoleManagement/v4/") +public class ListenerApiController implements ListenerApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ListenerApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/prm669/api/NotFoundException.java b/src/main/java/org/etsi/osl/tmf/prm669/api/NotFoundException.java new file mode 100644 index 0000000..b8fde5a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/api/NotFoundException.java @@ -0,0 +1,30 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class NotFoundException extends ApiException { + private int code; + public NotFoundException (int code, String msg) { + super(code, msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/prm669/api/PartyRoleApi.java b/src/main/java/org/etsi/osl/tmf/prm669/api/PartyRoleApi.java new file mode 100644 index 0000000..08650ef --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/api/PartyRoleApi.java @@ -0,0 +1,215 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.prm669.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.prm669.model.PartyRole; +import org.etsi.osl.tmf.prm669.model.PartyRoleCreate; +import org.etsi.osl.tmf.prm669.model.PartyRoleUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +@Tag(name = "partyRole", description = "the partyRole API") +public interface PartyRoleApi { + + Logger log = LoggerFactory.getLogger(PartyRoleApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a PartyRole", operationId = "createPartyRole", description = "This operation creates a PartyRole entity.", tags={ "partyRole", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/partyRole", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createPartyRole(@Parameter(description = "The PartyRole to be created" ,required=true ) @Valid @RequestBody PartyRoleCreate partyRole) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"creditProfile\" : [ { \"creditProfileDate\" : \"2000-01-23T04:56:07.000+00:00\", \"creditScore\" : 6, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"creditRiskRating\" : 0, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"creditProfileDate\" : \"2000-01-23T04:56:07.000+00:00\", \"creditScore\" : 6, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"creditRiskRating\" : 0, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"agreement\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"characteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"statusReason\" : \"statusReason\", \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"paymentMethod\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"engagedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"status\" : \"status\"}", PartyRole.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default PartyRoleApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a PartyRole", operationId = "deletePartyRole", description = "This operation deletes a PartyRole entity.", tags={ "partyRole", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/partyRole/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deletePartyRole(@Parameter(description = "Identifier of the PartyRole",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default PartyRoleApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find PartyRole objects", operationId = "listPartyRole", description = "This operation list or find PartyRole entities" , tags={ "partyRole", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/partyRole", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listPartyRole(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"creditProfile\" : [ { \"creditProfileDate\" : \"2000-01-23T04:56:07.000+00:00\", \"creditScore\" : 6, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"creditRiskRating\" : 0, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"creditProfileDate\" : \"2000-01-23T04:56:07.000+00:00\", \"creditScore\" : 6, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"creditRiskRating\" : 0, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"agreement\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"characteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"statusReason\" : \"statusReason\", \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"paymentMethod\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"engagedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"status\" : \"status\"}, { \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"creditProfile\" : [ { \"creditProfileDate\" : \"2000-01-23T04:56:07.000+00:00\", \"creditScore\" : 6, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"creditRiskRating\" : 0, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"creditProfileDate\" : \"2000-01-23T04:56:07.000+00:00\", \"creditScore\" : 6, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"creditRiskRating\" : 0, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"agreement\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"characteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"statusReason\" : \"statusReason\", \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"paymentMethod\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"engagedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"status\" : \"status\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default PartyRoleApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a PartyRole", operationId = "patchPartyRole", description = "This operation updates partially a PartyRole entity.", tags={ "partyRole", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/partyRole/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchPartyRole(@Parameter(description = "Identifier of the PartyRole",required=true) @PathVariable("id") String id,@Parameter(description = "The PartyRole to be updated" ,required=true ) @Valid @RequestBody PartyRoleUpdate partyRole) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"creditProfile\" : [ { \"creditProfileDate\" : \"2000-01-23T04:56:07.000+00:00\", \"creditScore\" : 6, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"creditRiskRating\" : 0, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"creditProfileDate\" : \"2000-01-23T04:56:07.000+00:00\", \"creditScore\" : 6, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"creditRiskRating\" : 0, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"agreement\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"characteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"statusReason\" : \"statusReason\", \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"paymentMethod\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"engagedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"status\" : \"status\"}", PartyRole.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default PartyRoleApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a PartyRole by ID", operationId = "retrievePartyRole", description = "This operation retrieves a PartyRole entity. Attribute selection is enabled for all first level attributes.", tags={ "partyRole", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/partyRole/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrievePartyRole(@Parameter(description = "Identifier of the PartyRole",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"contactMedium\" : [ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } }, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"mediumType\" : \"mediumType\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"preferred\" : true, \"characteristic\" : { \"country\" : \"country\", \"city\" : \"city\", \"@type\" : \"@type\", \"contactType\" : \"contactType\", \"socialNetworkId\" : \"socialNetworkId\", \"emailAddress\" : \"emailAddress\", \"phoneNumber\" : \"phoneNumber\", \"stateOrProvince\" : \"stateOrProvince\", \"@baseType\" : \"@baseType\", \"faxNumber\" : \"faxNumber\", \"postCode\" : \"postCode\", \"street1\" : \"street1\", \"street2\" : \"street2\", \"@schemaLocation\" : \"http://example.com/aeiou\" } } ], \"creditProfile\" : [ { \"creditProfileDate\" : \"2000-01-23T04:56:07.000+00:00\", \"creditScore\" : 6, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"creditRiskRating\" : 0, \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"creditProfileDate\" : \"2000-01-23T04:56:07.000+00:00\", \"creditScore\" : 6, \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"creditRiskRating\" : 0, \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"agreement\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"relatedParty\" : [ { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"characteristic\" : [ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"value\" : { } } ], \"statusReason\" : \"statusReason\", \"@baseType\" : \"@baseType\", \"name\" : \"name\", \"paymentMethod\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"account\" : [ { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, { \"@referredType\" : \"@referredType\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" } ], \"engagedParty\" : { \"@referredType\" : \"@referredType\", \"role\" : \"role\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\" }, \"status\" : \"status\"}", PartyRole.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default PartyRoleApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/prm669/api/PartyRoleApiController.java b/src/main/java/org/etsi/osl/tmf/prm669/api/PartyRoleApiController.java new file mode 100644 index 0000000..ae27be3 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/api/PartyRoleApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +@Controller +@RequestMapping("/partyRoleManagement/v4/") +public class PartyRoleApiController implements PartyRoleApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public PartyRoleApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/prm669/api/RFC3339DateFormat.java b/src/main/java/org/etsi/osl/tmf/prm669/api/RFC3339DateFormat.java new file mode 100644 index 0000000..fcd2f7c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/api/RFC3339DateFormat.java @@ -0,0 +1,41 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.api; + +import java.text.FieldPosition; +import java.util.Date; + +import com.fasterxml.jackson.databind.util.ISO8601DateFormat; +import com.fasterxml.jackson.databind.util.ISO8601Utils; + + +public class RFC3339DateFormat extends ISO8601DateFormat { + + private static final long serialVersionUID = 1L; + + // Same as ISO8601DateFormat but serializing milliseconds. + @Override + public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) { + String value = ISO8601Utils.format(date, true); + toAppendTo.append(value); + return toAppendTo; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/Characteristic.java b/src/main/java/org/etsi/osl/tmf/prm669/model/Characteristic.java new file mode 100644 index 0000000..c0ca3cf --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/Characteristic.java @@ -0,0 +1,229 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Any; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Describes a given characteristic of an object or entity through a name/value pair. + */ +@Schema(description = "Describes a given characteristic of an object or entity through a name/value pair.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class Characteristic { + @JsonProperty("name") + private String name = null; + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("value") + private Any value = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Characteristic name(String name) { + this.name = name; + return this; + } + + /** + * Name of the characteristic + * @return name + **/ + @Schema(description = "Name of the characteristic") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Characteristic valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * Data type of the value of the characteristic + * @return valueType + **/ + @Schema(description = "Data type of the value of the characteristic") + + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public Characteristic value(Any value) { + this.value = value; + return this; + } + + /** + * The value of the characteristic + * @return value + **/ + @Schema(description = "The value of the characteristic") + @NotNull + + @Valid + + public Any getValue() { + return value; + } + + public void setValue(Any value) { + this.value = value; + } + + public Characteristic baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public Characteristic schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Characteristic type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Characteristic characteristic = (Characteristic) o; + return Objects.equals(this.name, characteristic.name) && + Objects.equals(this.valueType, characteristic.valueType) && + Objects.equals(this.value, characteristic.value) && + Objects.equals(this.baseType, characteristic.baseType) && + Objects.equals(this.schemaLocation, characteristic.schemaLocation) && + Objects.equals(this.type, characteristic.type); + } + + @Override + public int hashCode() { + return Objects.hash(name, valueType, value, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Characteristic {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/ContactMedium.java b/src/main/java/org/etsi/osl/tmf/prm669/model/ContactMedium.java new file mode 100644 index 0000000..8497c7f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/ContactMedium.java @@ -0,0 +1,255 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Indicates the contact medium that could be used to contact the party. + */ +@Schema(description = "Indicates the contact medium that could be used to contact the party.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class ContactMedium { + @JsonProperty("mediumType") + private String mediumType = null; + + @JsonProperty("preferred") + private Boolean preferred = null; + + @JsonProperty("characteristic") + private MediumCharacteristic characteristic = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ContactMedium mediumType(String mediumType) { + this.mediumType = mediumType; + return this; + } + + /** + * Type of the contact medium, such as: email address, telephone number, postal address + * @return mediumType + **/ + @Schema(description = "Type of the contact medium, such as: email address, telephone number, postal address") + @NotNull + + + public String getMediumType() { + return mediumType; + } + + public void setMediumType(String mediumType) { + this.mediumType = mediumType; + } + + public ContactMedium preferred(Boolean preferred) { + this.preferred = preferred; + return this; + } + + /** + * If true, indicates that is the preferred contact medium + * @return preferred + **/ + @Schema(description = "If true, indicates that is the preferred contact medium") + + + public Boolean isPreferred() { + return preferred; + } + + public void setPreferred(Boolean preferred) { + this.preferred = preferred; + } + + public ContactMedium characteristic(MediumCharacteristic characteristic) { + this.characteristic = characteristic; + return this; + } + + /** + * Any additional characteristic(s) of this contact medium + * @return characteristic + **/ + @Schema(description = "Any additional characteristic(s) of this contact medium") + @NotNull + + @Valid + + public MediumCharacteristic getCharacteristic() { + return characteristic; + } + + public void setCharacteristic(MediumCharacteristic characteristic) { + this.characteristic = characteristic; + } + + public ContactMedium validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The time period that the contact medium is valid for + * @return validFor + **/ + @Schema(description = "The time period that the contact medium is valid for") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ContactMedium baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ContactMedium schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ContactMedium type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ContactMedium contactMedium = (ContactMedium) o; + return Objects.equals(this.mediumType, contactMedium.mediumType) && + Objects.equals(this.preferred, contactMedium.preferred) && + Objects.equals(this.characteristic, contactMedium.characteristic) && + Objects.equals(this.validFor, contactMedium.validFor) && + Objects.equals(this.baseType, contactMedium.baseType) && + Objects.equals(this.schemaLocation, contactMedium.schemaLocation) && + Objects.equals(this.type, contactMedium.type); + } + + @Override + public int hashCode() { + return Objects.hash(mediumType, preferred, characteristic, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ContactMedium {\n"); + + sb.append(" mediumType: ").append(toIndentedString(mediumType)).append("\n"); + sb.append(" preferred: ").append(toIndentedString(preferred)).append("\n"); + sb.append(" characteristic: ").append(toIndentedString(characteristic)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/CreditProfile.java b/src/main/java/org/etsi/osl/tmf/prm669/model/CreditProfile.java new file mode 100644 index 0000000..de9a143 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/CreditProfile.java @@ -0,0 +1,256 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Credit profile for the party (containing credit scoring, ...). By default only the current credit profile is retrieved. It can be used as a list to give the party credit profiles history, the first one in the list will be the current one. + */ +@Schema(description = "Credit profile for the party (containing credit scoring, ...). By default only the current credit profile is retrieved. It can be used as a list to give the party credit profiles history, the first one in the list will be the current one.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class CreditProfile { + @JsonProperty("creditProfileDate") + private OffsetDateTime creditProfileDate = null; + + @JsonProperty("creditRiskRating") + private Integer creditRiskRating = null; + + @JsonProperty("creditScore") + private Integer creditScore = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public CreditProfile creditProfileDate(OffsetDateTime creditProfileDate) { + this.creditProfileDate = creditProfileDate; + return this; + } + + /** + * The date the profile was established + * @return creditProfileDate + **/ + @Schema(description = "The date the profile was established") + @NotNull + + @Valid + + public OffsetDateTime getCreditProfileDate() { + return creditProfileDate; + } + + public void setCreditProfileDate(OffsetDateTime creditProfileDate) { + this.creditProfileDate = creditProfileDate; + } + + public CreditProfile creditRiskRating(Integer creditRiskRating) { + this.creditRiskRating = creditRiskRating; + return this; + } + + /** + * This is an integer whose value is used to rate the risk + * @return creditRiskRating + **/ + @Schema(description = "This is an integer whose value is used to rate the risk") + + + public Integer getCreditRiskRating() { + return creditRiskRating; + } + + public void setCreditRiskRating(Integer creditRiskRating) { + this.creditRiskRating = creditRiskRating; + } + + public CreditProfile creditScore(Integer creditScore) { + this.creditScore = creditScore; + return this; + } + + /** + * A measure of a person or organizations creditworthiness calculated on the basis of a combination of factors such as their income and credit history + * @return creditScore + **/ + @Schema(description = "A measure of a person or organizations creditworthiness calculated on the basis of a combination of factors such as their income and credit history") + + + public Integer getCreditScore() { + return creditScore; + } + + public void setCreditScore(Integer creditScore) { + this.creditScore = creditScore; + } + + public CreditProfile validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the profile is valid + * @return validFor + **/ + @Schema(description = "The period for which the profile is valid") + @NotNull + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public CreditProfile baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public CreditProfile schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public CreditProfile type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreditProfile creditProfile = (CreditProfile) o; + return Objects.equals(this.creditProfileDate, creditProfile.creditProfileDate) && + Objects.equals(this.creditRiskRating, creditProfile.creditRiskRating) && + Objects.equals(this.creditScore, creditProfile.creditScore) && + Objects.equals(this.validFor, creditProfile.validFor) && + Objects.equals(this.baseType, creditProfile.baseType) && + Objects.equals(this.schemaLocation, creditProfile.schemaLocation) && + Objects.equals(this.type, creditProfile.type); + } + + @Override + public int hashCode() { + return Objects.hash(creditProfileDate, creditRiskRating, creditScore, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreditProfile {\n"); + + sb.append(" creditProfileDate: ").append(toIndentedString(creditProfileDate)).append("\n"); + sb.append(" creditRiskRating: ").append(toIndentedString(creditRiskRating)).append("\n"); + sb.append(" creditScore: ").append(toIndentedString(creditScore)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/EntityRef.java b/src/main/java/org/etsi/osl/tmf/prm669/model/EntityRef.java new file mode 100644 index 0000000..cd7ce4b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/EntityRef.java @@ -0,0 +1,252 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Entity reference schema to be use for all entityRef class. + */ +@Schema(description = "Entity reference schema to be use for all entityRef class.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class EntityRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public EntityRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EntityRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public EntityRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public EntityRef baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public EntityRef schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public EntityRef type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public EntityRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntityRef entityRef = (EntityRef) o; + return Objects.equals(this.id, entityRef.id) && + Objects.equals(this.href, entityRef.href) && + Objects.equals(this.name, entityRef.name) && + Objects.equals(this.baseType, entityRef.baseType) && + Objects.equals(this.schemaLocation, entityRef.schemaLocation) && + Objects.equals(this.type, entityRef.type) && + Objects.equals(this.referredType, entityRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntityRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/Error.java b/src/main/java/org/etsi/osl/tmf/prm669/model/Error.java new file mode 100644 index 0000000..270d236 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/Error.java @@ -0,0 +1,278 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx) + */ +@Schema(description = "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class Error { + @JsonProperty("code") + private String code = null; + + @JsonProperty("reason") + private String reason = null; + + @JsonProperty("message") + private String message = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("referenceError") + private String referenceError = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Error code(String code) { + this.code = code; + return this; + } + + /** + * Application relevant detail, defined in the API or a common list. + * @return code + **/ + @Schema(description = "Application relevant detail, defined in the API or a common list.") + @NotNull + + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public Error reason(String reason) { + this.reason = reason; + return this; + } + + /** + * Explanation of the reason for the error which can be shown to a client user. + * @return reason + **/ + @Schema(description = "Explanation of the reason for the error which can be shown to a client user.") + @NotNull + + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public Error message(String message) { + this.message = message; + return this; + } + + /** + * More details and corrective actions related to the error which can be shown to a client user. + * @return message + **/ + @Schema(description = "More details and corrective actions related to the error which can be shown to a client user.") + + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Error status(String status) { + this.status = status; + return this; + } + + /** + * HTTP Error code extension + * @return status + **/ + @Schema(description = "HTTP Error code extension") + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Error referenceError(String referenceError) { + this.referenceError = referenceError; + return this; + } + + /** + * URI of documentation describing the error. + * @return referenceError + **/ + @Schema(description = "URI of documentation describing the error.") + + + public String getReferenceError() { + return referenceError; + } + + public void setReferenceError(String referenceError) { + this.referenceError = referenceError; + } + + public Error baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class. + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class.") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public Error schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Error type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name. + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name.") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Error error = (Error) o; + return Objects.equals(this.code, error.code) && + Objects.equals(this.reason, error.reason) && + Objects.equals(this.message, error.message) && + Objects.equals(this.status, error.status) && + Objects.equals(this.referenceError, error.referenceError) && + Objects.equals(this.baseType, error.baseType) && + Objects.equals(this.schemaLocation, error.schemaLocation) && + Objects.equals(this.type, error.type); + } + + @Override + public int hashCode() { + return Objects.hash(code, reason, message, status, referenceError, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Error {\n"); + + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" referenceError: ").append(toIndentedString(referenceError)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/prm669/model/EventSubscription.java new file mode 100644 index 0000000..ad26059 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/EventSubscription.java @@ -0,0 +1,153 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class EventSubscription { + @JsonProperty("id") + private String id = null; + + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscription id(String id) { + this.id = id; + return this; + } + + /** + * Id of the listener + * @return id + **/ + @Schema(description = "Id of the listener") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EventSubscription callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscription query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscription eventSubscription = (EventSubscription) o; + return Objects.equals(this.id, eventSubscription.id) && + Objects.equals(this.callback, eventSubscription.callback) && + Objects.equals(this.query, eventSubscription.query); + } + + @Override + public int hashCode() { + return Objects.hash(id, callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscription {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/EventSubscriptionInput.java b/src/main/java/org/etsi/osl/tmf/prm669/model/EventSubscriptionInput.java new file mode 100644 index 0000000..3e31831 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/EventSubscriptionInput.java @@ -0,0 +1,127 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class EventSubscriptionInput { + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscriptionInput callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscriptionInput query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscriptionInput eventSubscriptionInput = (EventSubscriptionInput) o; + return Objects.equals(this.callback, eventSubscriptionInput.callback) && + Objects.equals(this.query, eventSubscriptionInput.query); + } + + @Override + public int hashCode() { + return Objects.hash(callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscriptionInput {\n"); + + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/MediumCharacteristic.java b/src/main/java/org/etsi/osl/tmf/prm669/model/MediumCharacteristic.java new file mode 100644 index 0000000..a118541 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/MediumCharacteristic.java @@ -0,0 +1,425 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Describes the contact medium characteristics that could be used to contact a party (an individual or an organization) + */ +@Schema(description = "Describes the contact medium characteristics that could be used to contact a party (an individual or an organization)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class MediumCharacteristic { + @JsonProperty("city") + private String city = null; + + @JsonProperty("contactType") + private String contactType = null; + + @JsonProperty("country") + private String country = null; + + @JsonProperty("emailAddress") + private String emailAddress = null; + + @JsonProperty("faxNumber") + private String faxNumber = null; + + @JsonProperty("phoneNumber") + private String phoneNumber = null; + + @JsonProperty("postCode") + private String postCode = null; + + @JsonProperty("socialNetworkId") + private String socialNetworkId = null; + + @JsonProperty("stateOrProvince") + private String stateOrProvince = null; + + @JsonProperty("street1") + private String street1 = null; + + @JsonProperty("street2") + private String street2 = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public MediumCharacteristic city(String city) { + this.city = city; + return this; + } + + /** + * The city + * @return city + **/ + @Schema(description = "The city") + + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public MediumCharacteristic contactType(String contactType) { + this.contactType = contactType; + return this; + } + + /** + * The type of contact, for example: phone number such as mobile, fixed home, fixed office. postal address such as shipping instalation… + * @return contactType + **/ + @Schema(description = "The type of contact, for example: phone number such as mobile, fixed home, fixed office. postal address such as shipping instalation…") + + + public String getContactType() { + return contactType; + } + + public void setContactType(String contactType) { + this.contactType = contactType; + } + + public MediumCharacteristic country(String country) { + this.country = country; + return this; + } + + /** + * The country + * @return country + **/ + @Schema(description = "The country") + + + public String getCountry() { + return country; + } + + public void setCountry(String country) { + this.country = country; + } + + public MediumCharacteristic emailAddress(String emailAddress) { + this.emailAddress = emailAddress; + return this; + } + + /** + * Full email address in standard format + * @return emailAddress + **/ + @Schema(description = "Full email address in standard format") + + + public String getEmailAddress() { + return emailAddress; + } + + public void setEmailAddress(String emailAddress) { + this.emailAddress = emailAddress; + } + + public MediumCharacteristic faxNumber(String faxNumber) { + this.faxNumber = faxNumber; + return this; + } + + /** + * The fax number of the contact + * @return faxNumber + **/ + @Schema(description = "The fax number of the contact") + + + public String getFaxNumber() { + return faxNumber; + } + + public void setFaxNumber(String faxNumber) { + this.faxNumber = faxNumber; + } + + public MediumCharacteristic phoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + return this; + } + + /** + * The primary phone number of the contact + * @return phoneNumber + **/ + @Schema(description = "The primary phone number of the contact") + + + public String getPhoneNumber() { + return phoneNumber; + } + + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + + public MediumCharacteristic postCode(String postCode) { + this.postCode = postCode; + return this; + } + + /** + * Postcode + * @return postCode + **/ + @Schema(description = "Postcode") + + + public String getPostCode() { + return postCode; + } + + public void setPostCode(String postCode) { + this.postCode = postCode; + } + + public MediumCharacteristic socialNetworkId(String socialNetworkId) { + this.socialNetworkId = socialNetworkId; + return this; + } + + /** + * Identifier as a member of a social network + * @return socialNetworkId + **/ + @Schema(description = "Identifier as a member of a social network") + + + public String getSocialNetworkId() { + return socialNetworkId; + } + + public void setSocialNetworkId(String socialNetworkId) { + this.socialNetworkId = socialNetworkId; + } + + public MediumCharacteristic stateOrProvince(String stateOrProvince) { + this.stateOrProvince = stateOrProvince; + return this; + } + + /** + * State or province + * @return stateOrProvince + **/ + @Schema(description = "State or province") + + + public String getStateOrProvince() { + return stateOrProvince; + } + + public void setStateOrProvince(String stateOrProvince) { + this.stateOrProvince = stateOrProvince; + } + + public MediumCharacteristic street1(String street1) { + this.street1 = street1; + return this; + } + + /** + * Describes the street + * @return street1 + **/ + @Schema(description = "Describes the street") + + + public String getStreet1() { + return street1; + } + + public void setStreet1(String street1) { + this.street1 = street1; + } + + public MediumCharacteristic street2(String street2) { + this.street2 = street2; + return this; + } + + /** + * Complementary street description + * @return street2 + **/ + @Schema(description = "Complementary street description") + + + public String getStreet2() { + return street2; + } + + public void setStreet2(String street2) { + this.street2 = street2; + } + + public MediumCharacteristic baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public MediumCharacteristic schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public MediumCharacteristic type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediumCharacteristic mediumCharacteristic = (MediumCharacteristic) o; + return Objects.equals(this.city, mediumCharacteristic.city) && + Objects.equals(this.contactType, mediumCharacteristic.contactType) && + Objects.equals(this.country, mediumCharacteristic.country) && + Objects.equals(this.emailAddress, mediumCharacteristic.emailAddress) && + Objects.equals(this.faxNumber, mediumCharacteristic.faxNumber) && + Objects.equals(this.phoneNumber, mediumCharacteristic.phoneNumber) && + Objects.equals(this.postCode, mediumCharacteristic.postCode) && + Objects.equals(this.socialNetworkId, mediumCharacteristic.socialNetworkId) && + Objects.equals(this.stateOrProvince, mediumCharacteristic.stateOrProvince) && + Objects.equals(this.street1, mediumCharacteristic.street1) && + Objects.equals(this.street2, mediumCharacteristic.street2) && + Objects.equals(this.baseType, mediumCharacteristic.baseType) && + Objects.equals(this.schemaLocation, mediumCharacteristic.schemaLocation) && + Objects.equals(this.type, mediumCharacteristic.type); + } + + @Override + public int hashCode() { + return Objects.hash(city, contactType, country, emailAddress, faxNumber, phoneNumber, postCode, socialNetworkId, stateOrProvince, street1, street2, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediumCharacteristic {\n"); + + sb.append(" city: ").append(toIndentedString(city)).append("\n"); + sb.append(" contactType: ").append(toIndentedString(contactType)).append("\n"); + sb.append(" country: ").append(toIndentedString(country)).append("\n"); + sb.append(" emailAddress: ").append(toIndentedString(emailAddress)).append("\n"); + sb.append(" faxNumber: ").append(toIndentedString(faxNumber)).append("\n"); + sb.append(" phoneNumber: ").append(toIndentedString(phoneNumber)).append("\n"); + sb.append(" postCode: ").append(toIndentedString(postCode)).append("\n"); + sb.append(" socialNetworkId: ").append(toIndentedString(socialNetworkId)).append("\n"); + sb.append(" stateOrProvince: ").append(toIndentedString(stateOrProvince)).append("\n"); + sb.append(" street1: ").append(toIndentedString(street1)).append("\n"); + sb.append(" street2: ").append(toIndentedString(street2)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRole.java b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRole.java new file mode 100644 index 0000000..db0583c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRole.java @@ -0,0 +1,577 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.am651.model.AgreementRef; +import org.etsi.osl.tmf.am666.model.AccountRef; +import org.etsi.osl.tmf.am666.model.PaymentMethodRef; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The part played by a party in a given context. + */ +@Schema(description = "The part played by a party in a given context.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class PartyRole { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("statusReason") + private String statusReason = null; + + @JsonProperty("account") + @Valid + private List account = null; + + @JsonProperty("agreement") + @Valid + private List agreement = null; + + @JsonProperty("characteristic") + @Valid + private List characteristic = null; + + @JsonProperty("contactMedium") + @Valid + private List contactMedium = null; + + @JsonProperty("creditProfile") + @Valid + private List creditProfile = null; + + @JsonProperty("engagedParty") + private RelatedParty engagedParty = null; + + @JsonProperty("paymentMethod") + @Valid + private List paymentMethod = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public PartyRole id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier for PartyRoles + * @return id + **/ + @Schema(description = "Unique identifier for PartyRoles") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public PartyRole href(String href) { + this.href = href; + return this; + } + + /** + * Url used to reference the party role. + * @return href + **/ + @Schema(description = "Url used to reference the party role.") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public PartyRole name(String name) { + this.name = name; + return this; + } + + /** + * A word, term, or phrase by which the PartyRole is known and distinguished from other PartyRoles. + * @return name + **/ + @Schema(description = "A word, term, or phrase by which the PartyRole is known and distinguished from other PartyRoles.") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public PartyRole status(String status) { + this.status = status; + return this; + } + + /** + * Used to track the lifecycle status of the party role. + * @return status + **/ + @Schema(description = "Used to track the lifecycle status of the party role.") + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public PartyRole statusReason(String statusReason) { + this.statusReason = statusReason; + return this; + } + + /** + * A string providing an explanation on the value of the status lifecycle. For instance if the status is Rejected, statusReason will provide the reason for rejection. + * @return statusReason + **/ + @Schema(description = "A string providing an explanation on the value of the status lifecycle. For instance if the status is Rejected, statusReason will provide the reason for rejection.") + + + public String getStatusReason() { + return statusReason; + } + + public void setStatusReason(String statusReason) { + this.statusReason = statusReason; + } + + public PartyRole account(List account) { + this.account = account; + return this; + } + + public PartyRole addAccountItem(AccountRef accountItem) { + if (this.account == null) { + this.account = new ArrayList<>(); + } + this.account.add(accountItem); + return this; + } + + /** + * Get account + * @return account + **/ + @Schema(description = "") + + @Valid + + public List getAccount() { + return account; + } + + public void setAccount(List account) { + this.account = account; + } + + public PartyRole agreement(List agreement) { + this.agreement = agreement; + return this; + } + + public PartyRole addAgreementItem(AgreementRef agreementItem) { + if (this.agreement == null) { + this.agreement = new ArrayList<>(); + } + this.agreement.add(agreementItem); + return this; + } + + /** + * Get agreement + * @return agreement + **/ + @Schema(description = "") + + @Valid + + public List getAgreement() { + return agreement; + } + + public void setAgreement(List agreement) { + this.agreement = agreement; + } + + public PartyRole characteristic(List characteristic) { + this.characteristic = characteristic; + return this; + } + + public PartyRole addCharacteristicItem(Characteristic characteristicItem) { + if (this.characteristic == null) { + this.characteristic = new ArrayList<>(); + } + this.characteristic.add(characteristicItem); + return this; + } + + /** + * Describes the characteristic of a party role. + * @return characteristic + **/ + @Schema(description = "Describes the characteristic of a party role.") + + @Valid + + public List getCharacteristic() { + return characteristic; + } + + public void setCharacteristic(List characteristic) { + this.characteristic = characteristic; + } + + public PartyRole contactMedium(List contactMedium) { + this.contactMedium = contactMedium; + return this; + } + + public PartyRole addContactMediumItem(ContactMedium contactMediumItem) { + if (this.contactMedium == null) { + this.contactMedium = new ArrayList<>(); + } + this.contactMedium.add(contactMediumItem); + return this; + } + + /** + * Get contactMedium + * @return contactMedium + **/ + @Schema(description = "") + + @Valid + + public List getContactMedium() { + return contactMedium; + } + + public void setContactMedium(List contactMedium) { + this.contactMedium = contactMedium; + } + + public PartyRole creditProfile(List creditProfile) { + this.creditProfile = creditProfile; + return this; + } + + public PartyRole addCreditProfileItem(CreditProfile creditProfileItem) { + if (this.creditProfile == null) { + this.creditProfile = new ArrayList<>(); + } + this.creditProfile.add(creditProfileItem); + return this; + } + + /** + * Get creditProfile + * @return creditProfile + **/ + @Schema(description = "") + + @Valid + + public List getCreditProfile() { + return creditProfile; + } + + public void setCreditProfile(List creditProfile) { + this.creditProfile = creditProfile; + } + + public PartyRole engagedParty(RelatedParty engagedParty) { + this.engagedParty = engagedParty; + return this; + } + + /** + * Get engagedParty + * @return engagedParty + **/ + @Schema(description = "") + + @Valid + + public RelatedParty getEngagedParty() { + return engagedParty; + } + + public void setEngagedParty(RelatedParty engagedParty) { + this.engagedParty = engagedParty; + } + + public PartyRole paymentMethod(List paymentMethod) { + this.paymentMethod = paymentMethod; + return this; + } + + public PartyRole addPaymentMethodItem(PaymentMethodRef paymentMethodItem) { + if (this.paymentMethod == null) { + this.paymentMethod = new ArrayList<>(); + } + this.paymentMethod.add(paymentMethodItem); + return this; + } + + /** + * Get paymentMethod + * @return paymentMethod + **/ + @Schema(description = "") + + @Valid + + public List getPaymentMethod() { + return paymentMethod; + } + + public void setPaymentMethod(List paymentMethod) { + this.paymentMethod = paymentMethod; + } + + public PartyRole relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public PartyRole addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public PartyRole validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The time period that the PartyRole is valid for. + * @return validFor + **/ + @Schema(description = "The time period that the PartyRole is valid for.") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public PartyRole baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public PartyRole schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public PartyRole type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyRole partyRole = (PartyRole) o; + return Objects.equals(this.id, partyRole.id) && + Objects.equals(this.href, partyRole.href) && + Objects.equals(this.name, partyRole.name) && + Objects.equals(this.status, partyRole.status) && + Objects.equals(this.statusReason, partyRole.statusReason) && + Objects.equals(this.account, partyRole.account) && + Objects.equals(this.agreement, partyRole.agreement) && + Objects.equals(this.characteristic, partyRole.characteristic) && + Objects.equals(this.contactMedium, partyRole.contactMedium) && + Objects.equals(this.creditProfile, partyRole.creditProfile) && + Objects.equals(this.engagedParty, partyRole.engagedParty) && + Objects.equals(this.paymentMethod, partyRole.paymentMethod) && + Objects.equals(this.relatedParty, partyRole.relatedParty) && + Objects.equals(this.validFor, partyRole.validFor) && + Objects.equals(this.baseType, partyRole.baseType) && + Objects.equals(this.schemaLocation, partyRole.schemaLocation) && + Objects.equals(this.type, partyRole.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, status, statusReason, account, agreement, characteristic, contactMedium, creditProfile, engagedParty, paymentMethod, relatedParty, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyRole {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" statusReason: ").append(toIndentedString(statusReason)).append("\n"); + sb.append(" account: ").append(toIndentedString(account)).append("\n"); + sb.append(" agreement: ").append(toIndentedString(agreement)).append("\n"); + sb.append(" characteristic: ").append(toIndentedString(characteristic)).append("\n"); + sb.append(" contactMedium: ").append(toIndentedString(contactMedium)).append("\n"); + sb.append(" creditProfile: ").append(toIndentedString(creditProfile)).append("\n"); + sb.append(" engagedParty: ").append(toIndentedString(engagedParty)).append("\n"); + sb.append(" paymentMethod: ").append(toIndentedString(paymentMethod)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleAttributeValueChangeEvent.java new file mode 100644 index 0000000..01f5570 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleAttributeValueChangeEvent.java @@ -0,0 +1,355 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class PartyRoleAttributeValueChangeEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("event") + private PartyRoleAttributeValueChangeEventPayload event = null; + + public PartyRoleAttributeValueChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public PartyRoleAttributeValueChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public PartyRoleAttributeValueChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public PartyRoleAttributeValueChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public PartyRoleAttributeValueChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public PartyRoleAttributeValueChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public PartyRoleAttributeValueChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory of the event. + * @return description + **/ + @Schema(description = "An explanatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public PartyRoleAttributeValueChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public PartyRoleAttributeValueChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public PartyRoleAttributeValueChangeEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public PartyRoleAttributeValueChangeEvent event(PartyRoleAttributeValueChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public PartyRoleAttributeValueChangeEventPayload getEvent() { + return event; + } + + public void setEvent(PartyRoleAttributeValueChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyRoleAttributeValueChangeEvent partyRoleAttributeValueChangeEvent = (PartyRoleAttributeValueChangeEvent) o; + return Objects.equals(this.eventId, partyRoleAttributeValueChangeEvent.eventId) && + Objects.equals(this.eventTime, partyRoleAttributeValueChangeEvent.eventTime) && + Objects.equals(this.eventType, partyRoleAttributeValueChangeEvent.eventType) && + Objects.equals(this.correlationId, partyRoleAttributeValueChangeEvent.correlationId) && + Objects.equals(this.domain, partyRoleAttributeValueChangeEvent.domain) && + Objects.equals(this.title, partyRoleAttributeValueChangeEvent.title) && + Objects.equals(this.description, partyRoleAttributeValueChangeEvent.description) && + Objects.equals(this.priority, partyRoleAttributeValueChangeEvent.priority) && + Objects.equals(this.timeOcurred, partyRoleAttributeValueChangeEvent.timeOcurred) && + Objects.equals(this.fieldPath, partyRoleAttributeValueChangeEvent.fieldPath) && + Objects.equals(this.event, partyRoleAttributeValueChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, fieldPath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyRoleAttributeValueChangeEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleAttributeValueChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleAttributeValueChangeEventPayload.java new file mode 100644 index 0000000..3ee0988 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleAttributeValueChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class PartyRoleAttributeValueChangeEventPayload { + @JsonProperty("partyRole") + private PartyRole partyRole = null; + + public PartyRoleAttributeValueChangeEventPayload partyRole(PartyRole partyRole) { + this.partyRole = partyRole; + return this; + } + + /** + * The involved resource data for the event + * @return partyRole + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public PartyRole getPartyRole() { + return partyRole; + } + + public void setPartyRole(PartyRole partyRole) { + this.partyRole = partyRole; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyRoleAttributeValueChangeEventPayload partyRoleAttributeValueChangeEventPayload = (PartyRoleAttributeValueChangeEventPayload) o; + return Objects.equals(this.partyRole, partyRoleAttributeValueChangeEventPayload.partyRole); + } + + @Override + public int hashCode() { + return Objects.hash(partyRole); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyRoleAttributeValueChangeEventPayload {\n"); + + sb.append(" partyRole: ").append(toIndentedString(partyRole)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleCreate.java b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleCreate.java new file mode 100644 index 0000000..436574c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleCreate.java @@ -0,0 +1,529 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.am651.model.AgreementRef; +import org.etsi.osl.tmf.am666.model.AccountRef; +import org.etsi.osl.tmf.am666.model.PaymentMethodRef; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * The part played by a party in a given context. Skipped properties: id,href + */ +@Schema(description = "The part played by a party in a given context. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class PartyRoleCreate { + @JsonProperty("name") + private String name = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("statusReason") + private String statusReason = null; + + @JsonProperty("account") + @Valid + private List account = null; + + @JsonProperty("agreement") + @Valid + private List agreement = null; + + @JsonProperty("characteristic") + @Valid + private List characteristic = null; + + @JsonProperty("contactMedium") + @Valid + private List contactMedium = null; + + @JsonProperty("creditProfile") + @Valid + private List creditProfile = null; + + @JsonProperty("engagedParty") + private RelatedParty engagedParty = null; + + @JsonProperty("paymentMethod") + @Valid + private List paymentMethod = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public PartyRoleCreate name(String name) { + this.name = name; + return this; + } + + /** + * A word, term, or phrase by which the PartyRole is known and distinguished from other PartyRoles. + * @return name + **/ + @Schema(description = "A word, term, or phrase by which the PartyRole is known and distinguished from other PartyRoles.") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public PartyRoleCreate status(String status) { + this.status = status; + return this; + } + + /** + * Used to track the lifecycle status of the party role. + * @return status + **/ + @Schema(description = "Used to track the lifecycle status of the party role.") + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public PartyRoleCreate statusReason(String statusReason) { + this.statusReason = statusReason; + return this; + } + + /** + * A string providing an explanation on the value of the status lifecycle. For instance if the status is Rejected, statusReason will provide the reason for rejection. + * @return statusReason + **/ + @Schema(description = "A string providing an explanation on the value of the status lifecycle. For instance if the status is Rejected, statusReason will provide the reason for rejection.") + + + public String getStatusReason() { + return statusReason; + } + + public void setStatusReason(String statusReason) { + this.statusReason = statusReason; + } + + public PartyRoleCreate account(List account) { + this.account = account; + return this; + } + + public PartyRoleCreate addAccountItem(AccountRef accountItem) { + if (this.account == null) { + this.account = new ArrayList<>(); + } + this.account.add(accountItem); + return this; + } + + /** + * Get account + * @return account + **/ + @Schema(description = "") + + @Valid + + public List getAccount() { + return account; + } + + public void setAccount(List account) { + this.account = account; + } + + public PartyRoleCreate agreement(List agreement) { + this.agreement = agreement; + return this; + } + + public PartyRoleCreate addAgreementItem(AgreementRef agreementItem) { + if (this.agreement == null) { + this.agreement = new ArrayList<>(); + } + this.agreement.add(agreementItem); + return this; + } + + /** + * Get agreement + * @return agreement + **/ + @Schema(description = "") + + @Valid + + public List getAgreement() { + return agreement; + } + + public void setAgreement(List agreement) { + this.agreement = agreement; + } + + public PartyRoleCreate characteristic(List characteristic) { + this.characteristic = characteristic; + return this; + } + + public PartyRoleCreate addCharacteristicItem(Characteristic characteristicItem) { + if (this.characteristic == null) { + this.characteristic = new ArrayList<>(); + } + this.characteristic.add(characteristicItem); + return this; + } + + /** + * Describes the characteristic of a party role. + * @return characteristic + **/ + @Schema(description = "Describes the characteristic of a party role.") + + @Valid + + public List getCharacteristic() { + return characteristic; + } + + public void setCharacteristic(List characteristic) { + this.characteristic = characteristic; + } + + public PartyRoleCreate contactMedium(List contactMedium) { + this.contactMedium = contactMedium; + return this; + } + + public PartyRoleCreate addContactMediumItem(ContactMedium contactMediumItem) { + if (this.contactMedium == null) { + this.contactMedium = new ArrayList<>(); + } + this.contactMedium.add(contactMediumItem); + return this; + } + + /** + * Get contactMedium + * @return contactMedium + **/ + @Schema(description = "") + + @Valid + + public List getContactMedium() { + return contactMedium; + } + + public void setContactMedium(List contactMedium) { + this.contactMedium = contactMedium; + } + + public PartyRoleCreate creditProfile(List creditProfile) { + this.creditProfile = creditProfile; + return this; + } + + public PartyRoleCreate addCreditProfileItem(CreditProfile creditProfileItem) { + if (this.creditProfile == null) { + this.creditProfile = new ArrayList<>(); + } + this.creditProfile.add(creditProfileItem); + return this; + } + + /** + * Get creditProfile + * @return creditProfile + **/ + @Schema(description = "") + + @Valid + + public List getCreditProfile() { + return creditProfile; + } + + public void setCreditProfile(List creditProfile) { + this.creditProfile = creditProfile; + } + + public PartyRoleCreate engagedParty(RelatedParty engagedParty) { + this.engagedParty = engagedParty; + return this; + } + + /** + * Get engagedParty + * @return engagedParty + **/ + @Schema(description = "") + + @Valid + + public RelatedParty getEngagedParty() { + return engagedParty; + } + + public void setEngagedParty(RelatedParty engagedParty) { + this.engagedParty = engagedParty; + } + + public PartyRoleCreate paymentMethod(List paymentMethod) { + this.paymentMethod = paymentMethod; + return this; + } + + public PartyRoleCreate addPaymentMethodItem(PaymentMethodRef paymentMethodItem) { + if (this.paymentMethod == null) { + this.paymentMethod = new ArrayList<>(); + } + this.paymentMethod.add(paymentMethodItem); + return this; + } + + /** + * Get paymentMethod + * @return paymentMethod + **/ + @Schema(description = "") + + @Valid + + public List getPaymentMethod() { + return paymentMethod; + } + + public void setPaymentMethod(List paymentMethod) { + this.paymentMethod = paymentMethod; + } + + public PartyRoleCreate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public PartyRoleCreate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public PartyRoleCreate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The time period that the PartyRole is valid for. + * @return validFor + **/ + @Schema(description = "The time period that the PartyRole is valid for.") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public PartyRoleCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public PartyRoleCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public PartyRoleCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyRoleCreate partyRoleCreate = (PartyRoleCreate) o; + return Objects.equals(this.name, partyRoleCreate.name) && + Objects.equals(this.status, partyRoleCreate.status) && + Objects.equals(this.statusReason, partyRoleCreate.statusReason) && + Objects.equals(this.account, partyRoleCreate.account) && + Objects.equals(this.agreement, partyRoleCreate.agreement) && + Objects.equals(this.characteristic, partyRoleCreate.characteristic) && + Objects.equals(this.contactMedium, partyRoleCreate.contactMedium) && + Objects.equals(this.creditProfile, partyRoleCreate.creditProfile) && + Objects.equals(this.engagedParty, partyRoleCreate.engagedParty) && + Objects.equals(this.paymentMethod, partyRoleCreate.paymentMethod) && + Objects.equals(this.relatedParty, partyRoleCreate.relatedParty) && + Objects.equals(this.validFor, partyRoleCreate.validFor) && + Objects.equals(this.baseType, partyRoleCreate.baseType) && + Objects.equals(this.schemaLocation, partyRoleCreate.schemaLocation) && + Objects.equals(this.type, partyRoleCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(name, status, statusReason, account, agreement, characteristic, contactMedium, creditProfile, engagedParty, paymentMethod, relatedParty, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyRoleCreate {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" statusReason: ").append(toIndentedString(statusReason)).append("\n"); + sb.append(" account: ").append(toIndentedString(account)).append("\n"); + sb.append(" agreement: ").append(toIndentedString(agreement)).append("\n"); + sb.append(" characteristic: ").append(toIndentedString(characteristic)).append("\n"); + sb.append(" contactMedium: ").append(toIndentedString(contactMedium)).append("\n"); + sb.append(" creditProfile: ").append(toIndentedString(creditProfile)).append("\n"); + sb.append(" engagedParty: ").append(toIndentedString(engagedParty)).append("\n"); + sb.append(" paymentMethod: ").append(toIndentedString(paymentMethod)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleCreateEvent.java b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleCreateEvent.java new file mode 100644 index 0000000..4bd8d32 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleCreateEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class PartyRoleCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private PartyRoleCreateEventPayload event = null; + + public PartyRoleCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the resource involved in the event + * @return id + **/ + @Schema(description = "Identifier of the resource involved in the event") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public PartyRoleCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the resource involved in the event + * @return href + **/ + @Schema(description = "Reference of the resource involved in the event") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public PartyRoleCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public PartyRoleCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public PartyRoleCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public PartyRoleCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public PartyRoleCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public PartyRoleCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public PartyRoleCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory of the event. + * @return description + **/ + @Schema(description = "An explanatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public PartyRoleCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public PartyRoleCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public PartyRoleCreateEvent event(PartyRoleCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public PartyRoleCreateEventPayload getEvent() { + return event; + } + + public void setEvent(PartyRoleCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyRoleCreateEvent partyRoleCreateEvent = (PartyRoleCreateEvent) o; + return Objects.equals(this.id, partyRoleCreateEvent.id) && + Objects.equals(this.href, partyRoleCreateEvent.href) && + Objects.equals(this.eventId, partyRoleCreateEvent.eventId) && + Objects.equals(this.eventTime, partyRoleCreateEvent.eventTime) && + Objects.equals(this.eventType, partyRoleCreateEvent.eventType) && + Objects.equals(this.correlationId, partyRoleCreateEvent.correlationId) && + Objects.equals(this.domain, partyRoleCreateEvent.domain) && + Objects.equals(this.title, partyRoleCreateEvent.title) && + Objects.equals(this.description, partyRoleCreateEvent.description) && + Objects.equals(this.priority, partyRoleCreateEvent.priority) && + Objects.equals(this.timeOcurred, partyRoleCreateEvent.timeOcurred) && + Objects.equals(this.event, partyRoleCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyRoleCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleCreateEventPayload.java new file mode 100644 index 0000000..4c9b20b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleCreateEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class PartyRoleCreateEventPayload { + @JsonProperty("partyRole") + private PartyRole partyRole = null; + + public PartyRoleCreateEventPayload partyRole(PartyRole partyRole) { + this.partyRole = partyRole; + return this; + } + + /** + * The involved resource data for the event + * @return partyRole + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public PartyRole getPartyRole() { + return partyRole; + } + + public void setPartyRole(PartyRole partyRole) { + this.partyRole = partyRole; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyRoleCreateEventPayload partyRoleCreateEventPayload = (PartyRoleCreateEventPayload) o; + return Objects.equals(this.partyRole, partyRoleCreateEventPayload.partyRole); + } + + @Override + public int hashCode() { + return Objects.hash(partyRole); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyRoleCreateEventPayload {\n"); + + sb.append(" partyRole: ").append(toIndentedString(partyRole)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleDeleteEvent.java new file mode 100644 index 0000000..081ecd9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleDeleteEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class PartyRoleDeleteEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private PartyRoleDeleteEventPayload event = null; + + public PartyRoleDeleteEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the resource involved in the event + * @return id + **/ + @Schema(description = "Identifier of the resource involved in the event") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public PartyRoleDeleteEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the resource involved in the event + * @return href + **/ + @Schema(description = "Reference of the resource involved in the event") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public PartyRoleDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public PartyRoleDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public PartyRoleDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public PartyRoleDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public PartyRoleDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public PartyRoleDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public PartyRoleDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory of the event. + * @return description + **/ + @Schema(description = "An explanatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public PartyRoleDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public PartyRoleDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public PartyRoleDeleteEvent event(PartyRoleDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public PartyRoleDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(PartyRoleDeleteEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyRoleDeleteEvent partyRoleDeleteEvent = (PartyRoleDeleteEvent) o; + return Objects.equals(this.id, partyRoleDeleteEvent.id) && + Objects.equals(this.href, partyRoleDeleteEvent.href) && + Objects.equals(this.eventId, partyRoleDeleteEvent.eventId) && + Objects.equals(this.eventTime, partyRoleDeleteEvent.eventTime) && + Objects.equals(this.eventType, partyRoleDeleteEvent.eventType) && + Objects.equals(this.correlationId, partyRoleDeleteEvent.correlationId) && + Objects.equals(this.domain, partyRoleDeleteEvent.domain) && + Objects.equals(this.title, partyRoleDeleteEvent.title) && + Objects.equals(this.description, partyRoleDeleteEvent.description) && + Objects.equals(this.priority, partyRoleDeleteEvent.priority) && + Objects.equals(this.timeOcurred, partyRoleDeleteEvent.timeOcurred) && + Objects.equals(this.event, partyRoleDeleteEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyRoleDeleteEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleDeleteEventPayload.java new file mode 100644 index 0000000..709198c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleDeleteEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class PartyRoleDeleteEventPayload { + @JsonProperty("partyRole") + private PartyRole partyRole = null; + + public PartyRoleDeleteEventPayload partyRole(PartyRole partyRole) { + this.partyRole = partyRole; + return this; + } + + /** + * The involved resource data for the event + * @return partyRole + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public PartyRole getPartyRole() { + return partyRole; + } + + public void setPartyRole(PartyRole partyRole) { + this.partyRole = partyRole; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyRoleDeleteEventPayload partyRoleDeleteEventPayload = (PartyRoleDeleteEventPayload) o; + return Objects.equals(this.partyRole, partyRoleDeleteEventPayload.partyRole); + } + + @Override + public int hashCode() { + return Objects.hash(partyRole); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyRoleDeleteEventPayload {\n"); + + sb.append(" partyRole: ").append(toIndentedString(partyRole)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleStateChangeEvent.java new file mode 100644 index 0000000..fd5c519 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleStateChangeEvent.java @@ -0,0 +1,380 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class PartyRoleStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private PartyRoleStateChangeEventPayload event = null; + + public PartyRoleStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the resource involved in the event + * @return id + **/ + @Schema(description = "Identifier of the resource involved in the event") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public PartyRoleStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the resource involved in the event + * @return href + **/ + @Schema(description = "Reference of the resource involved in the event") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public PartyRoleStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public PartyRoleStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public PartyRoleStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public PartyRoleStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public PartyRoleStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public PartyRoleStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public PartyRoleStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory of the event. + * @return description + **/ + @Schema(description = "An explanatory of the event.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public PartyRoleStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public PartyRoleStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public PartyRoleStateChangeEvent event(PartyRoleStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * The event payload linked to the involved resource object + * @return event + **/ + @Schema(description = "The event payload linked to the involved resource object") + + @Valid + + public PartyRoleStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(PartyRoleStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyRoleStateChangeEvent partyRoleStateChangeEvent = (PartyRoleStateChangeEvent) o; + return Objects.equals(this.id, partyRoleStateChangeEvent.id) && + Objects.equals(this.href, partyRoleStateChangeEvent.href) && + Objects.equals(this.eventId, partyRoleStateChangeEvent.eventId) && + Objects.equals(this.eventTime, partyRoleStateChangeEvent.eventTime) && + Objects.equals(this.eventType, partyRoleStateChangeEvent.eventType) && + Objects.equals(this.correlationId, partyRoleStateChangeEvent.correlationId) && + Objects.equals(this.domain, partyRoleStateChangeEvent.domain) && + Objects.equals(this.title, partyRoleStateChangeEvent.title) && + Objects.equals(this.description, partyRoleStateChangeEvent.description) && + Objects.equals(this.priority, partyRoleStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, partyRoleStateChangeEvent.timeOcurred) && + Objects.equals(this.event, partyRoleStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyRoleStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleStateChangeEventPayload.java new file mode 100644 index 0000000..db8acc5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleStateChangeEventPayload.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class PartyRoleStateChangeEventPayload { + @JsonProperty("partyRole") + private PartyRole partyRole = null; + + public PartyRoleStateChangeEventPayload partyRole(PartyRole partyRole) { + this.partyRole = partyRole; + return this; + } + + /** + * The involved resource data for the event + * @return partyRole + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public PartyRole getPartyRole() { + return partyRole; + } + + public void setPartyRole(PartyRole partyRole) { + this.partyRole = partyRole; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyRoleStateChangeEventPayload partyRoleStateChangeEventPayload = (PartyRoleStateChangeEventPayload) o; + return Objects.equals(this.partyRole, partyRoleStateChangeEventPayload.partyRole); + } + + @Override + public int hashCode() { + return Objects.hash(partyRole); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyRoleStateChangeEventPayload {\n"); + + sb.append(" partyRole: ").append(toIndentedString(partyRole)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleUpdate.java b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleUpdate.java new file mode 100644 index 0000000..560acbf --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/PartyRoleUpdate.java @@ -0,0 +1,527 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.am651.model.AgreementRef; +import org.etsi.osl.tmf.am666.model.AccountRef; +import org.etsi.osl.tmf.am666.model.PaymentMethodRef; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The part played by a party in a given context. Skipped properties: id,href + */ +@Schema(description = "The part played by a party in a given context. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T23:20:50.154+03:00") + +public class PartyRoleUpdate { + @JsonProperty("name") + private String name = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("statusReason") + private String statusReason = null; + + @JsonProperty("account") + @Valid + private List account = null; + + @JsonProperty("agreement") + @Valid + private List agreement = null; + + @JsonProperty("characteristic") + @Valid + private List characteristic = null; + + @JsonProperty("contactMedium") + @Valid + private List contactMedium = null; + + @JsonProperty("creditProfile") + @Valid + private List creditProfile = null; + + @JsonProperty("engagedParty") + private RelatedParty engagedParty = null; + + @JsonProperty("paymentMethod") + @Valid + private List paymentMethod = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public PartyRoleUpdate name(String name) { + this.name = name; + return this; + } + + /** + * A word, term, or phrase by which the PartyRole is known and distinguished from other PartyRoles. + * @return name + **/ + @Schema(description = "A word, term, or phrase by which the PartyRole is known and distinguished from other PartyRoles.") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public PartyRoleUpdate status(String status) { + this.status = status; + return this; + } + + /** + * Used to track the lifecycle status of the party role. + * @return status + **/ + @Schema(description = "Used to track the lifecycle status of the party role.") + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public PartyRoleUpdate statusReason(String statusReason) { + this.statusReason = statusReason; + return this; + } + + /** + * A string providing an explanation on the value of the status lifecycle. For instance if the status is Rejected, statusReason will provide the reason for rejection. + * @return statusReason + **/ + @Schema(description = "A string providing an explanation on the value of the status lifecycle. For instance if the status is Rejected, statusReason will provide the reason for rejection.") + + + public String getStatusReason() { + return statusReason; + } + + public void setStatusReason(String statusReason) { + this.statusReason = statusReason; + } + + public PartyRoleUpdate account(List account) { + this.account = account; + return this; + } + + public PartyRoleUpdate addAccountItem(AccountRef accountItem) { + if (this.account == null) { + this.account = new ArrayList<>(); + } + this.account.add(accountItem); + return this; + } + + /** + * Get account + * @return account + **/ + @Schema(description = "") + + @Valid + + public List getAccount() { + return account; + } + + public void setAccount(List account) { + this.account = account; + } + + public PartyRoleUpdate agreement(List agreement) { + this.agreement = agreement; + return this; + } + + public PartyRoleUpdate addAgreementItem(AgreementRef agreementItem) { + if (this.agreement == null) { + this.agreement = new ArrayList<>(); + } + this.agreement.add(agreementItem); + return this; + } + + /** + * Get agreement + * @return agreement + **/ + @Schema(description = "") + + @Valid + + public List getAgreement() { + return agreement; + } + + public void setAgreement(List agreement) { + this.agreement = agreement; + } + + public PartyRoleUpdate characteristic(List characteristic) { + this.characteristic = characteristic; + return this; + } + + public PartyRoleUpdate addCharacteristicItem(Characteristic characteristicItem) { + if (this.characteristic == null) { + this.characteristic = new ArrayList<>(); + } + this.characteristic.add(characteristicItem); + return this; + } + + /** + * Describes the characteristic of a party role. + * @return characteristic + **/ + @Schema(description = "Describes the characteristic of a party role.") + + @Valid + + public List getCharacteristic() { + return characteristic; + } + + public void setCharacteristic(List characteristic) { + this.characteristic = characteristic; + } + + public PartyRoleUpdate contactMedium(List contactMedium) { + this.contactMedium = contactMedium; + return this; + } + + public PartyRoleUpdate addContactMediumItem(ContactMedium contactMediumItem) { + if (this.contactMedium == null) { + this.contactMedium = new ArrayList<>(); + } + this.contactMedium.add(contactMediumItem); + return this; + } + + /** + * Get contactMedium + * @return contactMedium + **/ + @Schema(description = "") + + @Valid + + public List getContactMedium() { + return contactMedium; + } + + public void setContactMedium(List contactMedium) { + this.contactMedium = contactMedium; + } + + public PartyRoleUpdate creditProfile(List creditProfile) { + this.creditProfile = creditProfile; + return this; + } + + public PartyRoleUpdate addCreditProfileItem(CreditProfile creditProfileItem) { + if (this.creditProfile == null) { + this.creditProfile = new ArrayList<>(); + } + this.creditProfile.add(creditProfileItem); + return this; + } + + /** + * Get creditProfile + * @return creditProfile + **/ + @Schema(description = "") + + @Valid + + public List getCreditProfile() { + return creditProfile; + } + + public void setCreditProfile(List creditProfile) { + this.creditProfile = creditProfile; + } + + public PartyRoleUpdate engagedParty(RelatedParty engagedParty) { + this.engagedParty = engagedParty; + return this; + } + + /** + * Get engagedParty + * @return engagedParty + **/ + @Schema(description = "") + + @Valid + + public RelatedParty getEngagedParty() { + return engagedParty; + } + + public void setEngagedParty(RelatedParty engagedParty) { + this.engagedParty = engagedParty; + } + + public PartyRoleUpdate paymentMethod(List paymentMethod) { + this.paymentMethod = paymentMethod; + return this; + } + + public PartyRoleUpdate addPaymentMethodItem(PaymentMethodRef paymentMethodItem) { + if (this.paymentMethod == null) { + this.paymentMethod = new ArrayList<>(); + } + this.paymentMethod.add(paymentMethodItem); + return this; + } + + /** + * Get paymentMethod + * @return paymentMethod + **/ + @Schema(description = "") + + @Valid + + public List getPaymentMethod() { + return paymentMethod; + } + + public void setPaymentMethod(List paymentMethod) { + this.paymentMethod = paymentMethod; + } + + public PartyRoleUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public PartyRoleUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public PartyRoleUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The time period that the PartyRole is valid for. + * @return validFor + **/ + @Schema(description = "The time period that the PartyRole is valid for.") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public PartyRoleUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public PartyRoleUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public PartyRoleUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PartyRoleUpdate partyRoleUpdate = (PartyRoleUpdate) o; + return Objects.equals(this.name, partyRoleUpdate.name) && + Objects.equals(this.status, partyRoleUpdate.status) && + Objects.equals(this.statusReason, partyRoleUpdate.statusReason) && + Objects.equals(this.account, partyRoleUpdate.account) && + Objects.equals(this.agreement, partyRoleUpdate.agreement) && + Objects.equals(this.characteristic, partyRoleUpdate.characteristic) && + Objects.equals(this.contactMedium, partyRoleUpdate.contactMedium) && + Objects.equals(this.creditProfile, partyRoleUpdate.creditProfile) && + Objects.equals(this.engagedParty, partyRoleUpdate.engagedParty) && + Objects.equals(this.paymentMethod, partyRoleUpdate.paymentMethod) && + Objects.equals(this.relatedParty, partyRoleUpdate.relatedParty) && + Objects.equals(this.validFor, partyRoleUpdate.validFor) && + Objects.equals(this.baseType, partyRoleUpdate.baseType) && + Objects.equals(this.schemaLocation, partyRoleUpdate.schemaLocation) && + Objects.equals(this.type, partyRoleUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(name, status, statusReason, account, agreement, characteristic, contactMedium, creditProfile, engagedParty, paymentMethod, relatedParty, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PartyRoleUpdate {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" statusReason: ").append(toIndentedString(statusReason)).append("\n"); + sb.append(" account: ").append(toIndentedString(account)).append("\n"); + sb.append(" agreement: ").append(toIndentedString(agreement)).append("\n"); + sb.append(" characteristic: ").append(toIndentedString(characteristic)).append("\n"); + sb.append(" contactMedium: ").append(toIndentedString(contactMedium)).append("\n"); + sb.append(" creditProfile: ").append(toIndentedString(creditProfile)).append("\n"); + sb.append(" engagedParty: ").append(toIndentedString(engagedParty)).append("\n"); + sb.append(" paymentMethod: ").append(toIndentedString(paymentMethod)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/prm669/model/RelatedParty.java b/src/main/java/org/etsi/osl/tmf/prm669/model/RelatedParty.java new file mode 100644 index 0000000..f2a3ab6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/prm669/model/RelatedParty.java @@ -0,0 +1,209 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.prm669.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * RelatedParty reference. A related party defines party or party role linked to + * a specific entity. + * + * From https://engage.tmforum.org/communities/community-home/digestviewer/viewthread?MessageKey=0f5269cd-fe03-4efe-a8e5-064a12bae529&CommunityKey=d543b8ba-9d3a-4121-85ce-5b68e6c31ce5&tab=digestviewer#bm0f5269cd-fe03-4efe-a8e5-064a12bae529 + * + * Related Party is intended to provide a reference to either a Party (RelatedParty.role will be blank) or a PartyRole (RelatedParty.role will have the name of the role). Related Party is not in itself a managed entity. + * If a Party plays multiple roles, there will be a PartyRole (or concrete subclass) for each such role. Suppose John Doe works for H.A.L computers as the communications expert, and H.A.L. uses NXT Communications for its business wireline services. John Doe also has personal cellphone service from NXT for himself and his daughter. + * So: + + There will be an Individual (subclass of Party) with first name John, last name Doe + There will be an Organization (subclass of Party) with name H.A.L. + There will be a Customer (subclass of PartyRole) with name John Doe, and the engagedParty for this Customer will be the Individual John Doe + There will be a Customer (subclass of PartyRole) with name H.A.L., and the engagedParty for this Customer will be the Organization H.A.L. + There will be a PartyRole with name John Doe and role Contact, and the engagedParty for this PartyRole will be the Individual John Doe + The Customer H.A.L. will have a RelatedParty that points to the John Doe PartyRole + + + */ +@Schema(description = "RelatedParty reference. A related party defines party or party role linked to a specific entity.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Entity(name = "RelatedParty") +public class RelatedParty extends BaseRootNamedEntity{ + @JsonProperty("role") + private String role = null; + + @JsonProperty("@referredType") + private String referredType = null; + + @JsonProperty("id") + protected String id = null; + + @JsonProperty("extendedInfo") + private String extendedInfo = null; + + + + public RelatedParty() { + super(); + this.baseType = "BaseRootEntity"; + this.type = this.getClass().getName(); + } + + public RelatedParty( RelatedParty rp) { + this.name = rp.getName(); + this.role = rp.getRole(); + this.referredType = rp.getReferredType(); + this.id = rp.getId(); + } + + public RelatedParty id(String id) { + this.id = id; + return this; + } + + /** + * @return the id + */ + public String getId() { + return id; + } + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + + public RelatedParty role(String role) { + this.role = role; + return this; + } + + /** + * Role of the related party. + * + * @return role + **/ + @Schema(description = "Role of the related party.") + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + + public RelatedParty referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + + /** + * @return the extendedInfo + */ + public String getExtendedInfo() { + return extendedInfo; + } + + /** + * @param extendedInfo the extendedInfo to set + */ + public void setExtendedInfo(String extendedInfo) { + this.extendedInfo = extendedInfo; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RelatedParty relatedParty = (RelatedParty) o; + return Objects.equals(this.id, relatedParty.id) && Objects.equals(this.href, relatedParty.href) + && Objects.equals(this.name, relatedParty.name) && Objects.equals(this.role, relatedParty.role) + && Objects.equals(this.baseType, relatedParty.baseType) + && Objects.equals(this.schemaLocation, relatedParty.schemaLocation) + && Objects.equals(this.type, relatedParty.type) + && Objects.equals(this.referredType, relatedParty.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, role, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RelatedParty {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" extendedInfo: ").append(toIndentedString(extendedInfo)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/ApiException.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/ApiException.java new file mode 100644 index 0000000..5371ea0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ApiException.java @@ -0,0 +1,29 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/ApiOriginFilter.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/ApiOriginFilter.java new file mode 100644 index 0000000..feeb9a4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ApiOriginFilter.java @@ -0,0 +1,50 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.api; + +import java.io.IOException; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ApiOriginFilter implements jakarta.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/ApiResponseMessage.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/ApiResponseMessage.java new file mode 100644 index 0000000..4eeb83b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ApiResponseMessage.java @@ -0,0 +1,88 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.api; + +import jakarta.xml.bind.annotation.XmlTransient; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@jakarta.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/ExportJobApi.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/ExportJobApi.java new file mode 100644 index 0000000..a29a83f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ExportJobApi.java @@ -0,0 +1,186 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.rcm634.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rcm634.model.ExportJob; +import org.etsi.osl.tmf.rcm634.model.ExportJobCreate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@Tag(name = "exportJob", description = "the exportJob API") +public interface ExportJobApi { + + Logger log = LoggerFactory.getLogger(ExportJobApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a ExportJob", operationId = "createExportJob", description = "This operation creates a ExportJob entity.", tags={ "exportJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/exportJob", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createExportJob(@Parameter(description = "The ExportJob to be created" ,required=true ) @Valid @RequestBody ExportJobCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"@type\" : \"@type\",\r\n \"query\" : \"query\",\r\n \"errorLog\" : \"errorLog\",\r\n \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"url\" : \"url\",\r\n \"path\" : \"path\",\r\n \"@baseType\" : \"@baseType\",\r\n \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"contentType\" : \"contentType\",\r\n \"status\" : \"Not Started\"\r\n}", ExportJob.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ExportJobApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a ExportJob", operationId = "deleteExportJob", description = "This operation deletes a ExportJob entity.", tags={ "exportJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/exportJob/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteExportJob(@Parameter(description = "Identifier of the ExportJob",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ExportJobApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find ExportJob objects", operationId = "listExportJob", description = "This operation list or find ExportJob entities" , tags={ "exportJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/exportJob", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listExportJob(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"@type\" : \"@type\",\r\n \"query\" : \"query\",\r\n \"errorLog\" : \"errorLog\",\r\n \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"url\" : \"url\",\r\n \"path\" : \"path\",\r\n \"@baseType\" : \"@baseType\",\r\n \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"contentType\" : \"contentType\",\r\n \"status\" : \"Not Started\"\r\n}, {\r\n \"@type\" : \"@type\",\r\n \"query\" : \"query\",\r\n \"errorLog\" : \"errorLog\",\r\n \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"url\" : \"url\",\r\n \"path\" : \"path\",\r\n \"@baseType\" : \"@baseType\",\r\n \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"contentType\" : \"contentType\",\r\n \"status\" : \"Not Started\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ExportJobApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a ExportJob by ID", operationId = "retrieveExportJob", description = "This operation retrieves a ExportJob entity. Attribute selection is enabled for all first level attributes.", tags={ "exportJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/exportJob/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveExportJob(@Parameter(description = "Identifier of the ExportJob",required=true) @PathVariable("id") String id +,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"@type\" : \"@type\",\r\n \"query\" : \"query\",\r\n \"errorLog\" : \"errorLog\",\r\n \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"url\" : \"url\",\r\n \"path\" : \"path\",\r\n \"@baseType\" : \"@baseType\",\r\n \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"contentType\" : \"contentType\",\r\n \"status\" : \"Not Started\"\r\n}", ExportJob.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ExportJobApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/ExportJobApiController.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/ExportJobApiController.java new file mode 100644 index 0000000..23e542e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ExportJobApiController.java @@ -0,0 +1,53 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@Controller +public class ExportJobApiController implements ExportJobApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ExportJobApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/HubApi.java new file mode 100644 index 0000000..d43c15c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/HubApi.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.rcm634.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rcm634.model.EventSubscription; +import org.etsi.osl.tmf.rcm634.model.EventSubscriptionInput; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@Tag(name = "hub", description = "the hub API") +public interface HubApi { + + Logger log = LoggerFactory.getLogger(HubApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Register a listener", operationId = "registerListener", description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Subscribed" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Unregister a listener", operationId = "unregisterListener", description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method not allowed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/HubApiController.java new file mode 100644 index 0000000..6173bb2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/HubApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + +@Controller("HubApiController634") +@RequestMapping("/resourceCatalogManagement/v4/") +public class HubApiController implements HubApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public HubApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/ImportJobApi.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/ImportJobApi.java new file mode 100644 index 0000000..9c1c60d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ImportJobApi.java @@ -0,0 +1,186 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.rcm634.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rcm634.model.ImportJob; +import org.etsi.osl.tmf.rcm634.model.ImportJobCreate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@Tag(name = "importJob", description = "the importJob API") +public interface ImportJobApi { + + Logger log = LoggerFactory.getLogger(ImportJobApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a ImportJob", operationId = "createImportJob", description = "This operation creates a ImportJob entity.", tags={ "importJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/importJob", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createImportJob(@Parameter(description = "The ImportJob to be created" ,required=true ) @Valid @RequestBody ImportJobCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"path\" : \"path\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"errorLog\" : \"errorLog\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"contentType\" : \"contentType\",\r\n \"url\" : \"url\",\r\n \"status\" : \"Not Started\"\r\n}", ImportJob.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ImportJobApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a ImportJob", operationId = "deleteImportJob", description = "This operation deletes a ImportJob entity.", tags={ "importJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/importJob/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteImportJob(@Parameter(description = "Identifier of the ImportJob",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ImportJobApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find ImportJob objects", operationId = "listImportJob", description = "This operation list or find ImportJob entities" , tags={ "importJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/importJob", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listImportJob(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"path\" : \"path\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"errorLog\" : \"errorLog\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"contentType\" : \"contentType\",\r\n \"url\" : \"url\",\r\n \"status\" : \"Not Started\"\r\n}, {\r\n \"path\" : \"path\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"errorLog\" : \"errorLog\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"contentType\" : \"contentType\",\r\n \"url\" : \"url\",\r\n \"status\" : \"Not Started\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ImportJobApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a ImportJob by ID", operationId = "retrieveImportJob", description = "This operation retrieves a ImportJob entity. Attribute selection is enabled for all first level attributes.", tags={ "importJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/importJob/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveImportJob(@Parameter(description = "Identifier of the ImportJob",required=true) @PathVariable("id") String id +,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"path\" : \"path\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"errorLog\" : \"errorLog\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"contentType\" : \"contentType\",\r\n \"url\" : \"url\",\r\n \"status\" : \"Not Started\"\r\n}", ImportJob.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ImportJobApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/ImportJobApiController.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/ImportJobApiController.java new file mode 100644 index 0000000..49c9a12 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ImportJobApiController.java @@ -0,0 +1,53 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@Controller +public class ImportJobApiController implements ImportJobApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ImportJobApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/ListenerApi.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/ListenerApi.java new file mode 100644 index 0000000..2c3573a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ListenerApi.java @@ -0,0 +1,591 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.rcm634.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rcm634.model.EventSubscription; +import org.etsi.osl.tmf.rcm634.model.ExportJobCreateEvent; +import org.etsi.osl.tmf.rcm634.model.ExportJobStateChangeEvent; +import org.etsi.osl.tmf.rcm634.model.ImportJobCreateEvent; +import org.etsi.osl.tmf.rcm634.model.ImportJobStateChangeEvent; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidateChangeEvent; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidateCreateEvent; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidateDeleteEvent; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalogChangeEvent; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalogCreateEvent; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalogDeleteEvent; +import org.etsi.osl.tmf.rcm634.model.ResourceCategoryChangeEvent; +import org.etsi.osl.tmf.rcm634.model.ResourceCategoryCreateEvent; +import org.etsi.osl.tmf.rcm634.model.ResourceCategoryDeleteEvent; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationChangeEvent; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreateEvent; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationDeleteEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@Tag(name = "listener", description = "the listener API") +public interface ListenerApi { + + Logger log = LoggerFactory.getLogger(ListenerApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Client listener for entity ExportJobCreateEvent", operationId = "listenToExportJobCreateEvent", description = "Example of a client listener for receiving the notification ExportJobCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/exportJobCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToExportJobCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ExportJobCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ExportJobStateChangeEvent", operationId = "listenToExportJobStateChangeEvent", description = "Example of a client listener for receiving the notification ExportJobStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/exportJobStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToExportJobStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ExportJobStateChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ImportJobCreateEvent", operationId = "listenToImportJobCreateEvent", description = "Example of a client listener for receiving the notification ImportJobCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/importJobCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToImportJobCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ImportJobCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ImportJobStateChangeEvent", operationId = "listenToImportJobStateChangeEvent", description = "Example of a client listener for receiving the notification ImportJobStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/importJobStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToImportJobStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ImportJobStateChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceCandidateChangeEvent", operationId = "listenToResourceCandidateChangeEvent", description = "Example of a client listener for receiving the notification ResourceCandidateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceCandidateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceCandidateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceCandidateChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceCandidateCreateEvent", operationId = "listenToResourceCandidateCreateEvent", description = "Example of a client listener for receiving the notification ResourceCandidateCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceCandidateCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceCandidateCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceCandidateCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceCandidateDeleteEvent", operationId = "listenToResourceCandidateDeleteEvent", description = "Example of a client listener for receiving the notification ResourceCandidateDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceCandidateDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceCandidateDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceCandidateDeleteEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceCatalogChangeEvent", operationId = "listenToResourceCatalogChangeEvent", description = "Example of a client listener for receiving the notification ResourceCatalogChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceCatalogChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceCatalogChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceCatalogChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceCatalogCreateEvent", operationId = "listenToResourceCatalogCreateEvent", description = "Example of a client listener for receiving the notification ResourceCatalogCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceCatalogCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceCatalogCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceCatalogCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceCatalogDeleteEvent", operationId = "listenToResourceCatalogDeleteEvent", description = "Example of a client listener for receiving the notification ResourceCatalogDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceCatalogDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceCatalogDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceCatalogDeleteEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceCategoryChangeEvent", operationId = "listenToResourceCategoryChangeEvent", description = "Example of a client listener for receiving the notification ResourceCategoryChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceCategoryChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceCategoryChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceCategoryChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceCategoryCreateEvent", operationId = "listenToResourceCategoryCreateEvent", description = "Example of a client listener for receiving the notification ResourceCategoryCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceCategoryCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceCategoryCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceCategoryCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceCategoryDeleteEvent", operationId = "listenToResourceCategoryDeleteEvent", description = "Example of a client listener for receiving the notification ResourceCategoryDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceCategoryDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceCategoryDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceCategoryDeleteEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceSpecificationChangeEvent", operationId = "listenToResourceSpecificationChangeEvent", description = "Example of a client listener for receiving the notification ResourceSpecificationChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceSpecificationChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceSpecificationChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceSpecificationChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceSpecificationCreateEvent", operationId = "listenToResourceSpecificationCreateEvent", description = "Example of a client listener for receiving the notification ResourceSpecificationCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceSpecificationCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceSpecificationCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceSpecificationCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceSpecificationDeleteEvent", operationId = "listenToResourceSpecificationDeleteEvent", description = "Example of a client listener for receiving the notification ResourceSpecificationDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceSpecificationDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceSpecificationDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceSpecificationDeleteEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/ListenerApiController.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/ListenerApiController.java new file mode 100644 index 0000000..554505e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ListenerApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + +@Controller("ListenerApiController") +@RequestMapping("/resourceCatalogManagement/v4/") +public class ListenerApiController implements ListenerApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ListenerApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/NotFoundException.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/NotFoundException.java new file mode 100644 index 0000000..e30c7bc --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/NotFoundException.java @@ -0,0 +1,29 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class NotFoundException extends ApiException { + private int code; + public NotFoundException (int code, String msg) { + super(code, msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCandidateApi.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCandidateApi.java new file mode 100644 index 0000000..543ff7f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCandidateApi.java @@ -0,0 +1,220 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.rcm634.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidate; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidateCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidateUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@Tag(name = "resourceCandidate", description = "the resourceCandidate API") +public interface ResourceCandidateApi { + + Logger log = LoggerFactory.getLogger(ResourceCandidateApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a ResourceCandidate", operationId = "createResourceCandidate", description = "This operation creates a ResourceCandidate entity.", tags={ "resourceCandidate", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceCandidate", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createResourceCandidate(@Parameter(description = "The ResourceCandidate to be created" ,required=true ) @Valid @RequestBody ResourceCandidateCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"version\" : \"version\",\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", ResourceCandidate.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceCandidateApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a ResourceCandidate", operationId = "deleteResourceCandidate", description = "This operation deletes a ResourceCandidate entity.", tags={ "resourceCandidate", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceCandidate/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteResourceCandidate(@Parameter(description = "Identifier of the ResourceCandidate",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceCandidateApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find ResourceCandidate objects", operationId = "listResourceCandidate", description = "This operation list or find ResourceCandidate entities" , tags={ "resourceCandidate", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceCandidate", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listResourceCandidate(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"version\" : \"version\",\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}, {\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"version\" : \"version\",\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceCandidateApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a ResourceCandidate", operationId = "patchResourceCandidate", description = "This operation updates partially a ResourceCandidate entity.", tags={ "resourceCandidate", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceCandidate/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchResourceCandidate(@Parameter(description = "The ResourceCandidate to be updated" ,required=true ) @Valid @RequestBody ResourceCandidateUpdate body +,@Parameter(description = "Identifier of the ResourceCandidate",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"version\" : \"version\",\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", ResourceCandidate.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceCandidateApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a ResourceCandidate by ID", operationId = "retrieveResourceCandidate", description = "This operation retrieves a ResourceCandidate entity. Attribute selection is enabled for all first level attributes.", tags={ "resourceCandidate", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceCandidate/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveResourceCandidate(@Parameter(description = "Identifier of the ResourceCandidate",required=true) @PathVariable("id") String id +,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"version\" : \"version\",\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", ResourceCandidate.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceCandidateApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCandidateApiController.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCandidateApiController.java new file mode 100644 index 0000000..c7f3bf5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCandidateApiController.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.api; + +import java.util.List; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidate; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidateCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidateUpdate; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceCandidateRepoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@Controller +@RequestMapping("/resourceCatalogManagement/v4/") +public class ResourceCandidateApiController implements ResourceCandidateApi { + + + @Autowired + ResourceCandidateRepoService candidateRepoService; + + + @Override + public ResponseEntity createResourceCandidate(@Valid ResourceCandidateCreate body) { + + try { + + ResourceCandidate c = candidateRepoService.addResourceCandidate(body); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity deleteResourceCandidate(String id) { + try { + + return new ResponseEntity( candidateRepoService.deleteById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity> listResourceCandidate(@Valid String fields, @Valid Integer offset, + @Valid Integer limit) { + + try { + return new ResponseEntity>( candidateRepoService.findAll() , HttpStatus.OK); + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @Override + public ResponseEntity patchResourceCandidate(@Valid ResourceCandidateUpdate body, String id) { + ResourceCandidate c = candidateRepoService.updateCandidate( id, body ); + + return new ResponseEntity(c, HttpStatus.OK); + } + + @Override + public ResponseEntity retrieveResourceCandidate(String id, @Valid String fields) { + try { + + return new ResponseEntity( candidateRepoService.findById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCatalogApi.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCatalogApi.java new file mode 100644 index 0000000..fa30f8f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCatalogApi.java @@ -0,0 +1,220 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.rcm634.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalog; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalogCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalogUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@Tag(name = "resourceCatalog", description = "the resourceCatalog API") +public interface ResourceCatalogApi { + + Logger log = LoggerFactory.getLogger(ResourceCatalogApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a ResourceCatalog", operationId = "createResourceCatalog", description = "This operation creates a ResourceCatalog entity.", tags={ "resourceCatalog", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceCatalog", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createResourceCatalog(@Parameter(description = "The ResourceCatalog to be created" ,required=true ) @Valid @RequestBody ResourceCatalogCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", ResourceCatalog.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceCatalogApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a ResourceCatalog", operationId = "deleteResourceCatalog", description = "This operation deletes a ResourceCatalog entity.", tags={ "resourceCatalog", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceCatalog/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteResourceCatalog(@Parameter(description = "Identifier of the ResourceCatalog",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceCatalogApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find ResourceCatalog objects", operationId = "listResourceCatalog", description = "This operation list or find ResourceCatalog entities" , tags={ "resourceCatalog", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceCatalog", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listResourceCatalog(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}, {\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceCatalogApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a ResourceCatalog", operationId = "patchResourceCatalog", description = "This operation updates partially a ResourceCatalog entity.", tags={ "resourceCatalog", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceCatalog/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchResourceCatalog(@Parameter(description = "The ResourceCatalog to be updated" ,required=true ) @Valid @RequestBody ResourceCatalogUpdate body +,@Parameter(description = "Identifier of the ResourceCatalog",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", ResourceCatalog.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceCatalogApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a ResourceCatalog by ID", operationId = "retrieveResourceCatalog", description = "This operation retrieves a ResourceCatalog entity. Attribute selection is enabled for all first level attributes.", tags={ "resourceCatalog", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceCatalog/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveResourceCatalog(@Parameter(description = "Identifier of the ResourceCatalog",required=true) @PathVariable("id") String id +,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", ResourceCatalog.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceCatalogApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCatalogApiController.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCatalogApiController.java new file mode 100644 index 0000000..f4a1a56 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCatalogApiController.java @@ -0,0 +1,108 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.api; + +import java.util.List; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalog; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalogCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalogUpdate; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceCatalogRepoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Parameter; +import jakarta.validation.Valid; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@Controller +@RequestMapping("/resourceCatalogManagement/v4/") +public class ResourceCatalogApiController implements ResourceCatalogApi { + + + @Autowired + ResourceCatalogRepoService catalogRepoService ; + + + + @Override + public ResponseEntity createResourceCatalog( + @Parameter(description = "The Resource Catalog to be created" ,required=true ) @Valid @RequestBody ResourceCatalogCreate resourceCatalog) { + try { + + ResourceCatalog c = catalogRepoService.addCatalog( resourceCatalog ); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + + @Override + public ResponseEntity deleteResourceCatalog(@Parameter(description = "Identifier of the ResourceCatalog",required=true) @PathVariable("id") String id) { + try { + + return new ResponseEntity( catalogRepoService.deleteById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity> listResourceCatalog(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + + try { + return new ResponseEntity>( catalogRepoService.findAll() , HttpStatus.OK); + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity patchResourceCatalog(@Valid ResourceCatalogUpdate body, String id) { + ResourceCatalog c = catalogRepoService.updateCatalog( id, body ); + + return new ResponseEntity(c, HttpStatus.OK); + } + + + + @Override + public ResponseEntity retrieveResourceCatalog(@Parameter(description = "Identifier of the ResourceCatalog",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + try { + + return new ResponseEntity( catalogRepoService.findById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCategoryApi.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCategoryApi.java new file mode 100644 index 0000000..930daee --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCategoryApi.java @@ -0,0 +1,220 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.rcm634.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rcm634.model.ResourceCategory; +import org.etsi.osl.tmf.rcm634.model.ResourceCategoryCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceCategoryUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@Tag(name = "resourceCategory", description = "the resourceCategory API") +public interface ResourceCategoryApi { + + Logger log = LoggerFactory.getLogger(ResourceCategoryApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a ResourceCategory", operationId = "createResourceCategory", description = "This operation creates a ResourceCategory entity.", tags={ "resourceCategory", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceCategory", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createResourceCategory(@Parameter(description = "The ResourceCategory to be created" ,required=true ) @Valid @RequestBody ResourceCategoryCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"isRoot\" : true,\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"resourceCandidate\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"parentId\" : \"parentId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", ResourceCategory.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceCategoryApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a ResourceCategory", operationId = "deleteResourceCategory", description = "This operation deletes a ResourceCategory entity.", tags={ "resourceCategory", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceCategory/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteResourceCategory(@Parameter(description = "Identifier of the ResourceCategory",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceCategoryApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find ResourceCategory objects", operationId = "listResourceCategory", description = "This operation list or find ResourceCategory entities" , tags={ "resourceCategory", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceCategory", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listResourceCategory(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"isRoot\" : true,\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"resourceCandidate\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"parentId\" : \"parentId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}, {\r\n \"isRoot\" : true,\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"resourceCandidate\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"parentId\" : \"parentId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceCategoryApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a ResourceCategory", operationId = "patchResourceCategory", description = "This operation updates partially a ResourceCategory entity.", tags={ "resourceCategory", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceCategory/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchResourceCategory(@Parameter(description = "The ResourceCategory to be updated" ,required=true ) @Valid @RequestBody ResourceCategoryUpdate body +,@Parameter(description = "Identifier of the ResourceCategory",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"isRoot\" : true,\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"resourceCandidate\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"parentId\" : \"parentId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", ResourceCategory.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceCategoryApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a ResourceCategory by ID", operationId = "retrieveResourceCategory", description = "This operation retrieves a ResourceCategory entity. Attribute selection is enabled for all first level attributes.", tags={ "resourceCategory", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceCategory/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveResourceCategory(@Parameter(description = "Identifier of the ResourceCategory",required=true) @PathVariable("id") String id +,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"isRoot\" : true,\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"resourceCandidate\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"parentId\" : \"parentId\",\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", ResourceCategory.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceCategoryApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCategoryApiController.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCategoryApiController.java new file mode 100644 index 0000000..811a6c3 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceCategoryApiController.java @@ -0,0 +1,112 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.api; + +import java.util.List; +import org.etsi.osl.tmf.rcm634.model.ResourceCategory; +import org.etsi.osl.tmf.rcm634.model.ResourceCategoryCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceCategoryUpdate; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceCategoryRepoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import io.swagger.v3.oas.annotations.Parameter; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@Controller +@RequestMapping("/resourceCatalogManagement/v4/") +public class ResourceCategoryApiController implements ResourceCategoryApi { + + @Autowired + ResourceCategoryRepoService categoryRepoService; + + @Override + public ResponseEntity createResourceCategory( + @Parameter(description = "The ServiceCategory to be created", required = true) @Valid @RequestBody ResourceCategoryCreate resCategory) { + + try { + + ResourceCategory c = categoryRepoService.addCategory(resCategory); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + @Override + public ResponseEntity deleteResourceCategory( + @Parameter(description = "Identifier of the Resource Category", required = true) @PathVariable("id") String id) { + try { + if (categoryRepoService.deleteById(id)) { + return new ResponseEntity(HttpStatus.OK); + + } else { + return new ResponseEntity(HttpStatus.NOT_MODIFIED); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity> listResourceCategory(@Valid String fields, @Valid Integer offset, + @Valid Integer limit) { + try { + return new ResponseEntity>(categoryRepoService.findAll(), HttpStatus.OK); + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + + + @Override + public ResponseEntity patchResourceCategory(@Valid ResourceCategoryUpdate resourceCategory, String id) { + ResourceCategory c = categoryRepoService.updateCategory(id, resourceCategory); + + return new ResponseEntity(c, HttpStatus.OK); + } + + + @Override + public ResponseEntity retrieveResourceCategory(String id, @Valid String fields) { + try { + + return new ResponseEntity( categoryRepoService.findByUuid(id) , HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceSpecificationApi.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceSpecificationApi.java new file mode 100644 index 0000000..dc9bd6f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceSpecificationApi.java @@ -0,0 +1,306 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.rcm634.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@Tag(name = "resourceSpecification", description = "the resourceSpecification API") +public interface ResourceSpecificationApi { + + Logger log = LoggerFactory.getLogger(ResourceSpecificationApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a ResourceSpecification", operationId = "createResourceSpecification", description = "This operation creates a ResourceSpecification entity.", tags={ "resourceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceSpecification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + + default ResponseEntity createResourceSpecification(@Parameter(description = "The ResourceSpecification to be created" ,required=true ) @Valid @RequestBody JsonNode jsonNode + ) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"isBundle\" : true,\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"resourceSpecCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 2,\r\n \"resourceSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n } ],\r\n \"minCardinality\" : 7,\r\n \"regex\" : \"regex\",\r\n \"resourceSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 2,\r\n \"resourceSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n } ],\r\n \"minCardinality\" : 7,\r\n \"regex\" : \"regex\",\r\n \"resourceSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n } ],\r\n \"featureSpecification\" : [ {\r\n \"isBundle\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"featureSpecRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\",\r\n \"featureSpecCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n } ]\r\n }, {\r\n \"isBundle\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"featureSpecRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\",\r\n \"featureSpecCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n } ]\r\n } ],\r\n \"resourceSpecRelationship\" : [ {\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@type\" : \"@type\",\r\n \"defaultQuantity\" : 2,\r\n \"characteristic\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"minimumQuantity\" : 7,\r\n \"maximumQuantity\" : 4\r\n }, {\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@type\" : \"@type\",\r\n \"defaultQuantity\" : 2,\r\n \"characteristic\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"minimumQuantity\" : 7,\r\n \"maximumQuantity\" : 4\r\n } ],\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"url\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"url\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"targetResourceSchema\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", ResourceSpecification.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + +// default ResponseEntity createResourceSpecification(@Parameter(description = "The ResourceSpecification to be created" ,required=true ) @Valid @RequestBody ResourceSpecificationCreate body +//) { +// if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { +// if (getAcceptHeader().get().contains("application/json")) { +// try { +// return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"isBundle\" : true,\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"resourceSpecCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 2,\r\n \"resourceSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n } ],\r\n \"minCardinality\" : 7,\r\n \"regex\" : \"regex\",\r\n \"resourceSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 2,\r\n \"resourceSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n } ],\r\n \"minCardinality\" : 7,\r\n \"regex\" : \"regex\",\r\n \"resourceSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n } ],\r\n \"featureSpecification\" : [ {\r\n \"isBundle\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"featureSpecRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\",\r\n \"featureSpecCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n } ]\r\n }, {\r\n \"isBundle\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"featureSpecRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\",\r\n \"featureSpecCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n } ]\r\n } ],\r\n \"resourceSpecRelationship\" : [ {\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@type\" : \"@type\",\r\n \"defaultQuantity\" : 2,\r\n \"characteristic\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"minimumQuantity\" : 7,\r\n \"maximumQuantity\" : 4\r\n }, {\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@type\" : \"@type\",\r\n \"defaultQuantity\" : 2,\r\n \"characteristic\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"minimumQuantity\" : 7,\r\n \"maximumQuantity\" : 4\r\n } ],\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"url\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"url\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"targetResourceSchema\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", ResourceSpecification.class), HttpStatus.NOT_IMPLEMENTED); +// } catch (IOException e) { +// log.error("Couldn't serialize response for content type application/json", e); +// return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); +// } +// } +// } else { +// log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceSpecificationApi interface so no example is generated"); +// } +// return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); +// } + + + @Operation(summary = "Deletes a ResourceSpecification", operationId = "deleteResourceSpecification", description = "This operation deletes a ResourceSpecification entity.", tags={ "resourceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceSpecification/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteResourceSpecification(@Parameter(description = "Identifier of the ResourceSpecification",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find ResourceSpecification objects", operationId = "listResourceSpecification", description = "This operation list or find ResourceSpecification entities" , tags={ "resourceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceSpecification", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listResourceSpecification(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"isBundle\" : true,\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"resourceSpecCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 2,\r\n \"resourceSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n } ],\r\n \"minCardinality\" : 7,\r\n \"regex\" : \"regex\",\r\n \"resourceSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 2,\r\n \"resourceSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n } ],\r\n \"minCardinality\" : 7,\r\n \"regex\" : \"regex\",\r\n \"resourceSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n } ],\r\n \"featureSpecification\" : [ {\r\n \"isBundle\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"featureSpecRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\",\r\n \"featureSpecCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n } ]\r\n }, {\r\n \"isBundle\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"featureSpecRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\",\r\n \"featureSpecCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n } ]\r\n } ],\r\n \"resourceSpecRelationship\" : [ {\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@type\" : \"@type\",\r\n \"defaultQuantity\" : 2,\r\n \"characteristic\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"minimumQuantity\" : 7,\r\n \"maximumQuantity\" : 4\r\n }, {\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@type\" : \"@type\",\r\n \"defaultQuantity\" : 2,\r\n \"characteristic\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"minimumQuantity\" : 7,\r\n \"maximumQuantity\" : 4\r\n } ],\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"url\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"url\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"targetResourceSchema\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}, {\r\n \"isBundle\" : true,\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"resourceSpecCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 2,\r\n \"resourceSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n } ],\r\n \"minCardinality\" : 7,\r\n \"regex\" : \"regex\",\r\n \"resourceSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 2,\r\n \"resourceSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n } ],\r\n \"minCardinality\" : 7,\r\n \"regex\" : \"regex\",\r\n \"resourceSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n } ],\r\n \"featureSpecification\" : [ {\r\n \"isBundle\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"featureSpecRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\",\r\n \"featureSpecCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n } ]\r\n }, {\r\n \"isBundle\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"featureSpecRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\",\r\n \"featureSpecCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n } ]\r\n } ],\r\n \"resourceSpecRelationship\" : [ {\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@type\" : \"@type\",\r\n \"defaultQuantity\" : 2,\r\n \"characteristic\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"minimumQuantity\" : 7,\r\n \"maximumQuantity\" : 4\r\n }, {\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@type\" : \"@type\",\r\n \"defaultQuantity\" : 2,\r\n \"characteristic\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"minimumQuantity\" : 7,\r\n \"maximumQuantity\" : 4\r\n } ],\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"url\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"url\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"targetResourceSchema\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a ResourceSpecification", operationId = "patchResourceSpecification", description = "This operation updates partially a ResourceSpecification entity.", tags={ "resourceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceSpecification/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchResourceSpecification(@Parameter(description = "The ResourceSpecification to be updated" ,required=true ) @Valid @RequestBody ResourceSpecificationUpdate body +,@Parameter(description = "Identifier of the ResourceSpecification",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"isBundle\" : true,\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"resourceSpecCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 2,\r\n \"resourceSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n } ],\r\n \"minCardinality\" : 7,\r\n \"regex\" : \"regex\",\r\n \"resourceSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 2,\r\n \"resourceSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n } ],\r\n \"minCardinality\" : 7,\r\n \"regex\" : \"regex\",\r\n \"resourceSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n } ],\r\n \"featureSpecification\" : [ {\r\n \"isBundle\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"featureSpecRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\",\r\n \"featureSpecCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n } ]\r\n }, {\r\n \"isBundle\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"featureSpecRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\",\r\n \"featureSpecCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n } ]\r\n } ],\r\n \"resourceSpecRelationship\" : [ {\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@type\" : \"@type\",\r\n \"defaultQuantity\" : 2,\r\n \"characteristic\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"minimumQuantity\" : 7,\r\n \"maximumQuantity\" : 4\r\n }, {\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@type\" : \"@type\",\r\n \"defaultQuantity\" : 2,\r\n \"characteristic\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"minimumQuantity\" : 7,\r\n \"maximumQuantity\" : 4\r\n } ],\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"url\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"url\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"targetResourceSchema\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", ResourceSpecification.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a ResourceSpecification by ID", operationId = "retrieveResourceSpecification", description = "This operation retrieves a ResourceSpecification entity. Attribute selection is enabled for all first level attributes.", tags={ "resourceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceSpecification/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveResourceSpecification(@Parameter(description = "Identifier of the ResourceSpecification",required=true) @PathVariable("id") String id +,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"isBundle\" : true,\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"resourceSpecCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 2,\r\n \"resourceSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n } ],\r\n \"minCardinality\" : 7,\r\n \"regex\" : \"regex\",\r\n \"resourceSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 2,\r\n \"resourceSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 3,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"valueFrom\" : 9\r\n } ],\r\n \"minCardinality\" : 7,\r\n \"regex\" : \"regex\",\r\n \"resourceSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n } ],\r\n \"featureSpecification\" : [ {\r\n \"isBundle\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"featureSpecRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\",\r\n \"featureSpecCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n } ]\r\n }, {\r\n \"isBundle\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"featureSpecRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\",\r\n \"featureSpecCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"featureSpecCharacteristicValue\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"featureSpecCharRelationship\" : [ {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n }, {\r\n \"resourceSpecificationHref\" : \"resourceSpecificationHref\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"characteristicId\" : \"characteristicId\",\r\n \"featureId\" : \"featureId\",\r\n \"resourceSpecificationId\" : \"resourceSpecificationId\"\r\n } ],\r\n \"configurable\" : true\r\n } ]\r\n } ],\r\n \"resourceSpecRelationship\" : [ {\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@type\" : \"@type\",\r\n \"defaultQuantity\" : 2,\r\n \"characteristic\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"minimumQuantity\" : 7,\r\n \"maximumQuantity\" : 4\r\n }, {\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@type\" : \"@type\",\r\n \"defaultQuantity\" : 2,\r\n \"characteristic\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"minimumQuantity\" : 7,\r\n \"maximumQuantity\" : 4\r\n } ],\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"url\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"url\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"targetResourceSchema\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", ResourceSpecification.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Adds an attachment to a 'ResourceSpecification'", operationId = "addAttachmentToResourceSpec", description = "This operation adds an attachment to a ResourceSpecification", tags={ "resourceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceSpecification/{id}/attachment", + produces = { "application/json" }, + consumes = { "multipart/form-data" }, + method = RequestMethod.POST) + default ResponseEntity addAttachmentToLogicalResourceSpec( + @Parameter(description = "Identifier of the ResourceSpecification",required=true) @PathVariable("id") String id, + //@Parameter(description = "The Attachment object to be added" ,required=false ) @Valid @ModelAttribute("attachment") String attachment, + @Parameter(description = "The Attachment file to be added" ,required=false, name = "afile" ) @Valid MultipartFile file, + HttpServletRequest request){ + + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "Get an attachment from a 'ResourceSpecification'", operationId = "getAttachment", + description = "This operation gets an attachment", tags={ "resourceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceSpecification/{id}/attachment/{attid}", + produces = MediaType.ALL_VALUE, + method = RequestMethod.GET) + ResponseEntity getAttachment( + @Parameter(description = "Identifier of the ResourceSpecification",required=true) @PathVariable("id") String id, + @Parameter(description = "Identifier of the Attachment",required=true) @PathVariable("attid") String attid); + + + + @Operation(summary = "Get an attachment from a 'ResourceSpecification' with filename", operationId = "getAttachmentWithFilename", + description = "This operation gets an attachment", tags={ "resourceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceSpecification/{id}/attachment/{attid}/{afilename}", + produces = MediaType.ALL_VALUE , + method = RequestMethod.GET) + ResponseEntity getAttachmentWithFilename( + @Parameter(description = "Identifier of the ResourceSpecification",required=true) @PathVariable("id") String id, + @Parameter(description = "Identifier of the Attachment",required=true) @PathVariable("attid") String attid, + @Parameter(description = "Identifier of the Filename",required=true) @PathVariable("afilename") String afilename); + + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceSpecificationApiController.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceSpecificationApiController.java new file mode 100644 index 0000000..0320df5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceSpecificationApiController.java @@ -0,0 +1,279 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.api; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.commons.io.IOUtils; +import org.etsi.osl.tmf.common.model.Attachment; +import org.etsi.osl.tmf.rcm634.model.PhysicalResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceFunctionSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceSpecificationRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.CacheControl; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; +import io.swagger.v3.oas.annotations.Parameter; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:06:08.595+03:00") + +@Controller +@RequestMapping("/resourceCatalogManagement/v4/") +public class ResourceSpecificationApiController implements ResourceSpecificationApi { + + private static final Logger log = LoggerFactory.getLogger(ResourceSpecificationApiController.class); + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + +// private PolymorphicTypeValidator getPTV() { +// return BasicPolymorphicTypeValidator.builder().allowIfBaseType(ResourceSpecification.class) +// .build(); +// } + + + @org.springframework.beans.factory.annotation.Autowired + public ResourceSpecificationApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + // objectMapper.activateDefaultTyping(getPTV(), ObjectMapper.DefaultTyping.EVERYTHING); + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable( objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + + + @Autowired + ResourceSpecificationRepoService resourceSpecificationRepoService; + + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity createResourceSpecification(JsonNode jsonNode) { + try { + + log.info( jsonNode.asText() ); + + JsonNode an = jsonNode.path("@type"); + + if ( an != null ) { + + log.info( an.asText() ); + if ( an.asText().equals("PhysicalResourceSpecification")) { + @Valid + PhysicalResourceSpecificationCreate serviceSpecification = objectMapper.treeToValue( jsonNode, PhysicalResourceSpecificationCreate.class); + ResourceSpecification c = resourceSpecificationRepoService.addPhysicalResourceSpecification(serviceSpecification ); + return new ResponseEntity(c, HttpStatus.OK); + + } else if ( an.asText().equals("ResourceFunctionSpecification")) { + @Valid + ResourceFunctionSpecificationCreate serviceSpecification = objectMapper.treeToValue( jsonNode, ResourceFunctionSpecificationCreate.class); + ResourceSpecification c = resourceSpecificationRepoService.addResourceFunctionSpecification(serviceSpecification ); + return new ResponseEntity(c, HttpStatus.OK); + + } + + + + } + + ResourceSpecificationCreate serviceSpecification = objectMapper.treeToValue( jsonNode, ResourceSpecificationCreate.class); + ResourceSpecification c = resourceSpecificationRepoService.addLogicalResourceSpecification(serviceSpecification); + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity deleteResourceSpecification( + @Parameter(description = "Identifier of the ResourceSpecification", required = true) @PathVariable("id") String id) { + try { + + return new ResponseEntity(resourceSpecificationRepoService.deleteByUuid(id), HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity> listResourceSpecification( + @Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + + try { + if ((fields == null) ) { + + String myfields = "lastUpdate,lifecycleStatus"; + return new ResponseEntity>(resourceSpecificationRepoService.findAll(myfields), + HttpStatus.OK); + } else { + + return new ResponseEntity>(resourceSpecificationRepoService.findAll(fields), + HttpStatus.OK); + } + + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity patchResourceSpecification(@Valid ResourceSpecificationUpdate serviceSpecification, + String id) { + + ResourceSpecification c = resourceSpecificationRepoService.updateResourceSpecification(id, serviceSpecification); + + return new ResponseEntity(c, HttpStatus.OK); + } + + + + @Override + public ResponseEntity retrieveResourceSpecification( + @Parameter(description = "Identifier of the ResourceSpecification", required = true) @PathVariable("id") String id, + @Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + try { + + return new ResponseEntity( resourceSpecificationRepoService.findByUuid( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity addAttachmentToLogicalResourceSpec( + String id, + //@Parameter(description = "The Attachment object to be added" ,required=false ) @Valid @ModelAttribute("attachment") String attachment, + @Parameter(description = "The Attachment file to be added" ,required=false, name = "afile" ) @Valid MultipartFile afile, + HttpServletRequest request){ + + try { + + //log.info("addAttachmentToLogicalResourceSpec attachment=" + attachment); + log.info("addAttachmentToLogicalResourceSpec file=" + afile); + + //Attachment att = objectMapper.readValue(attachment, Attachment.class); + + ResourceSpecification c = (ResourceSpecification) resourceSpecificationRepoService.addAttachmentToResourceSpec( id, afile, request.getRequestURI() ); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity getAttachment(String id, String attid) { + try { + Attachment att; + if ( attid.equals("logo")) { + att = resourceSpecificationRepoService.getAttachmentLogo( id, attid ); + } else { + att = resourceSpecificationRepoService.getAttachment( attid ); + } + + if ( att == null ) { + return new ResponseEntity(HttpStatus.NOT_FOUND); + } + + File file = new File( att.getContent() ); + Path path = Paths.get(file.getAbsolutePath()); + //ByteArrayResource resource = new ByteArrayResource(Files.readAllBytes(path)); + HttpHeaders headers = new HttpHeaders(); + InputStream in = new FileInputStream( file ); + + byte[] media = IOUtils.toByteArray(in); + headers.setCacheControl(CacheControl.noCache().getHeaderValue()); + headers.setContentType( MediaType. parseMediaType( att.getMimeType()) ); + + if ( att.getMimeType().contains("zip") || att.getMimeType().contains("gz")) { + headers.add( "Content-Disposition", "attachment; filename=" + file.getName());//remove this returns directly the object + } + + ResponseEntity responseEntity = new ResponseEntity<>(media, headers, HttpStatus.OK); + return responseEntity; + + +// return ResponseEntity.ok() +// .header("Content-Disposition", "attachment; filename=" + file.getName()) +// .contentLength(file.length()) +// .contentType( MediaType. parseMediaType( att.getMimeType()) )//MediaType.parseMediaType("application/gzip")) +// .body(resource); + + + } catch (Exception e) { + log.error("Couldn't serialize response ByteArrayResource", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity getAttachmentWithFilename(String id, String attid, String afilename) { + return getAttachment(id, attid); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceSpecificationApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceSpecificationApiRouteBuilder.java new file mode 100644 index 0000000..59e04ea --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceSpecificationApiRouteBuilder.java @@ -0,0 +1,91 @@ +package org.etsi.osl.tmf.rcm634.api; + +import org.apache.camel.LoggingLevel; +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.model.dataformat.JsonLibrary; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceSpecificationRepoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +@Configuration +//@RefreshScope +@Component +public class ResourceSpecificationApiRouteBuilder extends RouteBuilder { + + private static final transient Log logger = LogFactory.getLog( ResourceSpecificationApiRouteBuilder.class.getName()); + + @Value("${CATALOG_ADD_RESOURCESPEC}") + private String CATALOG_ADD_RESOURCESPEC = ""; + + @Value("${CATALOG_UPD_RESOURCESPEC}") + private String CATALOG_UPD_RESOURCESPEC = ""; + + @Value("${CATALOG_UPDADD_RESOURCESPEC}") + private String CATALOG_UPDADD_RESOURCESPEC = ""; + + @Value("${CATALOG_GET_RESOURCESPEC_BY_ID}") + private String CATALOG_GET_RESOURCESPEC_BY_ID = ""; + + + @Value("${CATALOG_GET_RESOURCESPEC_BY_ΝAME_CATEGORY}") + private String CATALOG_GET_RESOURCESPEC_BY_ΝAME_CATEGORY = ""; + + @Autowired + private ProducerTemplate template; + + @Autowired + ResourceSpecificationRepoService resourceSpecificationRepoService; + + @Override + public void configure() throws Exception { + + from( CATALOG_ADD_RESOURCESPEC ) + .log(LoggingLevel.INFO, log, CATALOG_ADD_RESOURCESPEC + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal() + .json( JsonLibrary.Jackson, ResourceSpecificationCreate .class, true) + .bean( resourceSpecificationRepoService, "addResourceSpecification(${body})") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + from( CATALOG_UPD_RESOURCESPEC ) + .log(LoggingLevel.INFO, log, CATALOG_UPD_RESOURCESPEC + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, ResourceSpecificationUpdate.class, true) + .bean( resourceSpecificationRepoService, "updateResourceSpecification(${header.resourceSpecId}, ${body} )") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + from( CATALOG_UPDADD_RESOURCESPEC ) + .log(LoggingLevel.INFO, log, CATALOG_UPDADD_RESOURCESPEC + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, ResourceSpecificationCreate.class, true) + .bean( resourceSpecificationRepoService, "addOrupdateResourceSpecificationByNameCategoryVersion(${header.aname}, ${header.acategory}, ${header.aversion}, ${body} )") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + from( CATALOG_GET_RESOURCESPEC_BY_ID ) + .log(LoggingLevel.INFO, log, CATALOG_GET_RESOURCESPEC_BY_ID + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean( resourceSpecificationRepoService, "findByUuidEager") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + from( CATALOG_GET_RESOURCESPEC_BY_ΝAME_CATEGORY ) + .log(LoggingLevel.INFO, log, CATALOG_GET_RESOURCESPEC_BY_ΝAME_CATEGORY + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean( resourceSpecificationRepoService, "findByNameAndCategoryAndVersionEager(${header.aname}, ${header.acategory}, ${header.aversion} )") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ConnectionPointSpecificationRef.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ConnectionPointSpecificationRef.java new file mode 100644 index 0000000..3e59061 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ConnectionPointSpecificationRef.java @@ -0,0 +1,180 @@ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * Connection point specification reference. A connection point provides a + * service access point (SAP) for input and/or output of the resource function. + */ +@Schema(description = "Connection point specification reference. A connection point provides a service access point (SAP) for input and/or output of the resource function.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-07T15:15:49.915156900+03:00[Europe/Athens]") +@Entity(name = "ConnectionPointSpecRef") +public class ConnectionPointSpecificationRef extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("version") + private String version = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public ConnectionPointSpecificationRef id(String id) { + this.id = id; + return this; + } + + /** + * unique identifier + * + * @return id + **/ + @Schema(description = "unique identifier") + @NotNull + + public String getId() { + id = uuid; + return uuid; + } + + public ConnectionPointSpecificationRef href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink reference + * + * @return href + **/ + @Schema(description = "Hyperlink reference") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ConnectionPointSpecificationRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ConnectionPointSpecificationRef version(String version) { + this.version = version; + return this; + } + + /** + * Connection point specification version + * + * @return version + **/ + @Schema(description = "Connection point specification version") + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + + public ConnectionPointSpecificationRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ConnectionPointSpecificationRef connectionPointSpecificationRef = (ConnectionPointSpecificationRef) o; + return Objects.equals(this.id, connectionPointSpecificationRef.id) + && Objects.equals(this.href, connectionPointSpecificationRef.href) + && Objects.equals(this.name, connectionPointSpecificationRef.name) + && Objects.equals(this.version, connectionPointSpecificationRef.version) + && Objects.equals(this.baseType, connectionPointSpecificationRef.baseType) + && Objects.equals(this.schemaLocation, connectionPointSpecificationRef.schemaLocation) + && Objects.equals(this.type, connectionPointSpecificationRef.type) + && Objects.equals(this._atReferredType, connectionPointSpecificationRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, version, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ConnectionPointSpecificationRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ConnectionSpecification.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ConnectionSpecification.java new file mode 100644 index 0000000..ac8ee63 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ConnectionSpecification.java @@ -0,0 +1,256 @@ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * A specification for an edge in a resource graph. + */ +@Schema(description = "A specification for an edge in a resource graph.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-07T15:15:49.915156900+03:00[Europe/Athens]") +@Entity(name = "ConnectionSpec") +public class ConnectionSpecification extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("associationType") + private String associationType = null; + + @JsonProperty("endpointSpecification") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set endpointSpecification = new HashSet<>(); + + public ConnectionSpecification id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier for graph edge specification. + * + * @return id + **/ + @Schema(description = "Unique identifier for graph edge specification.") + + + + public String getId() { + id = uuid; + return uuid; + } + public ConnectionSpecification href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink reference + * + * @return href + **/ + @Schema(description = "Hyperlink reference") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ConnectionSpecification associationType(String associationType) { + this.associationType = associationType; + return this; + } + + /** + * Association type. + * + * @return associationType + **/ + @Schema(description = "Association type.") + @NotNull + + public String getAssociationType() { + return associationType; + } + + public void setAssociationType(String associationType) { + this.associationType = associationType; + } + + public ConnectionSpecification name(String name) { + this.name = name; + return this; + } + + /** + * Descriptive name for graph edge specification. + * + * @return name + **/ + @Schema(description = "Descriptive name for graph edge specification.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ConnectionSpecification endpointSpecification(Set endpointSpecification) { + this.endpointSpecification = endpointSpecification; + return this; + } + + public ConnectionSpecification addEndpointSpecificationItem(EndpointSpecificationRef endpointSpecificationItem) { + this.endpointSpecification.add(endpointSpecificationItem); + return this; + } + + /** + * Specifications for resource graph vertices connected by this edge. + * + * @return endpointSpecification + **/ + @Schema(description = "Specifications for resource graph vertices connected by this edge.") + @NotNull + @Valid + @Size(min = 1) + public Set getEndpointSpecification() { + return endpointSpecification; + } + + public void setEndpointSpecification( Set endpointSpecification) { + this.endpointSpecification = endpointSpecification; + } + + public ConnectionSpecification _atBaseType(String _atBaseType) { + this.baseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String _atBaseType) { + this.baseType = _atBaseType; + } + + public ConnectionSpecification _atSchemaLocation(String _atSchemaLocation) { + this.schemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this.schemaLocation = _atSchemaLocation; + } + + public ConnectionSpecification _atType(String _atType) { + this.type = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class Extensible name + * + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class Extensible name") + + public String getAtType() { + return type; + } + + public void setAtType(String _atType) { + this.type = _atType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ConnectionSpecification connectionSpecification = (ConnectionSpecification) o; + return Objects.equals(this.id, connectionSpecification.id) + && Objects.equals(this.href, connectionSpecification.href) + && Objects.equals(this.associationType, connectionSpecification.associationType) + && Objects.equals(this.name, connectionSpecification.name) + && Objects.equals(this.endpointSpecification, connectionSpecification.endpointSpecification) + && Objects.equals(this.baseType, connectionSpecification.baseType) + && Objects.equals(this.schemaLocation, connectionSpecification.schemaLocation) + && Objects.equals(this.type, connectionSpecification.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, associationType, name, endpointSpecification, baseType, schemaLocation, + type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ConnectionSpecification {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" associationType: ").append(toIndentedString(associationType)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" endpointSpecification: ").append(toIndentedString(endpointSpecification)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ConstraintRef.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ConstraintRef.java new file mode 100644 index 0000000..c442dab --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ConstraintRef.java @@ -0,0 +1,203 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; +import jakarta.validation.constraints.NotNull; + +/** + * Constraint reference. The Constraint resource represents a policy/rule applied to an entity or entity spec. + */ +@Schema(description = "Constraint reference. The Constraint resource represents a policy/rule applied to an entity or entity spec.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + +@Entity(name = "RCMConstraintRef") +@Table(name = "RCMConstraintRef") +public class ConstraintRef extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + + @JsonProperty("version") + private String version = null; + + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public ConstraintRef id(String id) { + this.id = id; + return this; + } + + /** + * reference id to the target constraint + * @return id + **/ + @Schema(description = "reference id to the target constraint") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ConstraintRef href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink reference to the target constraint + * @return href + **/ + @Schema(description = "Hyperlink reference to the target constraint") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ConstraintRef name(String name) { + this.name = name; + return this; + } + + /** + * Name given to the constraint + * @return name + **/ + @Schema(description = "Name given to the constraint") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ConstraintRef version(String version) { + this.version = version; + return this; + } + + /** + * constraint version + * @return version + **/ + @Schema(description = "constraint version") + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + + + public ConstraintRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The (class) type of the referred constraint + * @return _atReferredType + **/ + @Schema(description = "The (class) type of the referred constraint") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ConstraintRef constraintRef = (ConstraintRef) o; + return Objects.equals(this.id, constraintRef.id) && + Objects.equals(this.href, constraintRef.href) && + Objects.equals(this.name, constraintRef.name) && + Objects.equals(this.version, constraintRef.version) && + Objects.equals(this.baseType, constraintRef.baseType) && + Objects.equals(this.schemaLocation, constraintRef.schemaLocation) && + Objects.equals(this.type, constraintRef.type) && + Objects.equals(this._atReferredType, constraintRef._atReferredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, version, _atBaseType, _atSchemaLocation, _atType, _atReferredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ConstraintRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/EndpointSpecificationRef.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/EndpointSpecificationRef.java new file mode 100644 index 0000000..5ed4103 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/EndpointSpecificationRef.java @@ -0,0 +1,242 @@ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * A specification for a vertex in a resource graph. + */ +@Schema(description = "A specification for a vertex in a resource graph.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-07T15:15:49.915156900+03:00[Europe/Athens]") +@Entity(name = "EndpointSpecRef") +public class EndpointSpecificationRef extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("isRoot") + private Boolean isRoot = true; + + @JsonProperty("role") + private String role = null; + + @JsonProperty("connectionPointSpecification") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private ConnectionPointSpecificationRef connectionPointSpecification = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public EndpointSpecificationRef id(String id) { + this.id = id; + return this; + } + + /** + * unique identifier + * + * @return id + **/ + @Schema(description = "unique identifier") + @NotNull + + public String getId() { + id = uuid; + return uuid; + } + + public EndpointSpecificationRef href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink reference + * + * @return href + **/ + @Schema(description = "Hyperlink reference") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public EndpointSpecificationRef isRoot(Boolean isRoot) { + this.isRoot = isRoot; + return this; + } + + /** + * Directionality: true when endpoint is a source, false when a sink. If true + * for all endpoints connectivity is bidirectional. Default is true. + * + * @return isRoot + **/ + @Schema(description = "Directionality: true when endpoint is a source, false when a sink. If true for all endpoints connectivity is bidirectional. Default is true.") + + public Boolean isIsRoot() { + return isRoot; + } + + public void setIsRoot(Boolean isRoot) { + this.isRoot = isRoot; + } + + public EndpointSpecificationRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public EndpointSpecificationRef role(String role) { + this.role = role; + return this; + } + + /** + * Role of the Resource Function. + * + * @return role + **/ + @Schema(description = "Role of the Resource Function.") + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public EndpointSpecificationRef connectionPointSpecification( + ConnectionPointSpecificationRef connectionPointSpecification) { + this.connectionPointSpecification = connectionPointSpecification; + return this; + } + + /** + * Get connectionPointSpecification + * + * @return connectionPointSpecification + **/ + @Schema(description = "") + + @Valid + public ConnectionPointSpecificationRef getConnectionPointSpecification() { + return connectionPointSpecification; + } + + public void setConnectionPointSpecification(ConnectionPointSpecificationRef connectionPointSpecification) { + this.connectionPointSpecification = connectionPointSpecification; + } + + + public EndpointSpecificationRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EndpointSpecificationRef endpointSpecificationRef = (EndpointSpecificationRef) o; + return Objects.equals(this.id, endpointSpecificationRef.id) + && Objects.equals(this.href, endpointSpecificationRef.href) + && Objects.equals(this.isRoot, endpointSpecificationRef.isRoot) + && Objects.equals(this.name, endpointSpecificationRef.name) + && Objects.equals(this.role, endpointSpecificationRef.role) + && Objects.equals(this.connectionPointSpecification, + endpointSpecificationRef.connectionPointSpecification) + && Objects.equals(this.baseType, endpointSpecificationRef.baseType) + && Objects.equals(this.schemaLocation, endpointSpecificationRef.schemaLocation) + && Objects.equals(this.type, endpointSpecificationRef.type) + && Objects.equals(this._atReferredType, endpointSpecificationRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, isRoot, name, role, connectionPointSpecification, baseType, schemaLocation, + type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EndpointSpecificationRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" isRoot: ").append(toIndentedString(isRoot)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" connectionPointSpecification: ").append(toIndentedString(connectionPointSpecification)) + .append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/EntityRef.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/EntityRef.java new file mode 100644 index 0000000..50148c1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/EntityRef.java @@ -0,0 +1,176 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; +import jakarta.validation.constraints.NotNull; + +/** + * Entity reference schema to be use for all entityRef class. + */ +@Schema(description = "Entity reference schema to be use for all entityRef class.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@Entity(name = "RCMEntityRef") +@Table(name = "RCMEntityRef") +public class EntityRef extends BaseEntity { + @JsonProperty("id") + private String id = null; + + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public EntityRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EntityRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public EntityRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + + public EntityRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntityRef entityRef = (EntityRef) o; + return Objects.equals(this.id, entityRef.id) && + Objects.equals(this.href, entityRef.href) && + Objects.equals(this.name, entityRef.name) && + Objects.equals(this.baseType, entityRef.baseType) && + Objects.equals(this.schemaLocation, entityRef.schemaLocation) && + Objects.equals(this.type, entityRef.type) && + Objects.equals(this._atReferredType, entityRef._atReferredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, _atBaseType, _atSchemaLocation, _atType, _atReferredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntityRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/Error.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/Error.java new file mode 100644 index 0000000..67d1cbb --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/Error.java @@ -0,0 +1,268 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx) + */ +@Schema(description = "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class Error { + @JsonProperty("code") + private String code = null; + + @JsonProperty("reason") + private String reason = null; + + @JsonProperty("message") + private String message = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("referenceError") + private String referenceError = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public Error code(String code) { + this.code = code; + return this; + } + + /** + * Application relevant detail, defined in the API or a common list. + * @return code + **/ + @Schema(description = "Application relevant detail, defined in the API or a common list.") + @NotNull + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public Error reason(String reason) { + this.reason = reason; + return this; + } + + /** + * Explanation of the reason for the error which can be shown to a client user. + * @return reason + **/ + @Schema(description = "Explanation of the reason for the error which can be shown to a client user.") + @NotNull + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public Error message(String message) { + this.message = message; + return this; + } + + /** + * More details and corrective actions related to the error which can be shown to a client user. + * @return message + **/ + @Schema(description = "More details and corrective actions related to the error which can be shown to a client user.") + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Error status(String status) { + this.status = status; + return this; + } + + /** + * HTTP Error code extension + * @return status + **/ + @Schema(description = "HTTP Error code extension") + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Error referenceError(String referenceError) { + this.referenceError = referenceError; + return this; + } + + /** + * URI of documentation describing the error. + * @return referenceError + **/ + @Schema(description = "URI of documentation describing the error.") + + public String getReferenceError() { + return referenceError; + } + + public void setReferenceError(String referenceError) { + this.referenceError = referenceError; + } + + public Error _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class. + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class.") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public Error _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public Error _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name. + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name.") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Error error = (Error) o; + return Objects.equals(this.code, error.code) && + Objects.equals(this.reason, error.reason) && + Objects.equals(this.message, error.message) && + Objects.equals(this.status, error.status) && + Objects.equals(this.referenceError, error.referenceError) && + Objects.equals(this._atBaseType, error._atBaseType) && + Objects.equals(this._atSchemaLocation, error._atSchemaLocation) && + Objects.equals(this._atType, error._atType); + } + + @Override + public int hashCode() { + return Objects.hash(code, reason, message, status, referenceError, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Error {\n"); + + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" referenceError: ").append(toIndentedString(referenceError)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/EventSubscription.java new file mode 100644 index 0000000..3940f25 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/EventSubscription.java @@ -0,0 +1,148 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class EventSubscription { + @JsonProperty("id") + private String id = null; + + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscription id(String id) { + this.id = id; + return this; + } + + /** + * Id of the listener + * @return id + **/ + @Schema(description = "Id of the listener") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EventSubscription callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscription query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscription eventSubscription = (EventSubscription) o; + return Objects.equals(this.id, eventSubscription.id) && + Objects.equals(this.callback, eventSubscription.callback) && + Objects.equals(this.query, eventSubscription.query); + } + + @Override + public int hashCode() { + return Objects.hash(id, callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscription {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/EventSubscriptionInput.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/EventSubscriptionInput.java new file mode 100644 index 0000000..d5bb058 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/EventSubscriptionInput.java @@ -0,0 +1,123 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class EventSubscriptionInput { + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscriptionInput callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscriptionInput query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscriptionInput eventSubscriptionInput = (EventSubscriptionInput) o; + return Objects.equals(this.callback, eventSubscriptionInput.callback) && + Objects.equals(this.query, eventSubscriptionInput.query); + } + + @Override + public int hashCode() { + return Objects.hash(callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscriptionInput {\n"); + + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJob.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJob.java new file mode 100644 index 0000000..515cfe3 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJob.java @@ -0,0 +1,390 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Represents a task used to export resources to a file + */ +@Schema(description = "Represents a task used to export resources to a file") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ExportJob { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("completionDate") + private OffsetDateTime completionDate = null; + + @JsonProperty("contentType") + private String contentType = null; + + @JsonProperty("creationDate") + private OffsetDateTime creationDate = null; + + @JsonProperty("errorLog") + private String errorLog = null; + + @JsonProperty("path") + private String path = null; + + @JsonProperty("query") + private String query = null; + + @JsonProperty("url") + private String url = null; + + @JsonProperty("status") + private JobStateType status = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public ExportJob id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the export job + * @return id + **/ + @Schema(description = "Identifier of the export job") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ExportJob href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the export job + * @return href + **/ + @Schema(description = "Reference of the export job") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ExportJob completionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Data at which the job was completed + * @return completionDate + **/ + @Schema(description = "Data at which the job was completed") + + @Valid + public OffsetDateTime getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + } + + public ExportJob contentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * The format of the exported data + * @return contentType + **/ + @Schema(description = "The format of the exported data") + + public String getContentType() { + return contentType; + } + + public void setContentType(String contentType) { + this.contentType = contentType; + } + + public ExportJob creationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + return this; + } + + /** + * Date at which the job was created + * @return creationDate + **/ + @Schema(description = "Date at which the job was created") + + @Valid + public OffsetDateTime getCreationDate() { + return creationDate; + } + + public void setCreationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + } + + public ExportJob errorLog(String errorLog) { + this.errorLog = errorLog; + return this; + } + + /** + * Reason for failure + * @return errorLog + **/ + @Schema(description = "Reason for failure") + + public String getErrorLog() { + return errorLog; + } + + public void setErrorLog(String errorLog) { + this.errorLog = errorLog; + } + + public ExportJob path(String path) { + this.path = path; + return this; + } + + /** + * URL of the root resource acting as the source for streaming content to the file specified by the export job + * @return path + **/ + @Schema(description = "URL of the root resource acting as the source for streaming content to the file specified by the export job") + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public ExportJob query(String query) { + this.query = query; + return this; + } + + /** + * Used to scope the exported data + * @return query + **/ + @Schema(description = "Used to scope the exported data") + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + public ExportJob url(String url) { + this.url = url; + return this; + } + + /** + * URL of the file containing the data to be exported + * @return url + **/ + @Schema(description = "URL of the file containing the data to be exported") + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public ExportJob status(JobStateType status) { + this.status = status; + return this; + } + + /** + * Get status + * @return status + **/ + @Schema(description = "") + + @Valid + public JobStateType getStatus() { + return status; + } + + public void setStatus(JobStateType status) { + this.status = status; + } + + public ExportJob _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public ExportJob _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public ExportJob _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExportJob exportJob = (ExportJob) o; + return Objects.equals(this.id, exportJob.id) && + Objects.equals(this.href, exportJob.href) && + Objects.equals(this.completionDate, exportJob.completionDate) && + Objects.equals(this.contentType, exportJob.contentType) && + Objects.equals(this.creationDate, exportJob.creationDate) && + Objects.equals(this.errorLog, exportJob.errorLog) && + Objects.equals(this.path, exportJob.path) && + Objects.equals(this.query, exportJob.query) && + Objects.equals(this.url, exportJob.url) && + Objects.equals(this.status, exportJob.status) && + Objects.equals(this._atBaseType, exportJob._atBaseType) && + Objects.equals(this._atSchemaLocation, exportJob._atSchemaLocation) && + Objects.equals(this._atType, exportJob._atType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, completionDate, contentType, creationDate, errorLog, path, query, url, status, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ExportJob {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" contentType: ").append(toIndentedString(contentType)).append("\n"); + sb.append(" creationDate: ").append(toIndentedString(creationDate)).append("\n"); + sb.append(" errorLog: ").append(toIndentedString(errorLog)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobCreate.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobCreate.java new file mode 100644 index 0000000..7286abe --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobCreate.java @@ -0,0 +1,344 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Represents a task used to export resources to a file Skipped properties: id,href + */ +@Schema(description = "Represents a task used to export resources to a file Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ExportJobCreate { + @JsonProperty("completionDate") + private OffsetDateTime completionDate = null; + + @JsonProperty("contentType") + private String contentType = null; + + @JsonProperty("creationDate") + private OffsetDateTime creationDate = null; + + @JsonProperty("errorLog") + private String errorLog = null; + + @JsonProperty("path") + private String path = null; + + @JsonProperty("query") + private String query = null; + + @JsonProperty("url") + private String url = null; + + @JsonProperty("status") + private JobStateType status = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public ExportJobCreate completionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Data at which the job was completed + * @return completionDate + **/ + @Schema(description = "Data at which the job was completed") + + @Valid + public OffsetDateTime getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + } + + public ExportJobCreate contentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * The format of the exported data + * @return contentType + **/ + @Schema(description = "The format of the exported data") + + public String getContentType() { + return contentType; + } + + public void setContentType(String contentType) { + this.contentType = contentType; + } + + public ExportJobCreate creationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + return this; + } + + /** + * Date at which the job was created + * @return creationDate + **/ + @Schema(description = "Date at which the job was created") + + @Valid + public OffsetDateTime getCreationDate() { + return creationDate; + } + + public void setCreationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + } + + public ExportJobCreate errorLog(String errorLog) { + this.errorLog = errorLog; + return this; + } + + /** + * Reason for failure + * @return errorLog + **/ + @Schema(description = "Reason for failure") + + public String getErrorLog() { + return errorLog; + } + + public void setErrorLog(String errorLog) { + this.errorLog = errorLog; + } + + public ExportJobCreate path(String path) { + this.path = path; + return this; + } + + /** + * URL of the root resource acting as the source for streaming content to the file specified by the export job + * @return path + **/ + @Schema(description = "URL of the root resource acting as the source for streaming content to the file specified by the export job") + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public ExportJobCreate query(String query) { + this.query = query; + return this; + } + + /** + * Used to scope the exported data + * @return query + **/ + @Schema(description = "Used to scope the exported data") + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + public ExportJobCreate url(String url) { + this.url = url; + return this; + } + + /** + * URL of the file containing the data to be exported + * @return url + **/ + @Schema(description = "URL of the file containing the data to be exported") + @NotNull + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public ExportJobCreate status(JobStateType status) { + this.status = status; + return this; + } + + /** + * Get status + * @return status + **/ + @Schema(description = "") + + @Valid + public JobStateType getStatus() { + return status; + } + + public void setStatus(JobStateType status) { + this.status = status; + } + + public ExportJobCreate _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public ExportJobCreate _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public ExportJobCreate _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExportJobCreate exportJobCreate = (ExportJobCreate) o; + return Objects.equals(this.completionDate, exportJobCreate.completionDate) && + Objects.equals(this.contentType, exportJobCreate.contentType) && + Objects.equals(this.creationDate, exportJobCreate.creationDate) && + Objects.equals(this.errorLog, exportJobCreate.errorLog) && + Objects.equals(this.path, exportJobCreate.path) && + Objects.equals(this.query, exportJobCreate.query) && + Objects.equals(this.url, exportJobCreate.url) && + Objects.equals(this.status, exportJobCreate.status) && + Objects.equals(this._atBaseType, exportJobCreate._atBaseType) && + Objects.equals(this._atSchemaLocation, exportJobCreate._atSchemaLocation) && + Objects.equals(this._atType, exportJobCreate._atType); + } + + @Override + public int hashCode() { + return Objects.hash(completionDate, contentType, creationDate, errorLog, path, query, url, status, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ExportJobCreate {\n"); + + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" contentType: ").append(toIndentedString(contentType)).append("\n"); + sb.append(" creationDate: ").append(toIndentedString(creationDate)).append("\n"); + sb.append(" errorLog: ").append(toIndentedString(errorLog)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobCreateEvent.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobCreateEvent.java new file mode 100644 index 0000000..669d691 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobCreateEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ExportJobCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ExportJobCreateEventPayload event = null; + + public ExportJobCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ExportJobCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ExportJobCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ExportJobCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ExportJobCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ExportJobCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ExportJobCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ExportJobCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ExportJobCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ExportJobCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ExportJobCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ExportJobCreateEvent event(ExportJobCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ExportJobCreateEventPayload getEvent() { + return event; + } + + public void setEvent(ExportJobCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExportJobCreateEvent exportJobCreateEvent = (ExportJobCreateEvent) o; + return Objects.equals(this.id, exportJobCreateEvent.id) && + Objects.equals(this.href, exportJobCreateEvent.href) && + Objects.equals(this.eventId, exportJobCreateEvent.eventId) && + Objects.equals(this.eventTime, exportJobCreateEvent.eventTime) && + Objects.equals(this.eventType, exportJobCreateEvent.eventType) && + Objects.equals(this.correlationId, exportJobCreateEvent.correlationId) && + Objects.equals(this.domain, exportJobCreateEvent.domain) && + Objects.equals(this.title, exportJobCreateEvent.title) && + Objects.equals(this.description, exportJobCreateEvent.description) && + Objects.equals(this.priority, exportJobCreateEvent.priority) && + Objects.equals(this.timeOcurred, exportJobCreateEvent.timeOcurred) && + Objects.equals(this.event, exportJobCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ExportJobCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobCreateEventPayload.java new file mode 100644 index 0000000..ca72572 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobCreateEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ExportJobCreateEventPayload { + @JsonProperty("exportJob") + private ExportJob exportJob = null; + + public ExportJobCreateEventPayload exportJob(ExportJob exportJob) { + this.exportJob = exportJob; + return this; + } + + /** + * Get exportJob + * @return exportJob + **/ + @Schema(description = "") + + @Valid + public ExportJob getExportJob() { + return exportJob; + } + + public void setExportJob(ExportJob exportJob) { + this.exportJob = exportJob; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExportJobCreateEventPayload exportJobCreateEventPayload = (ExportJobCreateEventPayload) o; + return Objects.equals(this.exportJob, exportJobCreateEventPayload.exportJob); + } + + @Override + public int hashCode() { + return Objects.hash(exportJob); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ExportJobCreateEventPayload {\n"); + + sb.append(" exportJob: ").append(toIndentedString(exportJob)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobStateChangeEvent.java new file mode 100644 index 0000000..f87937f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobStateChangeEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ExportJobStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ExportJobStateChangeEventPayload event = null; + + public ExportJobStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ExportJobStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ExportJobStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ExportJobStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ExportJobStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ExportJobStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ExportJobStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ExportJobStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ExportJobStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ExportJobStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ExportJobStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ExportJobStateChangeEvent event(ExportJobStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ExportJobStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(ExportJobStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExportJobStateChangeEvent exportJobStateChangeEvent = (ExportJobStateChangeEvent) o; + return Objects.equals(this.id, exportJobStateChangeEvent.id) && + Objects.equals(this.href, exportJobStateChangeEvent.href) && + Objects.equals(this.eventId, exportJobStateChangeEvent.eventId) && + Objects.equals(this.eventTime, exportJobStateChangeEvent.eventTime) && + Objects.equals(this.eventType, exportJobStateChangeEvent.eventType) && + Objects.equals(this.correlationId, exportJobStateChangeEvent.correlationId) && + Objects.equals(this.domain, exportJobStateChangeEvent.domain) && + Objects.equals(this.title, exportJobStateChangeEvent.title) && + Objects.equals(this.description, exportJobStateChangeEvent.description) && + Objects.equals(this.priority, exportJobStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, exportJobStateChangeEvent.timeOcurred) && + Objects.equals(this.event, exportJobStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ExportJobStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobStateChangeEventPayload.java new file mode 100644 index 0000000..49df85b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ExportJobStateChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ExportJobStateChangeEventPayload { + @JsonProperty("exportJob") + private ExportJob exportJob = null; + + public ExportJobStateChangeEventPayload exportJob(ExportJob exportJob) { + this.exportJob = exportJob; + return this; + } + + /** + * Get exportJob + * @return exportJob + **/ + @Schema(description = "") + + @Valid + public ExportJob getExportJob() { + return exportJob; + } + + public void setExportJob(ExportJob exportJob) { + this.exportJob = exportJob; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExportJobStateChangeEventPayload exportJobStateChangeEventPayload = (ExportJobStateChangeEventPayload) o; + return Objects.equals(this.exportJob, exportJobStateChangeEventPayload.exportJob); + } + + @Override + public int hashCode() { + return Objects.hash(exportJob); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ExportJobStateChangeEventPayload {\n"); + + sb.append(" exportJob: ").append(toIndentedString(exportJob)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecification.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecification.java new file mode 100644 index 0000000..5b73ad5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecification.java @@ -0,0 +1,409 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.validation.Valid; + +/** + * Specification for applicable configuration features for a resource + * specification. + */ +@Schema(description = "Specification for applicable configuration features for a resource specification.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + +@Entity(name = "RCMFeatureSpec") +public class FeatureSpecification extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("isBundle") + private Boolean isBundle = null; + + @JsonProperty("isEnabled") + private Boolean isEnabled = null; + + @JsonProperty("version") + private String version = null; + + @JsonProperty("constraint") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set constraint = new HashSet<>(); + + @JsonProperty("featureSpecCharacteristic") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set featureSpecCharacteristic = new HashSet<>(); + + @JsonProperty("featureSpecRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set featureSpecRelationship = new HashSet<>(); + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + public FeatureSpecification id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the feature specification. Must be locally unique within the + * containing resource specification, thus allowing direct access to the feature + * spec. + * + * @return id + **/ + @Schema(description = "Identifier of the feature specification. Must be locally unique within the containing resource specification, thus allowing direct access to the feature spec.") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public FeatureSpecification isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * A flag indicating if this is a feature group (true) or not (false) + * + * @return isBundle + **/ + @Schema(description = "A flag indicating if this is a feature group (true) or not (false)") + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + public FeatureSpecification isEnabled(Boolean isEnabled) { + this.isEnabled = isEnabled; + return this; + } + + /** + * A flag indicating if the feature is enabled (true) or not (false) + * + * @return isEnabled + **/ + @Schema(description = "A flag indicating if the feature is enabled (true) or not (false)") + + public Boolean isIsEnabled() { + return isEnabled; + } + + public void setIsEnabled(Boolean isEnabled) { + this.isEnabled = isEnabled; + } + + public FeatureSpecification name(String name) { + this.name = name; + return this; + } + + /** + * Unique name given to the feature specification + * + * @return name + **/ + @Schema(description = "Unique name given to the feature specification") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public FeatureSpecification version(String version) { + this.version = version; + return this; + } + + /** + * Version of the feature specification + * + * @return version + **/ + @Schema(description = "Version of the feature specification") + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public FeatureSpecification constraint(Set constraint) { + this.constraint = constraint; + return this; + } + + public FeatureSpecification addConstraintItem(ConstraintRef constraintItem) { + if (this.constraint == null) { + this.constraint = new HashSet<>(); + } + this.constraint.add(constraintItem); + return this; + } + + /** + * This is a list of feature constraints + * + * @return constraint + **/ + @Schema(description = "This is a list of feature constraints") + @Valid + public Set getConstraint() { + return constraint; + } + + public void setConstraint(Set constraint) { + this.constraint = constraint; + } + + public FeatureSpecification featureSpecCharacteristic( + Set featureSpecCharacteristic) { + this.featureSpecCharacteristic = featureSpecCharacteristic; + return this; + } + + public FeatureSpecification addFeatureSpecCharacteristicItem( + FeatureSpecificationCharacteristic featureSpecCharacteristicItem) { + if (this.featureSpecCharacteristic == null) { + this.featureSpecCharacteristic = new HashSet<>(); + } + this.featureSpecCharacteristic.add(featureSpecCharacteristicItem); + return this; + } + + /** + * This is a list of characteristics for a particular feature + * + * @return featureSpecCharacteristic + **/ + @Schema(description = "This is a list of characteristics for a particular feature") + @Valid + public Set getFeatureSpecCharacteristic() { + return featureSpecCharacteristic; + } + + public void setFeatureSpecCharacteristic(Set featureSpecCharacteristic) { + this.featureSpecCharacteristic = featureSpecCharacteristic; + } + + public FeatureSpecification featureSpecRelationship( + Set featureSpecRelationship) { + this.featureSpecRelationship = featureSpecRelationship; + return this; + } + + public FeatureSpecification addFeatureSpecRelationshipItem( + FeatureSpecificationRelationship featureSpecRelationshipItem) { + if (this.featureSpecRelationship == null) { + this.featureSpecRelationship = new HashSet<>(); + } + this.featureSpecRelationship.add(featureSpecRelationshipItem); + return this; + } + + /** + * A dependency, exclusivity or aggratation relationship between/among feature + * specifications. + * + * @return featureSpecRelationship + **/ + @Schema(description = "A dependency, exclusivity or aggratation relationship between/among feature specifications.") + @Valid + public Set getFeatureSpecRelationship() { + return featureSpecRelationship; + } + + public void setFeatureSpecRelationship(Set featureSpecRelationship) { + this.featureSpecRelationship = featureSpecRelationship; + } + + public FeatureSpecification validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public FeatureSpecification baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public FeatureSpecification schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public FeatureSpecification type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FeatureSpecification featureSpecification = (FeatureSpecification) o; + return Objects.equals(this.id, featureSpecification.id) + && Objects.equals(this.isBundle, featureSpecification.isBundle) + && Objects.equals(this.isEnabled, featureSpecification.isEnabled) + && Objects.equals(this.name, featureSpecification.name) + && Objects.equals(this.version, featureSpecification.version) + && Objects.equals(this.constraint, featureSpecification.constraint) + && Objects.equals(this.featureSpecCharacteristic, featureSpecification.featureSpecCharacteristic) + && Objects.equals(this.featureSpecRelationship, featureSpecification.featureSpecRelationship) + && Objects.equals(this.validFor, featureSpecification.validFor) + && Objects.equals(this.baseType, featureSpecification.baseType) + && Objects.equals(this.schemaLocation, featureSpecification.schemaLocation) + && Objects.equals(this.type, featureSpecification.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, isBundle, isEnabled, name, version, constraint, featureSpecCharacteristic, + featureSpecRelationship, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FeatureSpecification {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" isEnabled: ").append(toIndentedString(isEnabled)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" constraint: ").append(toIndentedString(constraint)).append("\n"); + sb.append(" featureSpecCharacteristic: ").append(toIndentedString(featureSpecCharacteristic)).append("\n"); + sb.append(" featureSpecRelationship: ").append(toIndentedString(featureSpecRelationship)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecificationCharacteristic.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecificationCharacteristic.java new file mode 100644 index 0000000..286e347 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecificationCharacteristic.java @@ -0,0 +1,424 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Configuration feature characteristic specification. + */ +@Schema(description = "Configuration feature characteristic specification.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + +@Entity(name = "RCMFeatureSpecChar") +public class FeatureSpecificationCharacteristic extends BaseEntity { + @JsonProperty("configurable") + private Boolean configurable = null; + + @JsonProperty("extensible") + private Boolean extensible = null; + + @JsonProperty("isUnique") + private Boolean isUnique = null; + + @JsonProperty("maxCardinality") + private Integer maxCardinality = null; + + @JsonProperty("minCardinality") + private Integer minCardinality = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("regex") + private String regex = null; + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("featureSpecCharRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set featureSpecCharRelationship =new HashSet<>(); + + @JsonProperty("featureSpecCharacteristicValue") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set featureSpecCharacteristicValue =new HashSet<>(); + + + public FeatureSpecificationCharacteristic configurable(Boolean configurable) { + this.configurable = configurable; + return this; + } + + /** + * True is the feature is configurable. + * + * @return configurable + **/ + @Schema(description = "True is the feature is configurable.") + + public Boolean isConfigurable() { + return configurable; + } + + public void setConfigurable(Boolean configurable) { + this.configurable = configurable; + } + + public FeatureSpecificationCharacteristic extensible(Boolean extensible) { + this.extensible = extensible; + return this; + } + + /** + * An indicator that specifies that the values for the characteristic can be + * extended by adding new values when instantiating a characteristic for a + * feature. + * + * @return extensible + **/ + @Schema(description = "An indicator that specifies that the values for the characteristic can be extended by adding new values when instantiating a characteristic for a feature.") + + public Boolean isExtensible() { + return extensible; + } + + public void setExtensible(Boolean extensible) { + this.extensible = extensible; + } + + public FeatureSpecificationCharacteristic isUnique(Boolean isUnique) { + this.isUnique = isUnique; + return this; + } + + /** + * An indicator that specifies if a value is unique for the specification. + * + * @return isUnique + **/ + @Schema(description = "An indicator that specifies if a value is unique for the specification.") + + public Boolean isIsUnique() { + return isUnique; + } + + public void setIsUnique(Boolean isUnique) { + this.isUnique = isUnique; + } + + public FeatureSpecificationCharacteristic maxCardinality(Integer maxCardinality) { + this.maxCardinality = maxCardinality; + return this; + } + + /** + * The maximum number of instances a CharacteristicValue can take on. + * + * @return maxCardinality + **/ + @Schema(description = "The maximum number of instances a CharacteristicValue can take on.") + + public Integer getMaxCardinality() { + return maxCardinality; + } + + public void setMaxCardinality(Integer maxCardinality) { + this.maxCardinality = maxCardinality; + } + + public FeatureSpecificationCharacteristic minCardinality(Integer minCardinality) { + this.minCardinality = minCardinality; + return this; + } + + /** + * The minimum number of instances a CharacteristicValue can take on. + * + * @return minCardinality + **/ + @Schema(description = "The minimum number of instances a CharacteristicValue can take on.") + + public Integer getMinCardinality() { + return minCardinality; + } + + public void setMinCardinality(Integer minCardinality) { + this.minCardinality = minCardinality; + } + + public FeatureSpecificationCharacteristic name(String name) { + this.name = name; + return this; + } + + /** + * This is the name for the feature charateristic. + * + * @return name + **/ + @Schema(description = "This is the name for the feature charateristic.") + @NotNull + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public FeatureSpecificationCharacteristic regex(String regex) { + this.regex = regex; + return this; + } + + /** + * A rule or principle represented in regular expression used to derive the + * value of a characteristic value. + * + * @return regex + **/ + @Schema(description = "A rule or principle represented in regular expression used to derive the value of a characteristic value.") + + public String getRegex() { + return regex; + } + + public void setRegex(String regex) { + this.regex = regex; + } + + public FeatureSpecificationCharacteristic valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * A kind of value that the characteristic can take on. + * + * @return valueType + **/ + @Schema(description = "A kind of value that the characteristic can take on.") + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public FeatureSpecificationCharacteristic featureSpecCharRelationship( + Set featureSpecCharRelationship) { + this.featureSpecCharRelationship = featureSpecCharRelationship; + return this; + } + + public FeatureSpecificationCharacteristic addFeatureSpecCharRelationshipItem( + FeatureSpecificationCharacteristicRelationship featureSpecCharRelationshipItem) { + if (this.featureSpecCharRelationship == null) { + this.featureSpecCharRelationship = new HashSet<>(); + } + this.featureSpecCharRelationship.add(featureSpecCharRelationshipItem); + return this; + } + + /** + * An aggregation, migration, substitution, dependency or exclusivity + * relationship between/among feature characteristics. + * + * @return featureSpecCharRelationship + **/ + @Schema(description = "An aggregation, migration, substitution, dependency or exclusivity relationship between/among feature characteristics.") + @Valid + public Set getFeatureSpecCharRelationship() { + return featureSpecCharRelationship; + } + + public void setFeatureSpecCharRelationship( + Set featureSpecCharRelationship) { + this.featureSpecCharRelationship = featureSpecCharRelationship; + } + + public FeatureSpecificationCharacteristic featureSpecCharacteristicValue( + Set featureSpecCharacteristicValue) { + this.featureSpecCharacteristicValue = featureSpecCharacteristicValue; + return this; + } + + public FeatureSpecificationCharacteristic addFeatureSpecCharacteristicValueItem( + FeatureSpecificationCharacteristicValue featureSpecCharacteristicValueItem) { + if (this.featureSpecCharacteristicValue == null) { + this.featureSpecCharacteristicValue = new HashSet<>(); + } + this.featureSpecCharacteristicValue.add(featureSpecCharacteristicValueItem); + return this; + } + + /** + * Used to define a set of attributes, each of which can be assigned to a + * corresponding set of attributes in a FeatureCharacteristic object. + * + * @return featureSpecCharacteristicValue + **/ + @Schema(description = "Used to define a set of attributes, each of which can be assigned to a corresponding set of attributes in a FeatureCharacteristic object.") + @Valid + public Set getFeatureSpecCharacteristicValue() { + return featureSpecCharacteristicValue; + } + + public void setFeatureSpecCharacteristicValue( + Set featureSpecCharacteristicValue) { + this.featureSpecCharacteristicValue = featureSpecCharacteristicValue; + } + + public FeatureSpecificationCharacteristic validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + + + public FeatureSpecificationCharacteristic _atValueSchemaLocation(String _atValueSchemaLocation) { + this.schemaLocation = _atValueSchemaLocation; + return this; + } + + /** + * This (optional) field provides a link to the schema describing the value + * type. + * + * @return _atValueSchemaLocation + **/ + @Schema(description = "This (optional) field provides a link to the schema describing the value type.") + + public String getAtValueSchemaLocation() { + return schemaLocation; + } + + public void setAtValueSchemaLocation(String _atValueSchemaLocation) { + this.schemaLocation = _atValueSchemaLocation; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FeatureSpecificationCharacteristic featureSpecificationCharacteristic = (FeatureSpecificationCharacteristic) o; + return Objects.equals(this.configurable, featureSpecificationCharacteristic.configurable) + && Objects.equals(this.extensible, featureSpecificationCharacteristic.extensible) + && Objects.equals(this.isUnique, featureSpecificationCharacteristic.isUnique) + && Objects.equals(this.maxCardinality, featureSpecificationCharacteristic.maxCardinality) + && Objects.equals(this.minCardinality, featureSpecificationCharacteristic.minCardinality) + && Objects.equals(this.name, featureSpecificationCharacteristic.name) + && Objects.equals(this.regex, featureSpecificationCharacteristic.regex) + && Objects.equals(this.valueType, featureSpecificationCharacteristic.valueType) + && Objects.equals(this.featureSpecCharRelationship, + featureSpecificationCharacteristic.featureSpecCharRelationship) + && Objects.equals(this.featureSpecCharacteristicValue, + featureSpecificationCharacteristic.featureSpecCharacteristicValue) + && Objects.equals(this.validFor, featureSpecificationCharacteristic.validFor) + && Objects.equals(this.baseType, featureSpecificationCharacteristic.baseType) + && Objects.equals(this.schemaLocation, featureSpecificationCharacteristic.schemaLocation) + && Objects.equals(this.type, featureSpecificationCharacteristic.type) && Objects + .equals(this.schemaLocation, featureSpecificationCharacteristic.schemaLocation); + } + + @Override + public int hashCode() { + return Objects.hash(configurable, extensible, isUnique, maxCardinality, minCardinality, name, regex, valueType, + featureSpecCharRelationship, featureSpecCharacteristicValue, validFor, baseType, schemaLocation, + type, schemaLocation); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FeatureSpecificationCharacteristic {\n"); + + sb.append(" configurable: ").append(toIndentedString(configurable)).append("\n"); + sb.append(" extensible: ").append(toIndentedString(extensible)).append("\n"); + sb.append(" isUnique: ").append(toIndentedString(isUnique)).append("\n"); + sb.append(" maxCardinality: ").append(toIndentedString(maxCardinality)).append("\n"); + sb.append(" minCardinality: ").append(toIndentedString(minCardinality)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" regex: ").append(toIndentedString(regex)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" featureSpecCharRelationship: ").append(toIndentedString(featureSpecCharRelationship)) + .append("\n"); + sb.append(" featureSpecCharacteristicValue: ").append(toIndentedString(featureSpecCharacteristicValue)) + .append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atValueSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecificationCharacteristicRelationship.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecificationCharacteristicRelationship.java new file mode 100644 index 0000000..6512e6d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecificationCharacteristicRelationship.java @@ -0,0 +1,250 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; + +/** + * An aggregation, migration, substitution, dependency or exclusivity relationship between/among FeatureSpecificationCharacteristics. + */ +@Schema(description = "An aggregation, migration, substitution, dependency or exclusivity relationship between/among FeatureSpecificationCharacteristics.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + +@Entity(name = "RCMFeatureSpecCharRel") +public class FeatureSpecificationCharacteristicRelationship extends BaseRootNamedEntity { + @JsonProperty("characteristicId") + private String characteristicId = null; + + @JsonProperty("featureId") + private String featureId = null; + + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("resourceSpecificationHref") + private String resourceSpecificationHref = null; + + @JsonProperty("resourceSpecificationId") + private String resourceSpecificationId = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + public FeatureSpecificationCharacteristicRelationship characteristicId(String characteristicId) { + this.characteristicId = characteristicId; + return this; + } + + /** + * Unique identifier of the characteristic within the the target feature specification + * @return characteristicId + **/ + @Schema(description = "Unique identifier of the characteristic within the the target feature specification") + + public String getCharacteristicId() { + return characteristicId; + } + + public void setCharacteristicId(String characteristicId) { + this.characteristicId = characteristicId; + } + + public FeatureSpecificationCharacteristicRelationship featureId(String featureId) { + this.featureId = featureId; + return this; + } + + /** + * Unique identifier of the target feature specification within the resource specification. + * @return featureId + **/ + @Schema(description = "Unique identifier of the target feature specification within the resource specification.") + + public String getFeatureId() { + return featureId; + } + + public void setFeatureId(String featureId) { + this.featureId = featureId; + } + + public FeatureSpecificationCharacteristicRelationship name(String name) { + this.name = name; + return this; + } + + /** + * Name of the target characteristic + * @return name + **/ + @Schema(description = "Name of the target characteristic") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public FeatureSpecificationCharacteristicRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * Type of relationship such as aggregation, migration, substitution, dependency, exclusivity + * @return relationshipType + **/ + @Schema(description = "Type of relationship such as aggregation, migration, substitution, dependency, exclusivity") + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public FeatureSpecificationCharacteristicRelationship resourceSpecificationHref(String resourceSpecificationHref) { + this.resourceSpecificationHref = resourceSpecificationHref; + return this; + } + + /** + * Hyperlink reference to the resource specification containing the target feature and feature characteristic + * @return resourceSpecificationHref + **/ + @Schema(description = "Hyperlink reference to the resource specification containing the target feature and feature characteristic") + + public String getResourceSpecificationHref() { + return resourceSpecificationHref; + } + + public void setResourceSpecificationHref(String resourceSpecificationHref) { + this.resourceSpecificationHref = resourceSpecificationHref; + } + + public FeatureSpecificationCharacteristicRelationship resourceSpecificationId(String resourceSpecificationId) { + this.resourceSpecificationId = resourceSpecificationId; + return this; + } + + /** + * Unique identifier of the resource specification containing the target feature and feature characteristic + * @return resourceSpecificationId + **/ + @Schema(description = "Unique identifier of the resource specification containing the target feature and feature characteristic") + + public String getResourceSpecificationId() { + return resourceSpecificationId; + } + + public void setResourceSpecificationId(String resourceSpecificationId) { + this.resourceSpecificationId = resourceSpecificationId; + } + + public FeatureSpecificationCharacteristicRelationship validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FeatureSpecificationCharacteristicRelationship featureSpecificationCharacteristicRelationship = (FeatureSpecificationCharacteristicRelationship) o; + return Objects.equals(this.characteristicId, featureSpecificationCharacteristicRelationship.characteristicId) && + Objects.equals(this.featureId, featureSpecificationCharacteristicRelationship.featureId) && + Objects.equals(this.name, featureSpecificationCharacteristicRelationship.name) && + Objects.equals(this.relationshipType, featureSpecificationCharacteristicRelationship.relationshipType) && + Objects.equals(this.resourceSpecificationHref, featureSpecificationCharacteristicRelationship.resourceSpecificationHref) && + Objects.equals(this.resourceSpecificationId, featureSpecificationCharacteristicRelationship.resourceSpecificationId) && + Objects.equals(this.validFor, featureSpecificationCharacteristicRelationship.validFor) && + Objects.equals(this.baseType, featureSpecificationCharacteristicRelationship.baseType) && + Objects.equals(this.schemaLocation, featureSpecificationCharacteristicRelationship.schemaLocation) && + Objects.equals(this.type, featureSpecificationCharacteristicRelationship.type); + } + + @Override + public int hashCode() { + return Objects.hash(characteristicId, featureId, name, relationshipType, resourceSpecificationHref, resourceSpecificationId, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FeatureSpecificationCharacteristicRelationship {\n"); + + sb.append(" characteristicId: ").append(toIndentedString(characteristicId)).append("\n"); + sb.append(" featureId: ").append(toIndentedString(featureId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" resourceSpecificationHref: ").append(toIndentedString(resourceSpecificationHref)).append("\n"); + sb.append(" resourceSpecificationId: ").append(toIndentedString(resourceSpecificationId)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecificationCharacteristicValue.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecificationCharacteristicValue.java new file mode 100644 index 0000000..d189bda --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecificationCharacteristicValue.java @@ -0,0 +1,363 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * A number or text that can be assigned to a FeatureSpecificationCharacteristic. + */ +@Schema(description = "A number or text that can be assigned to a FeatureSpecificationCharacteristic.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + +@Entity(name = "RCMFeatureSpecCharVal") +public class FeatureSpecificationCharacteristicValue extends BaseRootEntity { + + @JsonProperty("isDefault") + private Boolean isDefault = null; + + @JsonProperty("rangeInterval") + private String rangeInterval = null; + + @JsonProperty("regex") + private String regex = null; + + @JsonProperty("unitOfMeasure") + private String unitOfMeasure = null; + + @JsonProperty("valueFrom") + private Integer valueFrom = null; + + @JsonProperty("valueTo") + private Integer valueTo = null; + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("value") + private Any value = null; + + + public FeatureSpecificationCharacteristicValue isDefault(Boolean isDefault) { + this.isDefault = isDefault; + return this; + } + + /** + * True if the value is the default value for a characteristic. + * @return isDefault + **/ + @Schema(description = "True if the value is the default value for a characteristic.") + + public Boolean isIsDefault() { + return isDefault; + } + + public void setIsDefault(Boolean isDefault) { + this.isDefault = isDefault; + } + + public FeatureSpecificationCharacteristicValue rangeInterval(String rangeInterval) { + this.rangeInterval = rangeInterval; + return this; + } + + /** + * Specifies the inclusion or exclusion of the valueFrom and valueTo attributes. + * @return rangeInterval + **/ + @Schema(description = "Specifies the inclusion or exclusion of the valueFrom and valueTo attributes.") + + public String getRangeInterval() { + return rangeInterval; + } + + public void setRangeInterval(String rangeInterval) { + this.rangeInterval = rangeInterval; + } + + public FeatureSpecificationCharacteristicValue regex(String regex) { + this.regex = regex; + return this; + } + + /** + * A regular expression constraint for given value. + * @return regex + **/ + @Schema(description = "A regular expression constraint for given value.") + + public String getRegex() { + return regex; + } + + public void setRegex(String regex) { + this.regex = regex; + } + + public FeatureSpecificationCharacteristicValue unitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + return this; + } + + /** + * A determinate quantity or magnitude of the kind designated, taken as a standard of comparison for others of the same kind, in assigning to them numerical values. + * @return unitOfMeasure + **/ + @Schema(description = "A determinate quantity or magnitude of the kind designated, taken as a standard of comparison for others of the same kind, in assigning to them numerical values.") + + public String getUnitOfMeasure() { + return unitOfMeasure; + } + + public void setUnitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + } + + public FeatureSpecificationCharacteristicValue valueFrom(Integer valueFrom) { + this.valueFrom = valueFrom; + return this; + } + + /** + * The low range value that a characteristic can take on. + * @return valueFrom + **/ + @Schema(description = "The low range value that a characteristic can take on.") + + public Integer getValueFrom() { + return valueFrom; + } + + public void setValueFrom(Integer valueFrom) { + this.valueFrom = valueFrom; + } + + public FeatureSpecificationCharacteristicValue valueTo(Integer valueTo) { + this.valueTo = valueTo; + return this; + } + + /** + * The upper range value that a characteristic can take on. + * @return valueTo + **/ + @Schema(description = "The upper range value that a characteristic can take on.") + + public Integer getValueTo() { + return valueTo; + } + + public void setValueTo(Integer valueTo) { + this.valueTo = valueTo; + } + + public FeatureSpecificationCharacteristicValue valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * A kind of value that the characteristic value can take on. + * @return valueType + **/ + @Schema(description = "A kind of value that the characteristic value can take on.") + @NotNull + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public FeatureSpecificationCharacteristicValue validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public FeatureSpecificationCharacteristicValue value(Any value) { + this.value = value; + return this; + } + + /** + * Get value + * @return value + **/ + @Schema(description = "") + + @Valid + public Any getValue() { + return value; + } + + public void setValue(Any value) { + this.value = value; + } + + public FeatureSpecificationCharacteristicValue _atBaseType(String _atBaseType) { + this.baseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String _atBaseType) { + this.baseType = _atBaseType; + } + + public FeatureSpecificationCharacteristicValue _atSchemaLocation(String _atSchemaLocation) { + this.schemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this.schemaLocation = _atSchemaLocation; + } + + public FeatureSpecificationCharacteristicValue _atType(String _atType) { + this.type = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String _atType) { + this.type = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FeatureSpecificationCharacteristicValue featureSpecificationCharacteristicValue = (FeatureSpecificationCharacteristicValue) o; + return Objects.equals(this.isDefault, featureSpecificationCharacteristicValue.isDefault) && + Objects.equals(this.rangeInterval, featureSpecificationCharacteristicValue.rangeInterval) && + Objects.equals(this.regex, featureSpecificationCharacteristicValue.regex) && + Objects.equals(this.unitOfMeasure, featureSpecificationCharacteristicValue.unitOfMeasure) && + Objects.equals(this.valueFrom, featureSpecificationCharacteristicValue.valueFrom) && + Objects.equals(this.valueTo, featureSpecificationCharacteristicValue.valueTo) && + Objects.equals(this.valueType, featureSpecificationCharacteristicValue.valueType) && + Objects.equals(this.validFor, featureSpecificationCharacteristicValue.validFor) && + Objects.equals(this.value, featureSpecificationCharacteristicValue.value) && + Objects.equals(this.baseType, featureSpecificationCharacteristicValue.baseType) && + Objects.equals(this.schemaLocation, featureSpecificationCharacteristicValue.schemaLocation) && + Objects.equals(this.type, featureSpecificationCharacteristicValue.type); + } + + @Override + public int hashCode() { + return Objects.hash(isDefault, rangeInterval, regex, unitOfMeasure, valueFrom, valueTo, valueType, validFor, value, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FeatureSpecificationCharacteristicValue {\n"); + + sb.append(" isDefault: ").append(toIndentedString(isDefault)).append("\n"); + sb.append(" rangeInterval: ").append(toIndentedString(rangeInterval)).append("\n"); + sb.append(" regex: ").append(toIndentedString(regex)).append("\n"); + sb.append(" unitOfMeasure: ").append(toIndentedString(unitOfMeasure)).append("\n"); + sb.append(" valueFrom: ").append(toIndentedString(valueFrom)).append("\n"); + sb.append(" valueTo: ").append(toIndentedString(valueTo)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecificationRelationship.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecificationRelationship.java new file mode 100644 index 0000000..0cbc70a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/FeatureSpecificationRelationship.java @@ -0,0 +1,283 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Configuration feature + */ +@Schema(description = "Configuration feature") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + +@Entity(name = "RCMFeatureSpecRel") +public class FeatureSpecificationRelationship extends BaseEntity { + @JsonProperty("featureId") + private String featureId = null; + + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("resourceSpecificationHref") + private String resourceSpecificationHref = null; + + @JsonProperty("resourceSpecificationId") + private String resourceSpecificationId = null; + + + public FeatureSpecificationRelationship featureId(String featureId) { + this.featureId = featureId; + return this; + } + + /** + * Unique identifier of the target feature specification. + * @return featureId + **/ + @Schema(description = "Unique identifier of the target feature specification.") + + public String getFeatureId() { + return featureId; + } + + public void setFeatureId(String featureId) { + this.featureId = featureId; + } + + public FeatureSpecificationRelationship name(String name) { + this.name = name; + return this; + } + + /** + * This is the name of the target feature specification. + * @return name + **/ + @Schema(description = "This is the name of the target feature specification.") + @NotNull + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public FeatureSpecificationRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * This is the type of the feature specification relationship. + * @return relationshipType + **/ + @Schema(description = "This is the type of the feature specification relationship.") + @NotNull + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public FeatureSpecificationRelationship resourceSpecificationHref(String resourceSpecificationHref) { + this.resourceSpecificationHref = resourceSpecificationHref; + return this; + } + + /** + * Hyperlink reference to the resource specification containing the target feature + * @return resourceSpecificationHref + **/ + @Schema(description = "Hyperlink reference to the resource specification containing the target feature") + + public String getResourceSpecificationHref() { + return resourceSpecificationHref; + } + + public void setResourceSpecificationHref(String resourceSpecificationHref) { + this.resourceSpecificationHref = resourceSpecificationHref; + } + + public FeatureSpecificationRelationship resourceSpecificationId(String resourceSpecificationId) { + this.resourceSpecificationId = resourceSpecificationId; + return this; + } + + /** + * Unique identifier of the resource specification containing the target feature + * @return resourceSpecificationId + **/ + @Schema(description = "Unique identifier of the resource specification containing the target feature") + + public String getResourceSpecificationId() { + return resourceSpecificationId; + } + + public void setResourceSpecificationId(String resourceSpecificationId) { + this.resourceSpecificationId = resourceSpecificationId; + } + + public FeatureSpecificationRelationship validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public FeatureSpecificationRelationship _atBaseType(String _atBaseType) { + this.baseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String _atBaseType) { + this.baseType = _atBaseType; + } + + public FeatureSpecificationRelationship _atSchemaLocation(String _atSchemaLocation) { + this.schemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this.schemaLocation = _atSchemaLocation; + } + + public FeatureSpecificationRelationship _atType(String _atType) { + this.type = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String _atType) { + this.type = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FeatureSpecificationRelationship featureSpecificationRelationship = (FeatureSpecificationRelationship) o; + return Objects.equals(this.featureId, featureSpecificationRelationship.featureId) && + Objects.equals(this.name, featureSpecificationRelationship.name) && + Objects.equals(this.relationshipType, featureSpecificationRelationship.relationshipType) && + Objects.equals(this.resourceSpecificationHref, featureSpecificationRelationship.resourceSpecificationHref) && + Objects.equals(this.resourceSpecificationId, featureSpecificationRelationship.resourceSpecificationId) && + Objects.equals(this.validFor, featureSpecificationRelationship.validFor) && + Objects.equals(this.baseType, featureSpecificationRelationship.baseType) && + Objects.equals(this.schemaLocation, featureSpecificationRelationship.schemaLocation) && + Objects.equals(this.type, featureSpecificationRelationship.type); + } + + @Override + public int hashCode() { + return Objects.hash(featureId, name, relationshipType, resourceSpecificationHref, resourceSpecificationId, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FeatureSpecificationRelationship {\n"); + + sb.append(" featureId: ").append(toIndentedString(featureId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" resourceSpecificationHref: ").append(toIndentedString(resourceSpecificationHref)).append("\n"); + sb.append(" resourceSpecificationId: ").append(toIndentedString(resourceSpecificationId)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJob.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJob.java new file mode 100644 index 0000000..63c0017 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJob.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Represents a task used to import resources from a file + */ +@Schema(description = "Represents a task used to import resources from a file") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ImportJob { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("completionDate") + private OffsetDateTime completionDate = null; + + @JsonProperty("contentType") + private String contentType = null; + + @JsonProperty("creationDate") + private OffsetDateTime creationDate = null; + + @JsonProperty("errorLog") + private String errorLog = null; + + @JsonProperty("path") + private String path = null; + + @JsonProperty("url") + private String url = null; + + @JsonProperty("status") + private JobStateType status = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public ImportJob id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the import job + * @return id + **/ + @Schema(description = "Identifier of the import job") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ImportJob href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the import job + * @return href + **/ + @Schema(description = "Reference of the import job") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ImportJob completionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Date at which the job was completed + * @return completionDate + **/ + @Schema(description = "Date at which the job was completed") + + @Valid + public OffsetDateTime getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + } + + public ImportJob contentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * Indicates the format of the imported data + * @return contentType + **/ + @Schema(description = "Indicates the format of the imported data") + + public String getContentType() { + return contentType; + } + + public void setContentType(String contentType) { + this.contentType = contentType; + } + + public ImportJob creationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + return this; + } + + /** + * Date at which the job was created + * @return creationDate + **/ + @Schema(description = "Date at which the job was created") + + @Valid + public OffsetDateTime getCreationDate() { + return creationDate; + } + + public void setCreationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + } + + public ImportJob errorLog(String errorLog) { + this.errorLog = errorLog; + return this; + } + + /** + * Reason for failure if status is failed + * @return errorLog + **/ + @Schema(description = "Reason for failure if status is failed") + + public String getErrorLog() { + return errorLog; + } + + public void setErrorLog(String errorLog) { + this.errorLog = errorLog; + } + + public ImportJob path(String path) { + this.path = path; + return this; + } + + /** + * URL of the root resource where the content of the file specified by the import job must be applied + * @return path + **/ + @Schema(description = "URL of the root resource where the content of the file specified by the import job must be applied") + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public ImportJob url(String url) { + this.url = url; + return this; + } + + /** + * URL of the file containing the data to be imported + * @return url + **/ + @Schema(description = "URL of the file containing the data to be imported") + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public ImportJob status(JobStateType status) { + this.status = status; + return this; + } + + /** + * Get status + * @return status + **/ + @Schema(description = "") + + @Valid + public JobStateType getStatus() { + return status; + } + + public void setStatus(JobStateType status) { + this.status = status; + } + + public ImportJob _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public ImportJob _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public ImportJob _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImportJob importJob = (ImportJob) o; + return Objects.equals(this.id, importJob.id) && + Objects.equals(this.href, importJob.href) && + Objects.equals(this.completionDate, importJob.completionDate) && + Objects.equals(this.contentType, importJob.contentType) && + Objects.equals(this.creationDate, importJob.creationDate) && + Objects.equals(this.errorLog, importJob.errorLog) && + Objects.equals(this.path, importJob.path) && + Objects.equals(this.url, importJob.url) && + Objects.equals(this.status, importJob.status) && + Objects.equals(this._atBaseType, importJob._atBaseType) && + Objects.equals(this._atSchemaLocation, importJob._atSchemaLocation) && + Objects.equals(this._atType, importJob._atType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, completionDate, contentType, creationDate, errorLog, path, url, status, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImportJob {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" contentType: ").append(toIndentedString(contentType)).append("\n"); + sb.append(" creationDate: ").append(toIndentedString(creationDate)).append("\n"); + sb.append(" errorLog: ").append(toIndentedString(errorLog)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobCreate.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobCreate.java new file mode 100644 index 0000000..2834a71 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobCreate.java @@ -0,0 +1,320 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Represents a task used to import resources from a file Skipped properties: id,href + */ +@Schema(description = "Represents a task used to import resources from a file Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ImportJobCreate { + @JsonProperty("completionDate") + private OffsetDateTime completionDate = null; + + @JsonProperty("contentType") + private String contentType = null; + + @JsonProperty("creationDate") + private OffsetDateTime creationDate = null; + + @JsonProperty("errorLog") + private String errorLog = null; + + @JsonProperty("path") + private String path = null; + + @JsonProperty("url") + private String url = null; + + @JsonProperty("status") + private JobStateType status = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public ImportJobCreate completionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Date at which the job was completed + * @return completionDate + **/ + @Schema(description = "Date at which the job was completed") + + @Valid + public OffsetDateTime getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + } + + public ImportJobCreate contentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * Indicates the format of the imported data + * @return contentType + **/ + @Schema(description = "Indicates the format of the imported data") + + public String getContentType() { + return contentType; + } + + public void setContentType(String contentType) { + this.contentType = contentType; + } + + public ImportJobCreate creationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + return this; + } + + /** + * Date at which the job was created + * @return creationDate + **/ + @Schema(description = "Date at which the job was created") + + @Valid + public OffsetDateTime getCreationDate() { + return creationDate; + } + + public void setCreationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + } + + public ImportJobCreate errorLog(String errorLog) { + this.errorLog = errorLog; + return this; + } + + /** + * Reason for failure if status is failed + * @return errorLog + **/ + @Schema(description = "Reason for failure if status is failed") + + public String getErrorLog() { + return errorLog; + } + + public void setErrorLog(String errorLog) { + this.errorLog = errorLog; + } + + public ImportJobCreate path(String path) { + this.path = path; + return this; + } + + /** + * URL of the root resource where the content of the file specified by the import job must be applied + * @return path + **/ + @Schema(description = "URL of the root resource where the content of the file specified by the import job must be applied") + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public ImportJobCreate url(String url) { + this.url = url; + return this; + } + + /** + * URL of the file containing the data to be imported + * @return url + **/ + @Schema(description = "URL of the file containing the data to be imported") + @NotNull + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public ImportJobCreate status(JobStateType status) { + this.status = status; + return this; + } + + /** + * Get status + * @return status + **/ + @Schema(description = "") + + @Valid + public JobStateType getStatus() { + return status; + } + + public void setStatus(JobStateType status) { + this.status = status; + } + + public ImportJobCreate _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public ImportJobCreate _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public ImportJobCreate _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImportJobCreate importJobCreate = (ImportJobCreate) o; + return Objects.equals(this.completionDate, importJobCreate.completionDate) && + Objects.equals(this.contentType, importJobCreate.contentType) && + Objects.equals(this.creationDate, importJobCreate.creationDate) && + Objects.equals(this.errorLog, importJobCreate.errorLog) && + Objects.equals(this.path, importJobCreate.path) && + Objects.equals(this.url, importJobCreate.url) && + Objects.equals(this.status, importJobCreate.status) && + Objects.equals(this._atBaseType, importJobCreate._atBaseType) && + Objects.equals(this._atSchemaLocation, importJobCreate._atSchemaLocation) && + Objects.equals(this._atType, importJobCreate._atType); + } + + @Override + public int hashCode() { + return Objects.hash(completionDate, contentType, creationDate, errorLog, path, url, status, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImportJobCreate {\n"); + + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" contentType: ").append(toIndentedString(contentType)).append("\n"); + sb.append(" creationDate: ").append(toIndentedString(creationDate)).append("\n"); + sb.append(" errorLog: ").append(toIndentedString(errorLog)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobCreateEvent.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobCreateEvent.java new file mode 100644 index 0000000..3285e6a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobCreateEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ImportJobCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ImportJobCreateEventPayload event = null; + + public ImportJobCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ImportJobCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ImportJobCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ImportJobCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ImportJobCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ImportJobCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ImportJobCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ImportJobCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ImportJobCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ImportJobCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ImportJobCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ImportJobCreateEvent event(ImportJobCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ImportJobCreateEventPayload getEvent() { + return event; + } + + public void setEvent(ImportJobCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImportJobCreateEvent importJobCreateEvent = (ImportJobCreateEvent) o; + return Objects.equals(this.id, importJobCreateEvent.id) && + Objects.equals(this.href, importJobCreateEvent.href) && + Objects.equals(this.eventId, importJobCreateEvent.eventId) && + Objects.equals(this.eventTime, importJobCreateEvent.eventTime) && + Objects.equals(this.eventType, importJobCreateEvent.eventType) && + Objects.equals(this.correlationId, importJobCreateEvent.correlationId) && + Objects.equals(this.domain, importJobCreateEvent.domain) && + Objects.equals(this.title, importJobCreateEvent.title) && + Objects.equals(this.description, importJobCreateEvent.description) && + Objects.equals(this.priority, importJobCreateEvent.priority) && + Objects.equals(this.timeOcurred, importJobCreateEvent.timeOcurred) && + Objects.equals(this.event, importJobCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImportJobCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobCreateEventPayload.java new file mode 100644 index 0000000..e99a2f1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobCreateEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ImportJobCreateEventPayload { + @JsonProperty("importJob") + private ImportJob importJob = null; + + public ImportJobCreateEventPayload importJob(ImportJob importJob) { + this.importJob = importJob; + return this; + } + + /** + * Get importJob + * @return importJob + **/ + @Schema(description = "") + + @Valid + public ImportJob getImportJob() { + return importJob; + } + + public void setImportJob(ImportJob importJob) { + this.importJob = importJob; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImportJobCreateEventPayload importJobCreateEventPayload = (ImportJobCreateEventPayload) o; + return Objects.equals(this.importJob, importJobCreateEventPayload.importJob); + } + + @Override + public int hashCode() { + return Objects.hash(importJob); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImportJobCreateEventPayload {\n"); + + sb.append(" importJob: ").append(toIndentedString(importJob)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobStateChangeEvent.java new file mode 100644 index 0000000..f1ac99a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobStateChangeEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ImportJobStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ImportJobStateChangeEventPayload event = null; + + public ImportJobStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ImportJobStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ImportJobStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ImportJobStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ImportJobStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ImportJobStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ImportJobStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ImportJobStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ImportJobStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ImportJobStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ImportJobStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ImportJobStateChangeEvent event(ImportJobStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ImportJobStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(ImportJobStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImportJobStateChangeEvent importJobStateChangeEvent = (ImportJobStateChangeEvent) o; + return Objects.equals(this.id, importJobStateChangeEvent.id) && + Objects.equals(this.href, importJobStateChangeEvent.href) && + Objects.equals(this.eventId, importJobStateChangeEvent.eventId) && + Objects.equals(this.eventTime, importJobStateChangeEvent.eventTime) && + Objects.equals(this.eventType, importJobStateChangeEvent.eventType) && + Objects.equals(this.correlationId, importJobStateChangeEvent.correlationId) && + Objects.equals(this.domain, importJobStateChangeEvent.domain) && + Objects.equals(this.title, importJobStateChangeEvent.title) && + Objects.equals(this.description, importJobStateChangeEvent.description) && + Objects.equals(this.priority, importJobStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, importJobStateChangeEvent.timeOcurred) && + Objects.equals(this.event, importJobStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImportJobStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobStateChangeEventPayload.java new file mode 100644 index 0000000..aaf3399 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ImportJobStateChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ImportJobStateChangeEventPayload { + @JsonProperty("importJob") + private ImportJob importJob = null; + + public ImportJobStateChangeEventPayload importJob(ImportJob importJob) { + this.importJob = importJob; + return this; + } + + /** + * Get importJob + * @return importJob + **/ + @Schema(description = "") + + @Valid + public ImportJob getImportJob() { + return importJob; + } + + public void setImportJob(ImportJob importJob) { + this.importJob = importJob; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImportJobStateChangeEventPayload importJobStateChangeEventPayload = (ImportJobStateChangeEventPayload) o; + return Objects.equals(this.importJob, importJobStateChangeEventPayload.importJob); + } + + @Override + public int hashCode() { + return Objects.hash(importJob); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImportJobStateChangeEventPayload {\n"); + + sb.append(" importJob: ").append(toIndentedString(importJob)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/JobStateType.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/JobStateType.java new file mode 100644 index 0000000..a68c71b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/JobStateType.java @@ -0,0 +1,55 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Valid values for the state of a batch job (e.g. catalog import) + */ +public enum JobStateType { + NOT_STARTED("Not Started"), + RUNNING("Running"), + SUCCEEDED("Succeeded"), + FAILED("Failed"); + + private String value; + + JobStateType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static JobStateType fromValue(String text) { + for (JobStateType b : JobStateType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/LogicalResourceSpecification.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/LogicalResourceSpecification.java new file mode 100644 index 0000000..cf8d0dd --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/LogicalResourceSpecification.java @@ -0,0 +1,44 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * This is a base class that is used to define the invariant characteristics and + * behavior (attributes, methods, constraints, and relationships) of a + * LogicalResource. + */ +@Schema(description = "This is a base class that is used to define the invariant characteristics and behavior (attributes, methods, constraints, and relationships) of a LogicalResource.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@Entity(name = "LogicalRspec") +public class LogicalResourceSpecification extends ResourceSpecification { + + public LogicalResourceSpecification() { + super(); + this.baseType = "ResourceSpecification"; + this.type = "LogicalResourceSpecification"; + + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/LogicalResourceSpecificationCreate.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/LogicalResourceSpecificationCreate.java new file mode 100644 index 0000000..d3468e2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/LogicalResourceSpecificationCreate.java @@ -0,0 +1,98 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class LogicalResourceSpecificationCreate extends LogicalResourceSpecificationUpdate { + + @JsonProperty("@type") + private String type = null; + + + public LogicalResourceSpecificationCreate name(String name) { + this.name = name; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LogicalResourceSpecificationCreate logicalResourceSpecCreate = (LogicalResourceSpecificationCreate) o; + return Objects.equals(this.name, logicalResourceSpecCreate.name) + && Objects.equals(this.description, logicalResourceSpecCreate.description) + && Objects.equals(this.type, logicalResourceSpecCreate.type) + && Objects.equals(this.schemaLocation, logicalResourceSpecCreate.schemaLocation) + && Objects.equals(this.baseType, logicalResourceSpecCreate.baseType) + && Objects.equals(this.version, logicalResourceSpecCreate.version) + && Objects.equals(this.validFor, logicalResourceSpecCreate.validFor) + && Objects.equals(this.lifecycleStatus, logicalResourceSpecCreate.lifecycleStatus) + && Objects.equals(this.isBundle, logicalResourceSpecCreate.isBundle) + && Objects.equals(this.category, logicalResourceSpecCreate.category) + && Objects.equals(this.targetResourceSchema, logicalResourceSpecCreate.targetResourceSchema) + && Objects.equals(this.featureSpecification, logicalResourceSpecCreate.featureSpecification) + && Objects.equals(this.attachment, logicalResourceSpecCreate.attachment) + && Objects.equals(this.relatedParty, logicalResourceSpecCreate.relatedParty) + && Objects.equals(this.resourceSpecificationCharacteristic, logicalResourceSpecCreate.resourceSpecificationCharacteristic) + && Objects.equals(this.resourceSpecificationRelationship, logicalResourceSpecCreate.resourceSpecificationRelationship); + } + +// @Override +// public int hashCode() { +// return Objects.hash(name, description, type, schemaLocation, baseType, version, validFor, lastUpdate, +// lifecycleStatus, isBundle, category, targetResourceSchema, feature, attachment, relatedParty, +// resourceSpecCharacteristic, resourceSpecRelationship); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LogicalResourceSpecCreate {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" targetResourceSchema: ").append(toIndentedString(targetResourceSchema)).append("\n"); + sb.append(" featureSpecification: ").append(toIndentedString(featureSpecification)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" resourceSpecificationCharacteristic: ").append(toIndentedString(resourceSpecificationCharacteristic)).append("\n"); + sb.append(" resourceSpecRelationship: ").append(toIndentedString(resourceSpecificationRelationship)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/LogicalResourceSpecificationUpdate.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/LogicalResourceSpecificationUpdate.java new file mode 100644 index 0000000..4d2e669 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/LogicalResourceSpecificationUpdate.java @@ -0,0 +1,24 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +public class LogicalResourceSpecificationUpdate extends ResourceSpecificationUpdate { + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/PhysicalResourceSpecification.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/PhysicalResourceSpecification.java new file mode 100644 index 0000000..3d7dcf1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/PhysicalResourceSpecification.java @@ -0,0 +1,245 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * This is a concrete class that is used to define the invariant characteristics + * and behavior (attributes, methods, constraints, and relationships) of a + * PhysicalResource. + */ +@Schema(description = "This is a concrete class that is used to define the invariant characteristics and behavior (attributes, methods, constraints, and relationships) of a PhysicalResource.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@Entity(name = "PhysicalRspec") +public class PhysicalResourceSpecification extends ResourceSpecification { + + public PhysicalResourceSpecification() { + super(); + this.baseType = "ResourceSpecification"; + this.type = "PhysicalResourceSpecification"; + + } + + @JsonProperty("model") + private String model = null; + + + @JsonProperty("part") + private String part = null; + + @JsonProperty("sku") + private String sku = null; + + @JsonProperty("vendor") + private String vendor = null; + + + public PhysicalResourceSpecification model(String model) { + this.model = model; + return this; + } + + /** + * This is a string that represents a manufacturer-allocated number used to + * identify the general type and/or category of the hardware item. This, in + * combination with the Part and the Vendor, identify different types of + * hardware items. The SerialNumber can then be used to differentiate between + * different instances of the same type of hardware item. This is an optional + * attribute. + * + * @return model + **/ + @Schema(description = "This is a string that represents a manufacturer-allocated number used to identify the general type and/or category of the hardware item. This, in combination with the Part and the Vendor, identify different types of hardware items. The SerialNumber can then be used to differentiate between different instances of the same type of hardware item. This is an optional attribute.") + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + + public PhysicalResourceSpecification part(String part) { + this.part = part; + return this; + } + + /** + * This is a string that defines a manufacturer-allocated part number assigned + * by the organization that manufactures the hardware item. This, in combination + * with the Model and the Vendor, identify different types of hardware items. + * The SerialNumber can then be used to differentiate between different + * instances of the same type of hardware item. This is a REQUIRED attribute. + * + * @return part + **/ + @Schema(description = "This is a string that defines a manufacturer-allocated part number assigned by the organization that manufactures the hardware item. This, in combination with the Model and the Vendor, identify different types of hardware items. The SerialNumber can then be used to differentiate between different instances of the same type of hardware item. This is a REQUIRED attribute.") + + public String getPart() { + return part; + } + + public void setPart(String part) { + this.part = part; + } + + public PhysicalResourceSpecification sku(String sku) { + this.sku = sku; + return this; + } + + /** + * This is a string that defines the manufacturer-allocated Stock Keeping Unit + * (SKU) number of the hardware item. This is an optional attribute. + * + * @return sku + **/ + @Schema(description = "This is a string that defines the manufacturer-allocated Stock Keeping Unit (SKU) number of the hardware item. This is an optional attribute.") + + public String getSku() { + return sku; + } + + public void setSku(String sku) { + this.sku = sku; + } + + public PhysicalResourceSpecification vendor(String vendor) { + this.vendor = vendor; + return this; + } + + /** + * This is a string that defines the name of the manufacturer. This, in + * combination with the Model and the Part, identify different types of hardware + * items. The SerialNumber can then be used to differentiate between different + * instances of the same type of hardware item. This is a REQUIRED attribute for + * a physical resource. + * + * @return vendor + **/ + @Schema(description = "This is a string that defines the name of the manufacturer. This, in combination with the Model and the Part, identify different types of hardware items. The SerialNumber can then be used to differentiate between different instances of the same type of hardware item. This is a REQUIRED attribute for a physical resource.") + + public String getVendor() { + return vendor; + } + + public void setVendor(String vendor) { + this.vendor = vendor; + } + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PhysicalResourceSpecification physicalResourceSpecification = (PhysicalResourceSpecification) o; + return Objects.equals(this.uuid, physicalResourceSpecification.uuid) + && Objects.equals(this.href, physicalResourceSpecification.href) + && Objects.equals(this.category, physicalResourceSpecification.category) + && Objects.equals(this.description, physicalResourceSpecification.description) + && Objects.equals(this.isBundle, physicalResourceSpecification.isBundle) + && Objects.equals(this.lastUpdate, physicalResourceSpecification.lastUpdate) + && Objects.equals(this.lifecycleStatus, physicalResourceSpecification.lifecycleStatus) + && Objects.equals(this.model, physicalResourceSpecification.model) + && Objects.equals(this.name, physicalResourceSpecification.name) + && Objects.equals(this.part, physicalResourceSpecification.part) + && Objects.equals(this.sku, physicalResourceSpecification.sku) + && Objects.equals(this.vendor, physicalResourceSpecification.vendor) + && Objects.equals(this.version, physicalResourceSpecification.version) + && Objects.equals(this.attachment, physicalResourceSpecification.attachment) + && Objects.equals(this.featureSpecification, physicalResourceSpecification.featureSpecification) + && Objects.equals(this.relatedParty, physicalResourceSpecification.relatedParty) + && Objects.equals(this.resourceSpecCharacteristic, + physicalResourceSpecification.resourceSpecCharacteristic) + && Objects.equals(this.resourceSpecRelationship, physicalResourceSpecification.resourceSpecRelationship) + && Objects.equals(this.targetResourceSchema, physicalResourceSpecification.targetResourceSchema) + && Objects.equals(this.validFor, physicalResourceSpecification.validFor) + && Objects.equals(this.baseType, physicalResourceSpecification.baseType) + && Objects.equals(this.schemaLocation, physicalResourceSpecification.schemaLocation) + && Objects.equals(this.type, physicalResourceSpecification.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, category, description, isBundle, lastUpdate, lifecycleStatus, model, name, part, +// sku, vendor, version, attachment, featureSpecification, relatedParty, resourceSpecCharacteristic, +// resourceSpecRelationship, targetResourceSchema, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PhysicalResourceSpecification {\n"); + + sb.append(" id: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" model: ").append(toIndentedString(model)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" part: ").append(toIndentedString(part)).append("\n"); + sb.append(" sku: ").append(toIndentedString(sku)).append("\n"); + sb.append(" vendor: ").append(toIndentedString(vendor)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" featureSpecification: ").append(toIndentedString(featureSpecification)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" resourceSpecCharacteristic: ").append(toIndentedString(resourceSpecCharacteristic)).append("\n"); + sb.append(" resourceSpecRelationship: ").append(toIndentedString(resourceSpecRelationship)).append("\n"); + sb.append(" targetResourceSchema: ").append(toIndentedString(targetResourceSchema)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/PhysicalResourceSpecificationCreate.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/PhysicalResourceSpecificationCreate.java new file mode 100644 index 0000000..1dfee36 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/PhysicalResourceSpecificationCreate.java @@ -0,0 +1,116 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * This is a concrete class that is used to define the invariant characteristics and behavior (attributes, methods, constraints, and relationships) of a PhysicalResource. Skipped properties: id,href + */ +@Schema(description = "This is a concrete class that is used to define the invariant characteristics and behavior (attributes, methods, constraints, and relationships) of a PhysicalResource. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:06:08.595+03:00") + +public class PhysicalResourceSpecificationCreate extends PhysicalResourceSpecificationUpdate { + + @JsonProperty("@type") + private String type = "PhysicalResourceSpecification"; + + public PhysicalResourceSpecificationCreate name(String name) { + this.name = name; + return this; + } + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PhysicalResourceSpecificationCreate physicalResourceSpecCreate = (PhysicalResourceSpecificationCreate) o; + return Objects.equals(this.name, physicalResourceSpecCreate.name) && + Objects.equals(this.description, physicalResourceSpecCreate.description) && + Objects.equals(this.type, physicalResourceSpecCreate.type) && + Objects.equals(this.schemaLocation, physicalResourceSpecCreate.schemaLocation) && + Objects.equals(this.baseType, physicalResourceSpecCreate.baseType) && + Objects.equals(this.version, physicalResourceSpecCreate.version) && + Objects.equals(this.validFor, physicalResourceSpecCreate.validFor) && + Objects.equals(this.lifecycleStatus, physicalResourceSpecCreate.lifecycleStatus) && + Objects.equals(this.isBundle, physicalResourceSpecCreate.isBundle) && + Objects.equals(this.category, physicalResourceSpecCreate.category) && + Objects.equals(this.model, physicalResourceSpecCreate.model) && + Objects.equals(this.part, physicalResourceSpecCreate.part) && + Objects.equals(this.sku, physicalResourceSpecCreate.sku) && + Objects.equals(this.vendor, physicalResourceSpecCreate.vendor) && + Objects.equals(this.targetResourceSchema, physicalResourceSpecCreate.targetResourceSchema) && + Objects.equals(this.featureSpecification, physicalResourceSpecCreate.featureSpecification) && + Objects.equals(this.attachment, physicalResourceSpecCreate.attachment) && + Objects.equals(this.relatedParty, physicalResourceSpecCreate.relatedParty) && + Objects.equals(this.resourceSpecificationCharacteristic, physicalResourceSpecCreate.resourceSpecificationCharacteristic) && + Objects.equals(this.resourceSpecificationRelationship, physicalResourceSpecCreate.resourceSpecificationRelationship); + } + +// @Override +// public int hashCode() { +// return Objects.hash(name, description, type, _atSchemaLocation, _atBaseType, version, validFor, lastUpdate, lifecycleStatus, isBundle, category, model, part, sku, vendor, place, targetResourceSchema, feature, attachment, relatedParty, resourceSpecCharacteristic, resourceSpecRelationship); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PhysicalResourceSpecCreate {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" model: ").append(toIndentedString(model)).append("\n"); + sb.append(" part: ").append(toIndentedString(part)).append("\n"); + sb.append(" sku: ").append(toIndentedString(sku)).append("\n"); + sb.append(" vendor: ").append(toIndentedString(vendor)).append("\n"); + sb.append(" targetResourceSchema: ").append(toIndentedString(targetResourceSchema)).append("\n"); + sb.append(" featureSpecification: ").append(toIndentedString(featureSpecification)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" resourceSpecificationCharacteristic: ").append(toIndentedString(resourceSpecificationCharacteristic)).append("\n"); + sb.append(" resourceSpecRelationship: ").append(toIndentedString(resourceSpecificationRelationship)).append("\n"); + sb.append("}"); + return sb.toString(); + } + +} + diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/PhysicalResourceSpecificationUpdate.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/PhysicalResourceSpecificationUpdate.java new file mode 100644 index 0000000..cb3cab8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/PhysicalResourceSpecificationUpdate.java @@ -0,0 +1,197 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * This is a concrete class that is used to define the invariant characteristics and behavior (attributes, methods, constraints, and relationships) of a PhysicalResource. Skipped properties: id,href,id,href,lastUpdate,@type + */ +@Schema(description = "This is a concrete class that is used to define the invariant characteristics and behavior (attributes, methods, constraints, and relationships) of a PhysicalResource. Skipped properties: id,href,id,href,lastUpdate,@type") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:06:08.595+03:00") + +public class PhysicalResourceSpecificationUpdate extends ResourceSpecificationUpdate { + + + @JsonProperty("model") + protected String model = null; + + @JsonProperty("part") + protected String part = null; + + @JsonProperty("sku") + protected String sku = null; + + @JsonProperty("vendor") + protected String vendor = null; + + + + /** + * This is a string that represents a manufacturer-allocated number used to identify the general type and/or category of the hardware item. This, in combination with the Part and the Vendor, identify different types of hardware items. The SerialNumber can then be used to differentiate between different instances of the same type of hardware item. This is an optional attribute. + * @return model + **/ + @Schema(description = "This is a string that represents a manufacturer-allocated number used to identify the general type and/or category of the hardware item. This, in combination with the Part and the Vendor, identify different types of hardware items. The SerialNumber can then be used to differentiate between different instances of the same type of hardware item. This is an optional attribute.") + + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + public PhysicalResourceSpecificationUpdate part(String part) { + this.part = part; + return this; + } + + /** + * This is a string that defines a manufacturer-allocated part number assigned by the organization that manufactures the hardware item. This, in combination with the Model and the Vendor, identify different types of hardware items. The SerialNumber can then be used to differentiate between different instances of the same type of hardware item. This is a REQUIRED attribute. + * @return part + **/ + @Schema(description = "This is a string that defines a manufacturer-allocated part number assigned by the organization that manufactures the hardware item. This, in combination with the Model and the Vendor, identify different types of hardware items. The SerialNumber can then be used to differentiate between different instances of the same type of hardware item. This is a REQUIRED attribute.") + + + public String getPart() { + return part; + } + + public void setPart(String part) { + this.part = part; + } + + public PhysicalResourceSpecificationUpdate sku(String sku) { + this.sku = sku; + return this; + } + + /** + * This is a string that defines the manufacturer-allocated Stock Keeping Unit (SKU) number of the hardware item. This is an optional attribute. + * @return sku + **/ + @Schema(description = "This is a string that defines the manufacturer-allocated Stock Keeping Unit (SKU) number of the hardware item. This is an optional attribute.") + + + public String getSku() { + return sku; + } + + public void setSku(String sku) { + this.sku = sku; + } + + public PhysicalResourceSpecificationUpdate vendor(String vendor) { + this.vendor = vendor; + return this; + } + + /** + * This is a string that defines the name of the manufacturer. This, in combination with the Model and the Part, identify different types of hardware items. The SerialNumber can then be used to differentiate between different instances of the same type of hardware item. This is a REQUIRED attribute for a physical resource. + * @return vendor + **/ + @Schema(description = "This is a string that defines the name of the manufacturer. This, in combination with the Model and the Part, identify different types of hardware items. The SerialNumber can then be used to differentiate between different instances of the same type of hardware item. This is a REQUIRED attribute for a physical resource.") + + + public String getVendor() { + return vendor; + } + + public void setVendor(String vendor) { + this.vendor = vendor; + } + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PhysicalResourceSpecificationUpdate physicalResourceSpecUpdate = (PhysicalResourceSpecificationUpdate) o; + return Objects.equals(this.name, physicalResourceSpecUpdate.name) && + Objects.equals(this.description, physicalResourceSpecUpdate.description) && + Objects.equals(this.schemaLocation, physicalResourceSpecUpdate.schemaLocation) && + Objects.equals(this.baseType, physicalResourceSpecUpdate.baseType) && + Objects.equals(this.version, physicalResourceSpecUpdate.version) && + Objects.equals(this.validFor, physicalResourceSpecUpdate.validFor) && + Objects.equals(this.lifecycleStatus, physicalResourceSpecUpdate.lifecycleStatus) && + Objects.equals(this.isBundle, physicalResourceSpecUpdate.isBundle) && + Objects.equals(this.category, physicalResourceSpecUpdate.category) && + Objects.equals(this.model, physicalResourceSpecUpdate.model) && + Objects.equals(this.part, physicalResourceSpecUpdate.part) && + Objects.equals(this.sku, physicalResourceSpecUpdate.sku) && + Objects.equals(this.vendor, physicalResourceSpecUpdate.vendor) && + Objects.equals(this.targetResourceSchema, physicalResourceSpecUpdate.targetResourceSchema) && + Objects.equals(this.featureSpecification, physicalResourceSpecUpdate.featureSpecification) && + Objects.equals(this.attachment, physicalResourceSpecUpdate.attachment) && + Objects.equals(this.relatedParty, physicalResourceSpecUpdate.relatedParty) && + Objects.equals(this.resourceSpecificationCharacteristic, physicalResourceSpecUpdate.resourceSpecificationCharacteristic) && + Objects.equals(this.resourceSpecificationRelationship, physicalResourceSpecUpdate.resourceSpecificationRelationship); + } + +// @Override +// public int hashCode() { +// return Objects.hash(name, description, _atSchemaLocation, _atBaseType, version, validFor, lifecycleStatus, isBundle, category, model, part, sku, vendor, place, targetResourceSchema, feature, attachment, relatedParty, resourceSpecCharacteristic, resourceSpecRelationship); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PhysicalResourceSpecUpdate {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" model: ").append(toIndentedString(model)).append("\n"); + sb.append(" part: ").append(toIndentedString(part)).append("\n"); + sb.append(" sku: ").append(toIndentedString(sku)).append("\n"); + sb.append(" vendor: ").append(toIndentedString(vendor)).append("\n"); + sb.append(" targetResourceSchema: ").append(toIndentedString(targetResourceSchema)).append("\n"); + sb.append(" featureSpecification: ").append(toIndentedString(featureSpecification)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" resourceSpecificationCharacteristic: ").append(toIndentedString(resourceSpecificationCharacteristic)).append("\n"); + sb.append(" resourceSpecRelationship: ").append(toIndentedString(resourceSpecificationRelationship)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + +} + diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidate.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidate.java new file mode 100644 index 0000000..39d1add --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidate.java @@ -0,0 +1,230 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Transient; +import jakarta.validation.Valid; + +/** + * ResourceCandidate is an entity that makes a resource specification available + * to a catalog. A ResourceCandidate and its associated resource specification + * may be published - made visible - in any number of resource catalogs, or in + * none. + */ +@Schema(description = "ResourceCandidate is an entity that makes a resource specification available to a catalog. A ResourceCandidate and its associated resource specification may be published - made visible - in any number of resource catalogs, or in none.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:06:08.595+03:00") +@Entity(name = "ResourceCandidate") +public class ResourceCandidate extends BaseEntity { + @JsonProperty("id") + private String id = null; + + @ManyToMany(mappedBy = "resourceCandidateObj", cascade = {CascadeType.MERGE, CascadeType.DETACH} ) + @JsonIgnore + private Set categoryObj = new HashSet<>(); + + @OneToOne(cascade = {CascadeType.MERGE, CascadeType.DETACH}) + @JoinColumn(name = "resource_specid", referencedColumnName = "uuid") + @JsonIgnore + private ResourceSpecification resourceSpecificationObj = null; + + public ResourceCandidate() { + super(); + this.type = "ResourceCandidate"; + this.baseType = "BaseEntity"; + } + + + + /** + * The resource specification implied by this candidate + * + * @return resourceSpecification + **/ + @Schema(description = "The resource specification implied by this candidate") + + @Transient + @JsonProperty("resourceSpecification") + @Valid + public ResourceSpecificationRef getResourceSpecificationRef() { + if ( this.resourceSpecificationObj != null ) + { + ResourceSpecificationRef sref = new ResourceSpecificationRef(); + + sref.setId( this.resourceSpecificationObj.getUuid()); + sref.setName( this.resourceSpecificationObj.getName() ); + sref.setVersion( this.resourceSpecificationObj.getVersion()); + sref.setBaseType(ResourceSpecificationRef.class.getName()); + return sref; + } + + return null; + } + + + /** + * @return the resourceSpecificationObj + */ + public ResourceSpecification getResourceSpecificationObj() { + return resourceSpecificationObj; + } + + + + + /** + * @param resourceSpecificationObj the resourceSpecificationObj to set + */ + public void setResourceSpecificationObj(ResourceSpecification resourceSpecificationObj) { + this.resourceSpecificationObj = resourceSpecificationObj; + } + + + + + /** + * The resource specification implied by this candidate + * + * @return resourceSpecification + **/ + @Schema(description = "The category specification implied by this candidate") + + @Transient + @JsonProperty("category") + @Valid + public List getCategory() { + + List category = new ArrayList<>(); + + for (ResourceCategory resourceCategory : categoryObj) { + ResourceCategoryRef scr = new ResourceCategoryRef(); + scr.setId(resourceCategory.getId()); + scr.setName(resourceCategory.getName()); + scr.setBaseType(ResourceCategoryRef.class.getName()); + category.add(scr); + } + + return category; + } + + + /** + * Unique identifier of this REST resource + * + * @return id + **/ + @Schema(description = "Unique identifier of this REST resource") + + public String getId() { + return uuid; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCandidate resourceCandidate = (ResourceCandidate) o; + return Objects.equals(this.id, resourceCandidate.id) && Objects.equals(this.href, resourceCandidate.href) + && Objects.equals(this.name, resourceCandidate.name) + && Objects.equals(this.description, resourceCandidate.description) + && Objects.equals(this.type, resourceCandidate.type) + && Objects.equals(this.schemaLocation, resourceCandidate.schemaLocation) + && Objects.equals(this.baseType, resourceCandidate.baseType) + && Objects.equals(this.version, resourceCandidate.version) + && Objects.equals(this.validFor, resourceCandidate.validFor) + && Objects.equals(this.lastUpdate, resourceCandidate.lastUpdate) + && Objects.equals(this.lifecycleStatus, resourceCandidate.lifecycleStatus) + && Objects.equals(this.getCategory(), resourceCandidate.getCategory()) + && Objects.equals(this.getResourceSpecificationRef(), resourceCandidate.getResourceSpecificationRef()); + } + +// @Override +// public int hashCode() { +// return Objects.hash(uuid, id, href, name, description, type, schemaLocation, baseType, version, validFor, lastUpdate, +// lifecycleStatus, getCategory(), getResourceSpecificationRef()); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCandidate {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" category: ").append(toIndentedString(getCategory())).append("\n"); + sb.append(" resourceSpecification: ").append(toIndentedString(getResourceSpecificationRef())).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * @return the categoryObj + */ + public Set getCategoryObj() { + return categoryObj; + } + + /** + * @param categoryObj the categoryObj to set + */ + public void setCategoryObj(Set categoryObj) { + this.categoryObj = categoryObj; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateChangeEvent.java new file mode 100644 index 0000000..0dee7d8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateChangeEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceCandidateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ResourceCandidateChangeEventPayload event = null; + + public ResourceCandidateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceCandidateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceCandidateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceCandidateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceCandidateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceCandidateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceCandidateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceCandidateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceCandidateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceCandidateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceCandidateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ResourceCandidateChangeEvent event(ResourceCandidateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceCandidateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(ResourceCandidateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCandidateChangeEvent resourceCandidateChangeEvent = (ResourceCandidateChangeEvent) o; + return Objects.equals(this.id, resourceCandidateChangeEvent.id) && + Objects.equals(this.href, resourceCandidateChangeEvent.href) && + Objects.equals(this.eventId, resourceCandidateChangeEvent.eventId) && + Objects.equals(this.eventTime, resourceCandidateChangeEvent.eventTime) && + Objects.equals(this.eventType, resourceCandidateChangeEvent.eventType) && + Objects.equals(this.correlationId, resourceCandidateChangeEvent.correlationId) && + Objects.equals(this.domain, resourceCandidateChangeEvent.domain) && + Objects.equals(this.title, resourceCandidateChangeEvent.title) && + Objects.equals(this.description, resourceCandidateChangeEvent.description) && + Objects.equals(this.priority, resourceCandidateChangeEvent.priority) && + Objects.equals(this.timeOcurred, resourceCandidateChangeEvent.timeOcurred) && + Objects.equals(this.event, resourceCandidateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCandidateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateChangeEventPayload.java new file mode 100644 index 0000000..a8e7350 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceCandidateChangeEventPayload { + @JsonProperty("resourceCandidate") + private ResourceCandidate resourceCandidate = null; + + public ResourceCandidateChangeEventPayload resourceCandidate(ResourceCandidate resourceCandidate) { + this.resourceCandidate = resourceCandidate; + return this; + } + + /** + * Get resourceCandidate + * @return resourceCandidate + **/ + @Schema(description = "") + + @Valid + public ResourceCandidate getResourceCandidate() { + return resourceCandidate; + } + + public void setResourceCandidate(ResourceCandidate resourceCandidate) { + this.resourceCandidate = resourceCandidate; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCandidateChangeEventPayload resourceCandidateChangeEventPayload = (ResourceCandidateChangeEventPayload) o; + return Objects.equals(this.resourceCandidate, resourceCandidateChangeEventPayload.resourceCandidate); + } + + @Override + public int hashCode() { + return Objects.hash(resourceCandidate); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCandidateChangeEventPayload {\n"); + + sb.append(" resourceCandidate: ").append(toIndentedString(resourceCandidate)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateCreate.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateCreate.java new file mode 100644 index 0000000..3be8807 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateCreate.java @@ -0,0 +1,134 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * ResourceCandidate is an entity that makes a resource specification available to a catalog. A ResourceCandidate and its associated resource specification may be published - made visible - in any number of resource catalogs, or in none. Skipped properties: id,href + */ +@Schema(description = "ResourceCandidate is an entity that makes a resource specification available to a catalog. A ResourceCandidate and its associated resource specification may be published - made visible - in any number of resource catalogs, or in none. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + +public class ResourceCandidateCreate extends ResourceCandidateUpdate { + + @JsonProperty("lastUpdate") + private OffsetDateTime lastUpdate = null; + + + + public ResourceCandidateCreate name(String name) { + this.name = name; + return this; + } + + + + public ResourceCandidateCreate lastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + /** + * Date and time of the last update of this REST resource + * @return lastUpdate + **/ + @Schema(description = "Date and time of the last update of this REST resource") + + @Valid + + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCandidateCreate resourceCandidateCreate = (ResourceCandidateCreate) o; + return Objects.equals(this.name, resourceCandidateCreate.name) && + Objects.equals(this.description, resourceCandidateCreate.description) && + Objects.equals(this.type, resourceCandidateCreate.type) && + Objects.equals(this.schemaLocation, resourceCandidateCreate.schemaLocation) && + Objects.equals(this.baseType, resourceCandidateCreate.baseType) && + Objects.equals(this.version, resourceCandidateCreate.version) && + Objects.equals(this.validFor, resourceCandidateCreate.validFor) && + Objects.equals(this.lastUpdate, resourceCandidateCreate.lastUpdate) && + Objects.equals(this.lifecycleStatus, resourceCandidateCreate.lifecycleStatus) && + Objects.equals(this.category, resourceCandidateCreate.category) && + Objects.equals(this.resourceSpecification, resourceCandidateCreate.resourceSpecification); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, type, schemaLocation, baseType, version, validFor, lastUpdate, lifecycleStatus, category, resourceSpecification); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCandidateCreate {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" resourceSpecification: ").append(toIndentedString(resourceSpecification)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateCreateEvent.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateCreateEvent.java new file mode 100644 index 0000000..77927c0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateCreateEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceCandidateCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ResourceCandidateCreateEventPayload event = null; + + public ResourceCandidateCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceCandidateCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceCandidateCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceCandidateCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceCandidateCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceCandidateCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceCandidateCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceCandidateCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceCandidateCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceCandidateCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceCandidateCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ResourceCandidateCreateEvent event(ResourceCandidateCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceCandidateCreateEventPayload getEvent() { + return event; + } + + public void setEvent(ResourceCandidateCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCandidateCreateEvent resourceCandidateCreateEvent = (ResourceCandidateCreateEvent) o; + return Objects.equals(this.id, resourceCandidateCreateEvent.id) && + Objects.equals(this.href, resourceCandidateCreateEvent.href) && + Objects.equals(this.eventId, resourceCandidateCreateEvent.eventId) && + Objects.equals(this.eventTime, resourceCandidateCreateEvent.eventTime) && + Objects.equals(this.eventType, resourceCandidateCreateEvent.eventType) && + Objects.equals(this.correlationId, resourceCandidateCreateEvent.correlationId) && + Objects.equals(this.domain, resourceCandidateCreateEvent.domain) && + Objects.equals(this.title, resourceCandidateCreateEvent.title) && + Objects.equals(this.description, resourceCandidateCreateEvent.description) && + Objects.equals(this.priority, resourceCandidateCreateEvent.priority) && + Objects.equals(this.timeOcurred, resourceCandidateCreateEvent.timeOcurred) && + Objects.equals(this.event, resourceCandidateCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCandidateCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateCreateEventPayload.java new file mode 100644 index 0000000..a2bc11c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateCreateEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceCandidateCreateEventPayload { + @JsonProperty("resourceCandidate") + private ResourceCandidate resourceCandidate = null; + + public ResourceCandidateCreateEventPayload resourceCandidate(ResourceCandidate resourceCandidate) { + this.resourceCandidate = resourceCandidate; + return this; + } + + /** + * Get resourceCandidate + * @return resourceCandidate + **/ + @Schema(description = "") + + @Valid + public ResourceCandidate getResourceCandidate() { + return resourceCandidate; + } + + public void setResourceCandidate(ResourceCandidate resourceCandidate) { + this.resourceCandidate = resourceCandidate; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCandidateCreateEventPayload resourceCandidateCreateEventPayload = (ResourceCandidateCreateEventPayload) o; + return Objects.equals(this.resourceCandidate, resourceCandidateCreateEventPayload.resourceCandidate); + } + + @Override + public int hashCode() { + return Objects.hash(resourceCandidate); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCandidateCreateEventPayload {\n"); + + sb.append(" resourceCandidate: ").append(toIndentedString(resourceCandidate)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateDeleteEvent.java new file mode 100644 index 0000000..a14437d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateDeleteEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceCandidateDeleteEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ResourceCandidateDeleteEventPayload event = null; + + public ResourceCandidateDeleteEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceCandidateDeleteEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceCandidateDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceCandidateDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceCandidateDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceCandidateDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceCandidateDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceCandidateDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceCandidateDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceCandidateDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceCandidateDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ResourceCandidateDeleteEvent event(ResourceCandidateDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceCandidateDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(ResourceCandidateDeleteEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCandidateDeleteEvent resourceCandidateDeleteEvent = (ResourceCandidateDeleteEvent) o; + return Objects.equals(this.id, resourceCandidateDeleteEvent.id) && + Objects.equals(this.href, resourceCandidateDeleteEvent.href) && + Objects.equals(this.eventId, resourceCandidateDeleteEvent.eventId) && + Objects.equals(this.eventTime, resourceCandidateDeleteEvent.eventTime) && + Objects.equals(this.eventType, resourceCandidateDeleteEvent.eventType) && + Objects.equals(this.correlationId, resourceCandidateDeleteEvent.correlationId) && + Objects.equals(this.domain, resourceCandidateDeleteEvent.domain) && + Objects.equals(this.title, resourceCandidateDeleteEvent.title) && + Objects.equals(this.description, resourceCandidateDeleteEvent.description) && + Objects.equals(this.priority, resourceCandidateDeleteEvent.priority) && + Objects.equals(this.timeOcurred, resourceCandidateDeleteEvent.timeOcurred) && + Objects.equals(this.event, resourceCandidateDeleteEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCandidateDeleteEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateDeleteEventPayload.java new file mode 100644 index 0000000..2605568 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateDeleteEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceCandidateDeleteEventPayload { + @JsonProperty("resourceCandidate") + private ResourceCandidate resourceCandidate = null; + + public ResourceCandidateDeleteEventPayload resourceCandidate(ResourceCandidate resourceCandidate) { + this.resourceCandidate = resourceCandidate; + return this; + } + + /** + * Get resourceCandidate + * @return resourceCandidate + **/ + @Schema(description = "") + + @Valid + public ResourceCandidate getResourceCandidate() { + return resourceCandidate; + } + + public void setResourceCandidate(ResourceCandidate resourceCandidate) { + this.resourceCandidate = resourceCandidate; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCandidateDeleteEventPayload resourceCandidateDeleteEventPayload = (ResourceCandidateDeleteEventPayload) o; + return Objects.equals(this.resourceCandidate, resourceCandidateDeleteEventPayload.resourceCandidate); + } + + @Override + public int hashCode() { + return Objects.hash(resourceCandidate); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCandidateDeleteEventPayload {\n"); + + sb.append(" resourceCandidate: ").append(toIndentedString(resourceCandidate)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateRef.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateRef.java new file mode 100644 index 0000000..1d02949 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateRef.java @@ -0,0 +1,152 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * ResourceCandidate is an entity that makes a resource specification available to a catalog. A ResourceCandidate and its associated resource specification may be published - made visible - in any number of resource catalogs, or in none. + */ +@Schema(description = "ResourceCandidate is an entity that makes a resource specification available to a catalog. A ResourceCandidate and its associated resource specification may be published - made visible - in any number of resource catalogs, or in none.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + +public class ResourceCandidateRef extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("version") + private String version = null; + + + public ResourceCandidateRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the resource candidate + * @return id + **/ + @Schema(description = "Unique identifier of the resource candidate") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceCandidateRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the resource candidate + * @return href + **/ + @Schema(description = "Reference of the resource candidate") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceCandidateRef version(String version) { + this.version = version; + return this; + } + + /** + * Version of the resource candidate + * @return version + **/ + @Schema(description = "Version of the resource candidate") + + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCandidateRef resourceCandidateRef = (ResourceCandidateRef) o; + return Objects.equals(this.id, resourceCandidateRef.id) && + Objects.equals(this.href, resourceCandidateRef.href) && + Objects.equals(this.version, resourceCandidateRef.version) && + Objects.equals(this.name, resourceCandidateRef.name); + } + // + // @Override + // public int hashCode() { +// return Objects.hash(uuid, id, href, version, name); + // } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCandidateRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + } + diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateUpdate.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateUpdate.java new file mode 100644 index 0000000..af7785f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCandidateUpdate.java @@ -0,0 +1,370 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + + +/** + * ResourceCandidate is an entity that makes a resource specification available to a catalog. A ResourceCandidate and its associated resource specification may be published - made visible - in any number of resource catalogs, or in none. Skipped properties: id,href + */ +@Schema(description = "ResourceCandidate is an entity that makes a resource specification available to a catalog. A ResourceCandidate and its associated resource specification may be published - made visible - in any number of resource catalogs, or in none. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + +public class ResourceCandidateUpdate { + @JsonProperty("name") + protected String name = null; + + @JsonProperty("description") + protected String description = null; + + @JsonProperty("@type") + protected String type = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("version") + protected String version = null; + + @JsonProperty("validFor") + protected TimePeriod validFor = null; + + @JsonProperty("lastUpdate") + protected OffsetDateTime lastUpdate = null; + + @JsonProperty("lifecycleStatus") + protected String lifecycleStatus = null; + + @JsonProperty("category") + @Valid + protected List category = null; + + @JsonProperty("resourceSpecification") + protected ResourceSpecificationRef resourceSpecification = null; + + public ResourceCandidateUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name given to this REST resource + * + * @return name + **/ + @Schema(description = "Name given to this REST resource") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ResourceCandidateUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Description of this REST resource + * + * @return description + **/ + @Schema(description = "Description of this REST resource") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceCandidateUpdate type(String type) { + this.type = type; + return this; + } + + /** + * Class type of this REST resource + * + * @return type + **/ + @Schema(description = "Class type of this REST resource") + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public ResourceCandidateUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * This field provides a link to the schema describing this REST resource + * + * @return schemaLocation + **/ + @Schema(description = "This field provides a link to the schema describing this REST resource") + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ResourceCandidateUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * The (immediate) base class type of this REST resource + * + * @return baseType + **/ + @Schema(description = "The (immediate) base class type of this REST resource") + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ResourceCandidateUpdate version(String version) { + this.version = version; + return this; + } + + /** + * the version of resource candidate + * + * @return version + **/ + @Schema(description = "the version of resource candidate") + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public ResourceCandidateUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which this REST resource is valid + * + * @return validFor + **/ + @Schema(description = "The period for which this REST resource is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ResourceCandidateUpdate lastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + /** + * Date and time of the last update of this REST resource + * + * @return lastUpdate + **/ + @Schema(description = "Date and time of the last update of this REST resource") + + @Valid + + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + public ResourceCandidateUpdate lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Used to indicate the current lifecycle status of the resource candidate. + * + * @return lifecycleStatus + **/ + @Schema(description = "Used to indicate the current lifecycle status of the resource candidate.") + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public ResourceCandidateUpdate category(List category) { + this.category = category; + return this; + } + + public ResourceCandidateUpdate addCategoryItem(ResourceCategoryRef categoryItem) { + if (this.category == null) { + this.category = new ArrayList(); + } + this.category.add(categoryItem); + return this; + } + + /** + * Get category + * + * @return category + **/ + @Schema(description = "") + + @Valid + + public List getCategory() { + return category; + } + + public void setCategory(List category) { + this.category = category; + } + + public ResourceCandidateUpdate resourceSpecification(ResourceSpecificationRef resourceSpecification) { + this.resourceSpecification = resourceSpecification; + return this; + } + + /** + * Get resourceSpecification + * + * @return resourceSpecification + **/ + @Schema(description = "") + + @Valid + + public ResourceSpecificationRef getResourceSpecification() { + return resourceSpecification; + } + + public void setResourceSpecification(ResourceSpecificationRef resourceSpecification) { + this.resourceSpecification = resourceSpecification; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCandidateUpdate resourceCandidateUpdate = (ResourceCandidateUpdate) o; + return Objects.equals(this.name, resourceCandidateUpdate.name) + && Objects.equals(this.description, resourceCandidateUpdate.description) + && Objects.equals(this.type, resourceCandidateUpdate.type) + && Objects.equals(this.schemaLocation, resourceCandidateUpdate.schemaLocation) + && Objects.equals(this.baseType, resourceCandidateUpdate.baseType) + && Objects.equals(this.version, resourceCandidateUpdate.version) + && Objects.equals(this.validFor, resourceCandidateUpdate.validFor) + && Objects.equals(this.lastUpdate, resourceCandidateUpdate.lastUpdate) + && Objects.equals(this.lifecycleStatus, resourceCandidateUpdate.lifecycleStatus) + && Objects.equals(this.category, resourceCandidateUpdate.category) + && Objects.equals(this.resourceSpecification, resourceCandidateUpdate.resourceSpecification); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, type, schemaLocation, baseType, version, validFor, lastUpdate, + lifecycleStatus, category, resourceSpecification); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCandidateUpdate {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" resourceSpecification: ").append(toIndentedString(resourceSpecification)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalog.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalog.java new file mode 100644 index 0000000..b3c2a16 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalog.java @@ -0,0 +1,236 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinTable; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.Transient; +import jakarta.validation.Valid; + +/** + * The root entity for resource catalog management. A resource catalog is a group of resource specifications made available through resource candidates that an organization provides to the consumers (internal consumers like its employees or B2B customers or B2C customers). + */ +@Schema(description = "The root entity for resource catalog management. A resource catalog is a group of resource specifications made available through resource candidates that an organization provides to the consumers (internal consumers like its employees or B2B customers or B2C customers).") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + +@Entity(name = "ResourceCatalog") +public class ResourceCatalog extends BaseEntity { + + @JsonProperty("id") + protected String id = null; + + + @Transient + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @ManyToMany(cascade = { CascadeType.DETACH }) + @JoinTable() + @JsonIgnore + private Set categoryObj = new HashSet<>(); + + public ResourceCatalog id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the Catalog + * + * @return id + **/ + @Schema(description = "Unique identifier of the Catalog") + + /** + * @return the id + */ + public String getId() { + return uuid; + } + + public ResourceCatalog relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ResourceCatalog addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + + /** + * List of service categories associated with this catalog + * + * @return category + **/ + @Schema(description = "List of service categories associated with this catalog") + @Transient + @JsonProperty("category") + @Valid + public List getCategoryRefs() { + + List category = new ArrayList<>(); + + for (ResourceCategory serviceCategory : categoryObj) { + ResourceCategoryRef scr = new ResourceCategoryRef(); + scr.setId( serviceCategory.getId()); + scr.setName( serviceCategory.getName()); + scr.setBaseType( ResourceCategoryRef.class.getName() ); + category.add(scr); + + } + + return category; + } + + /** + * @param crefs + */ + public void setCategoryRefs( List crefs){ + for (ResourceCategoryRef serviceCategoryRef : crefs) { + ResourceCategory e = new ResourceCategory(); + e.setUuid( serviceCategoryRef.getId() ); + e.setName(serviceCategoryRef.getName()); + categoryObj.add(e ); + } + } + + /** + * @return the categoryObj + */ + public Set getCategoryObj() { + return categoryObj; + } + + /** + * @param categoryObj the categoryObj to set + */ + public void setCategoryObj(Set categoryObj) { + this.categoryObj = categoryObj; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCatalog resourceCatalog = (ResourceCatalog) o; + return Objects.equals(this.id, resourceCatalog.id) && Objects.equals(this.href, resourceCatalog.href) + && Objects.equals(this.name, resourceCatalog.name) + && Objects.equals(this.description, resourceCatalog.description) + && Objects.equals(this.type, resourceCatalog.type) + && Objects.equals(this.schemaLocation, resourceCatalog.schemaLocation) + && Objects.equals(this.baseType, resourceCatalog.baseType) + && Objects.equals(this.version, resourceCatalog.version) + && Objects.equals(this.validFor, resourceCatalog.validFor) + && Objects.equals(this.lastUpdate, resourceCatalog.lastUpdate) + && Objects.equals(this.lifecycleStatus, resourceCatalog.lifecycleStatus) + && Objects.equals(this.relatedParty, resourceCatalog.relatedParty) + && Objects.equals(this.getCategoryRefs(), resourceCatalog.getCategoryRefs()); + } + +// @Override +// public int hashCode() { +// return Objects.hash(uuid, id, href, name, description, type, schemaLocation, baseType, version, validFor, +// lastUpdate, lifecycleStatus, relatedParty, getCategoryRefs()); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCatalog {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" category: ").append(toIndentedString( getCategoryRefs() )).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public void addCategory(ResourceCategory cat) { + if (!categoryObj.contains(cat) ) { + categoryObj.add(cat); + } + + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogChangeEvent.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogChangeEvent.java new file mode 100644 index 0000000..78cdb7d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogChangeEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceCatalogChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ResourceCatalogChangeEventPayload event = null; + + public ResourceCatalogChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceCatalogChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceCatalogChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceCatalogChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceCatalogChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceCatalogChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceCatalogChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceCatalogChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceCatalogChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceCatalogChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceCatalogChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ResourceCatalogChangeEvent event(ResourceCatalogChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceCatalogChangeEventPayload getEvent() { + return event; + } + + public void setEvent(ResourceCatalogChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCatalogChangeEvent resourceCatalogChangeEvent = (ResourceCatalogChangeEvent) o; + return Objects.equals(this.id, resourceCatalogChangeEvent.id) && + Objects.equals(this.href, resourceCatalogChangeEvent.href) && + Objects.equals(this.eventId, resourceCatalogChangeEvent.eventId) && + Objects.equals(this.eventTime, resourceCatalogChangeEvent.eventTime) && + Objects.equals(this.eventType, resourceCatalogChangeEvent.eventType) && + Objects.equals(this.correlationId, resourceCatalogChangeEvent.correlationId) && + Objects.equals(this.domain, resourceCatalogChangeEvent.domain) && + Objects.equals(this.title, resourceCatalogChangeEvent.title) && + Objects.equals(this.description, resourceCatalogChangeEvent.description) && + Objects.equals(this.priority, resourceCatalogChangeEvent.priority) && + Objects.equals(this.timeOcurred, resourceCatalogChangeEvent.timeOcurred) && + Objects.equals(this.event, resourceCatalogChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCatalogChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogChangeEventPayload.java new file mode 100644 index 0000000..613e180 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceCatalogChangeEventPayload { + @JsonProperty("resourceCatalog") + private ResourceCatalog resourceCatalog = null; + + public ResourceCatalogChangeEventPayload resourceCatalog(ResourceCatalog resourceCatalog) { + this.resourceCatalog = resourceCatalog; + return this; + } + + /** + * Get resourceCatalog + * @return resourceCatalog + **/ + @Schema(description = "") + + @Valid + public ResourceCatalog getResourceCatalog() { + return resourceCatalog; + } + + public void setResourceCatalog(ResourceCatalog resourceCatalog) { + this.resourceCatalog = resourceCatalog; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCatalogChangeEventPayload resourceCatalogChangeEventPayload = (ResourceCatalogChangeEventPayload) o; + return Objects.equals(this.resourceCatalog, resourceCatalogChangeEventPayload.resourceCatalog); + } + + @Override + public int hashCode() { + return Objects.hash(resourceCatalog); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCatalogChangeEventPayload {\n"); + + sb.append(" resourceCatalog: ").append(toIndentedString(resourceCatalog)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogCreate.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogCreate.java new file mode 100644 index 0000000..36e9686 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogCreate.java @@ -0,0 +1,130 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The root entity for resource catalog management. A resource catalog is a group of resource specifications made available through resource candidates that an organization provides to the consumers (internal consumers like its employees or B2B customers or B2C customers). Skipped properties: id,href + */ +@Schema(description = "The root entity for resource catalog management. A resource catalog is a group of resource specifications made available through resource candidates that an organization provides to the consumers (internal consumers like its employees or B2B customers or B2C customers). Skipped properties: id,href") +@Validated + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:06:08.595+03:00") + +public class ResourceCatalogCreate extends ResourceCatalogUpdate { + + + @JsonProperty("lastUpdate") + private OffsetDateTime lastUpdate = null; + + + + public ResourceCatalogCreate lastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + /** + * Date and time of the last update + * @return lastUpdate + **/ + @Schema(description = "Date and time of the last update") + + @Valid + + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCatalogCreate resourceCatalogCreate = (ResourceCatalogCreate) o; + return Objects.equals(this.name, resourceCatalogCreate.name) && + Objects.equals(this.description, resourceCatalogCreate.description) && + Objects.equals(this.type, resourceCatalogCreate.type) && + Objects.equals(this.schemaLocation, resourceCatalogCreate.schemaLocation) && + Objects.equals(this.baseType, resourceCatalogCreate.baseType) && + Objects.equals(this.version, resourceCatalogCreate.version) && + Objects.equals(this.validFor, resourceCatalogCreate.validFor) && + Objects.equals(this.lastUpdate, resourceCatalogCreate.lastUpdate) && + Objects.equals(this.lifecycleStatus, resourceCatalogCreate.lifecycleStatus) && + Objects.equals(this.relatedParty, resourceCatalogCreate.relatedParty) && + Objects.equals(this.category, resourceCatalogCreate.category); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, type, schemaLocation, baseType, version, validFor, lastUpdate, lifecycleStatus, relatedParty, category); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCatalogCreate {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogCreateEvent.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogCreateEvent.java new file mode 100644 index 0000000..8654568 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogCreateEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceCatalogCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ResourceCatalogCreateEventPayload event = null; + + public ResourceCatalogCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceCatalogCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceCatalogCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceCatalogCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceCatalogCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceCatalogCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceCatalogCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceCatalogCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceCatalogCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceCatalogCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceCatalogCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ResourceCatalogCreateEvent event(ResourceCatalogCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceCatalogCreateEventPayload getEvent() { + return event; + } + + public void setEvent(ResourceCatalogCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCatalogCreateEvent resourceCatalogCreateEvent = (ResourceCatalogCreateEvent) o; + return Objects.equals(this.id, resourceCatalogCreateEvent.id) && + Objects.equals(this.href, resourceCatalogCreateEvent.href) && + Objects.equals(this.eventId, resourceCatalogCreateEvent.eventId) && + Objects.equals(this.eventTime, resourceCatalogCreateEvent.eventTime) && + Objects.equals(this.eventType, resourceCatalogCreateEvent.eventType) && + Objects.equals(this.correlationId, resourceCatalogCreateEvent.correlationId) && + Objects.equals(this.domain, resourceCatalogCreateEvent.domain) && + Objects.equals(this.title, resourceCatalogCreateEvent.title) && + Objects.equals(this.description, resourceCatalogCreateEvent.description) && + Objects.equals(this.priority, resourceCatalogCreateEvent.priority) && + Objects.equals(this.timeOcurred, resourceCatalogCreateEvent.timeOcurred) && + Objects.equals(this.event, resourceCatalogCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCatalogCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogCreateEventPayload.java new file mode 100644 index 0000000..49297db --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogCreateEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceCatalogCreateEventPayload { + @JsonProperty("resourceCatalog") + private ResourceCatalog resourceCatalog = null; + + public ResourceCatalogCreateEventPayload resourceCatalog(ResourceCatalog resourceCatalog) { + this.resourceCatalog = resourceCatalog; + return this; + } + + /** + * Get resourceCatalog + * @return resourceCatalog + **/ + @Schema(description = "") + + @Valid + public ResourceCatalog getResourceCatalog() { + return resourceCatalog; + } + + public void setResourceCatalog(ResourceCatalog resourceCatalog) { + this.resourceCatalog = resourceCatalog; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCatalogCreateEventPayload resourceCatalogCreateEventPayload = (ResourceCatalogCreateEventPayload) o; + return Objects.equals(this.resourceCatalog, resourceCatalogCreateEventPayload.resourceCatalog); + } + + @Override + public int hashCode() { + return Objects.hash(resourceCatalog); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCatalogCreateEventPayload {\n"); + + sb.append(" resourceCatalog: ").append(toIndentedString(resourceCatalog)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogDeleteEvent.java new file mode 100644 index 0000000..e9f6607 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogDeleteEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceCatalogDeleteEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ResourceCatalogDeleteEventPayload event = null; + + public ResourceCatalogDeleteEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceCatalogDeleteEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceCatalogDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceCatalogDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceCatalogDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceCatalogDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceCatalogDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceCatalogDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceCatalogDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceCatalogDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceCatalogDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ResourceCatalogDeleteEvent event(ResourceCatalogDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceCatalogDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(ResourceCatalogDeleteEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCatalogDeleteEvent resourceCatalogDeleteEvent = (ResourceCatalogDeleteEvent) o; + return Objects.equals(this.id, resourceCatalogDeleteEvent.id) && + Objects.equals(this.href, resourceCatalogDeleteEvent.href) && + Objects.equals(this.eventId, resourceCatalogDeleteEvent.eventId) && + Objects.equals(this.eventTime, resourceCatalogDeleteEvent.eventTime) && + Objects.equals(this.eventType, resourceCatalogDeleteEvent.eventType) && + Objects.equals(this.correlationId, resourceCatalogDeleteEvent.correlationId) && + Objects.equals(this.domain, resourceCatalogDeleteEvent.domain) && + Objects.equals(this.title, resourceCatalogDeleteEvent.title) && + Objects.equals(this.description, resourceCatalogDeleteEvent.description) && + Objects.equals(this.priority, resourceCatalogDeleteEvent.priority) && + Objects.equals(this.timeOcurred, resourceCatalogDeleteEvent.timeOcurred) && + Objects.equals(this.event, resourceCatalogDeleteEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCatalogDeleteEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogDeleteEventPayload.java new file mode 100644 index 0000000..6be22f3 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogDeleteEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceCatalogDeleteEventPayload { + @JsonProperty("resourceCatalog") + private ResourceCatalog resourceCatalog = null; + + public ResourceCatalogDeleteEventPayload resourceCatalog(ResourceCatalog resourceCatalog) { + this.resourceCatalog = resourceCatalog; + return this; + } + + /** + * Get resourceCatalog + * @return resourceCatalog + **/ + @Schema(description = "") + + @Valid + public ResourceCatalog getResourceCatalog() { + return resourceCatalog; + } + + public void setResourceCatalog(ResourceCatalog resourceCatalog) { + this.resourceCatalog = resourceCatalog; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCatalogDeleteEventPayload resourceCatalogDeleteEventPayload = (ResourceCatalogDeleteEventPayload) o; + return Objects.equals(this.resourceCatalog, resourceCatalogDeleteEventPayload.resourceCatalog); + } + + @Override + public int hashCode() { + return Objects.hash(resourceCatalog); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCatalogDeleteEventPayload {\n"); + + sb.append(" resourceCatalog: ").append(toIndentedString(resourceCatalog)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogUpdate.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogUpdate.java new file mode 100644 index 0000000..c96cd95 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCatalogUpdate.java @@ -0,0 +1,347 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The root entity for resource catalog management. A resource catalog is a group of resource specifications made available through resource candidates that an organization provides to the consumers (internal consumers like its employees or B2B customers or B2C customers). Skipped properties: id,href + */ +@Schema(description = "The root entity for resource catalog management. A resource catalog is a group of resource specifications made available through resource candidates that an organization provides to the consumers (internal consumers like its employees or B2B customers or B2C customers). Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + + +public class ResourceCatalogUpdate { + @JsonProperty("name") +protected String name = null; + + @JsonProperty("description") + protected String description = null; + + @JsonProperty("@type") + protected String type = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("version") + protected String version = null; + + @JsonProperty("validFor") + protected TimePeriod validFor = null; + + + @JsonProperty("lifecycleStatus") + protected String lifecycleStatus = null; + + @JsonProperty("relatedParty") + @Valid + protected List relatedParty = null; + + @JsonProperty("category") + @Valid + protected List category = null; + + public ResourceCatalogUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the catalog + * @return name + **/ + @Schema(description = "Name of the catalog") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ResourceCatalogUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Description of this catalog + * @return description + **/ + @Schema(description = "Description of this catalog") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceCatalogUpdate type(String type) { + this.type = type; + return this; + } + + /** + * Indicates the (class) type of catalog. For resource catalogs, this will be 'ResourceCatalog'. + * @return type + **/ + @Schema(description = "Indicates the (class) type of catalog. For resource catalogs, this will be 'ResourceCatalog'.") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public ResourceCatalogUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * This field provides a link to the schema describing this REST resource + * @return schemaLocation + **/ + @Schema(description = "This field provides a link to the schema describing this REST resource") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ResourceCatalogUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * Indicates the base (class) type of this REST resource + * @return baseType + **/ + @Schema(description = "Indicates the base (class) type of this REST resource") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ResourceCatalogUpdate version(String version) { + this.version = version; + return this; + } + + /** + * Catalog version + * @return version + **/ + @Schema(description = "Catalog version") + + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public ResourceCatalogUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the catalog is valid + * @return validFor + **/ + @Schema(description = "The period for which the catalog is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + + /** + * Used to indicate the current lifecycle status + * @return lifecycleStatus + **/ + @Schema(description = "Used to indicate the current lifecycle status") + + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public ResourceCatalogUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ResourceCatalogUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public ResourceCatalogUpdate category(List category) { + this.category = category; + return this; + } + + public ResourceCatalogUpdate addCategoryItem(ResourceCategoryRef categoryItem) { + if (this.category == null) { + this.category = new ArrayList<>(); + } + this.category.add(categoryItem); + return this; + } + + /** + * Get category + * @return category + **/ + @Schema(description = "") + + @Valid + + public List getCategory() { + return category; + } + + public void setCategory(List category) { + this.category = category; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCatalogUpdate resourceCatalogUpdate = (ResourceCatalogUpdate) o; + return Objects.equals(this.name, resourceCatalogUpdate.name) && + Objects.equals(this.description, resourceCatalogUpdate.description) && + Objects.equals(this.type, resourceCatalogUpdate.type) && + Objects.equals(this.schemaLocation, resourceCatalogUpdate.schemaLocation) && + Objects.equals(this.baseType, resourceCatalogUpdate.baseType) && + Objects.equals(this.version, resourceCatalogUpdate.version) && + Objects.equals(this.validFor, resourceCatalogUpdate.validFor) && + Objects.equals(this.lifecycleStatus, resourceCatalogUpdate.lifecycleStatus) && + Objects.equals(this.relatedParty, resourceCatalogUpdate.relatedParty) && + Objects.equals(this.category, resourceCatalogUpdate.category); + } + +// @Override +// public int hashCode() { +// return Objects.hash(name, description, type, schemaLocation, baseType, version, validFor, lifecycleStatus, relatedParty, category); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCatalogUpdate {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategory.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategory.java new file mode 100644 index 0000000..1e345b4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategory.java @@ -0,0 +1,304 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinTable; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Transient; +import jakarta.validation.Valid; + + +/** + * The (resource) category resource is used to group resource candidates in logical containers. Categories can contain other categories. + */ +@Schema(description = "The (resource) category resource is used to group resource candidates in logical containers. Categories can contain other categories.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + +@Entity(name = "ResourceCategory") +public class ResourceCategory extends BaseEntity { + + @JsonProperty("id") + protected String id = null; + + + @JsonProperty("parentId") + private String parentId = null; + + @JsonProperty("isRoot") + private Boolean isRoot = null; + + @OneToMany( cascade = { CascadeType.MERGE, CascadeType.DETACH }) + @JoinTable() + @JsonIgnore + private Set categoryObj = new HashSet<>(); + + + + @ManyToMany( cascade = { CascadeType.MERGE, CascadeType.REMOVE } ) + @JoinTable() + @JsonIgnore + private Set resourceCandidateObj = new HashSet<>(); + + /** + * Unique identifier of the category + * + * @return id + **/ + @Schema(description = "Unique identifier of the category") + + /** + * @return the id + */ + public String getId() { + id = uuid; + return uuid; + } + + + + + public ResourceCategory parentId(String parentId) { + this.parentId = parentId; + return this; + } + + /** + * Unique identifier of the parent category + * + * @return parentId + **/ + @Schema(description = "Unique identifier of the parent category") + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public ResourceCategory isRoot(Boolean isRoot) { + this.isRoot = isRoot; + return this; + } + + /** + * If true, this Boolean indicates that the category is a root of categories + * + * @return isRoot + **/ + @Schema(description = "If true, this Boolean indicates that the category is a root of categories") + + public Boolean isIsRoot() { + return isRoot; + } + + public void setIsRoot(Boolean isRoot) { + this.isRoot = isRoot; + } + + + + + /** + * List of child categories in the tree for in this category + * + * @return category + **/ + @Schema(description = "List of child categories in the tree for in this category") + @Transient + @JsonProperty("category") + @Valid + public List getCategoryRefs() { + + List category = new ArrayList<>(); + + for (ResourceCategory resourceCategory : categoryObj) { + ResourceCategoryRef scr = new ResourceCategoryRef(); + scr.setId( resourceCategory.getId()); + scr.setName( resourceCategory.getName()); + scr.setBaseType( ResourceCategoryRef.class.getName() ); + category.add(scr); + + } + + return category; + } + + /** + * @param categoryObj the categoryObj to set + */ + @JsonProperty("category") + public void setCategoryObj(List alist) { + this.categoryObj.clear(); + for (ResourceCategoryRef resCategoryRef : alist) { + ResourceCategory sc = new ResourceCategory(); + sc.setUuid( resCategoryRef.getId()); + sc.setName(resCategoryRef.getName()); + sc.setBaseType(resCategoryRef.getBaseType()); + this.categoryObj.add(sc); + } + } + + + + /** + * @return the categoryObj + */ + public Set getCategoryObj() { + return categoryObj; + } + + /** + * @param categoryObj the categoryObj to set + */ + public void setCategoryObj(Set categoryObj) { + this.categoryObj = categoryObj; + } + + + + /** + * List of resource candidates associated with this category + * + * @return resourceCandidate + **/ + @Schema(description = "List of resource candidates associated with this category") + + @Valid + @JsonProperty("resourceCandidate") + public List getResourceCandidateRefs() { + + List scref = new ArrayList<>(); + + for (ResourceCandidate sc : resourceCandidateObj) { + ResourceCandidateRef scr = new ResourceCandidateRef(); + scr.setId( sc.getId()); + scr.setName( sc.getName()); + scr.setVersion( sc.getVersion()); + scr.setBaseType( ResourceCategoryRef.class.getName() ); + scref.add(scr); + } + + return scref; + } + + + + /** + * @return the resourceCandidateObj + */ + public Set getResourceCandidateObj() { + return resourceCandidateObj; + } + + + + + /** + * @param resourceCandidateObj the resourceCandidateObj to set + */ + public void setResourceCandidateObj(Set resourceCandidateObj) { + this.resourceCandidateObj = resourceCandidateObj; + } + + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCategory resourceCategory = (ResourceCategory) o; + return Objects.equals(this.id, resourceCategory.id) && Objects.equals(this.href, resourceCategory.href) + && Objects.equals(this.name, resourceCategory.name) + && Objects.equals(this.description, resourceCategory.description) + && Objects.equals(this.type, resourceCategory.type) + && Objects.equals(this.baseType, resourceCategory.baseType) + && Objects.equals(this.version, resourceCategory.version) + && Objects.equals(this.validFor, resourceCategory.validFor) + && Objects.equals(this.lifecycleStatus, resourceCategory.lifecycleStatus) + && Objects.equals(this.lastUpdate, resourceCategory.lastUpdate) + && Objects.equals(this.parentId, resourceCategory.parentId) + && Objects.equals(this.isRoot, resourceCategory.isRoot) + && Objects.equals(this.getCategoryRefs(), resourceCategory.getCategoryRefs()) + && Objects.equals(this.getResourceCandidateRefs(), resourceCategory.getResourceCandidateRefs()); + } + +// @Override +// public int hashCode() { +// return Objects.hash(uuid, id, href, name, description, type, baseType, version, validFor, +// lifecycleStatus, lastUpdate, parentId, isRoot, getCategoryRefs(), getResourceCandidateRefs()); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCategory {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" parentId: ").append(toIndentedString(parentId)).append("\n"); + sb.append(" isRoot: ").append(toIndentedString(isRoot)).append("\n"); + sb.append(" category: ").append(toIndentedString(getCategoryRefs())).append("\n"); + sb.append(" resourceCandidate: ").append(toIndentedString(getResourceCandidateRefs())).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryChangeEvent.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryChangeEvent.java new file mode 100644 index 0000000..7624f67 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryChangeEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceCategoryChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ResourceCategoryChangeEventPayload event = null; + + public ResourceCategoryChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceCategoryChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceCategoryChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceCategoryChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceCategoryChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceCategoryChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceCategoryChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceCategoryChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceCategoryChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceCategoryChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceCategoryChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ResourceCategoryChangeEvent event(ResourceCategoryChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceCategoryChangeEventPayload getEvent() { + return event; + } + + public void setEvent(ResourceCategoryChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCategoryChangeEvent resourceCategoryChangeEvent = (ResourceCategoryChangeEvent) o; + return Objects.equals(this.id, resourceCategoryChangeEvent.id) && + Objects.equals(this.href, resourceCategoryChangeEvent.href) && + Objects.equals(this.eventId, resourceCategoryChangeEvent.eventId) && + Objects.equals(this.eventTime, resourceCategoryChangeEvent.eventTime) && + Objects.equals(this.eventType, resourceCategoryChangeEvent.eventType) && + Objects.equals(this.correlationId, resourceCategoryChangeEvent.correlationId) && + Objects.equals(this.domain, resourceCategoryChangeEvent.domain) && + Objects.equals(this.title, resourceCategoryChangeEvent.title) && + Objects.equals(this.description, resourceCategoryChangeEvent.description) && + Objects.equals(this.priority, resourceCategoryChangeEvent.priority) && + Objects.equals(this.timeOcurred, resourceCategoryChangeEvent.timeOcurred) && + Objects.equals(this.event, resourceCategoryChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCategoryChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryChangeEventPayload.java new file mode 100644 index 0000000..7c70b5a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceCategoryChangeEventPayload { + @JsonProperty("resourceCategory") + private ResourceCategory resourceCategory = null; + + public ResourceCategoryChangeEventPayload resourceCategory(ResourceCategory resourceCategory) { + this.resourceCategory = resourceCategory; + return this; + } + + /** + * Get resourceCategory + * @return resourceCategory + **/ + @Schema(description = "") + + @Valid + public ResourceCategory getResourceCategory() { + return resourceCategory; + } + + public void setResourceCategory(ResourceCategory resourceCategory) { + this.resourceCategory = resourceCategory; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCategoryChangeEventPayload resourceCategoryChangeEventPayload = (ResourceCategoryChangeEventPayload) o; + return Objects.equals(this.resourceCategory, resourceCategoryChangeEventPayload.resourceCategory); + } + + @Override + public int hashCode() { + return Objects.hash(resourceCategory); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCategoryChangeEventPayload {\n"); + + sb.append(" resourceCategory: ").append(toIndentedString(resourceCategory)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryCreate.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryCreate.java new file mode 100644 index 0000000..1c77812 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryCreate.java @@ -0,0 +1,138 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The (resource) category resource is used to group resource candidates in logical containers. Categories can contain other categories. Skipped properties: id,href + */ +@Schema(description = "The (resource) category resource is used to group resource candidates in logical containers. Categories can contain other categories. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + +public class ResourceCategoryCreate extends ResourceCategoryUpdate { + + @JsonProperty("lastUpdate") + private OffsetDateTime lastUpdate = null; + + + public ResourceCategoryCreate name(String name) { + this.name = name; + return this; + } + + + public ResourceCategoryCreate lastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + /** + * Date and time of the last update + * @return lastUpdate + **/ + @Schema(description = "Date and time of the last update") + + @Valid + + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCategoryCreate resourceCategoryCreate = (ResourceCategoryCreate) o; + return Objects.equals(this.name, resourceCategoryCreate.name) && + Objects.equals(this.description, resourceCategoryCreate.description) && + Objects.equals(this.type, resourceCategoryCreate.type) && + Objects.equals(this.schemalLocation, resourceCategoryCreate.schemalLocation) && + Objects.equals(this.baseType, resourceCategoryCreate.baseType) && + Objects.equals(this.version, resourceCategoryCreate.version) && + Objects.equals(this.validFor, resourceCategoryCreate.validFor) && + Objects.equals(this.lifecycleStatus, resourceCategoryCreate.lifecycleStatus) && + Objects.equals(this.lastUpdate, resourceCategoryCreate.lastUpdate) && + Objects.equals(this.parentId, resourceCategoryCreate.parentId) && + Objects.equals(this.isRoot, resourceCategoryCreate.isRoot) && + Objects.equals(this.category, resourceCategoryCreate.category) && + Objects.equals(this.resourceCandidate, resourceCategoryCreate.resourceCandidate) && + Objects.equals(this.relatedParty, resourceCategoryCreate.relatedParty); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, type, schemalLocation, baseType, version, validFor, lifecycleStatus, lastUpdate, parentId, isRoot, category, resourceCandidate, relatedParty); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCategoryCreate {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemalLocation: ").append(toIndentedString(schemalLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" parentId: ").append(toIndentedString(parentId)).append("\n"); + sb.append(" isRoot: ").append(toIndentedString(isRoot)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" resourceCandidate: ").append(toIndentedString(resourceCandidate)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryCreateEvent.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryCreateEvent.java new file mode 100644 index 0000000..3bafd0e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryCreateEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceCategoryCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ResourceCategoryCreateEventPayload event = null; + + public ResourceCategoryCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceCategoryCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceCategoryCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceCategoryCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceCategoryCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceCategoryCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceCategoryCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceCategoryCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceCategoryCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceCategoryCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceCategoryCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ResourceCategoryCreateEvent event(ResourceCategoryCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceCategoryCreateEventPayload getEvent() { + return event; + } + + public void setEvent(ResourceCategoryCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCategoryCreateEvent resourceCategoryCreateEvent = (ResourceCategoryCreateEvent) o; + return Objects.equals(this.id, resourceCategoryCreateEvent.id) && + Objects.equals(this.href, resourceCategoryCreateEvent.href) && + Objects.equals(this.eventId, resourceCategoryCreateEvent.eventId) && + Objects.equals(this.eventTime, resourceCategoryCreateEvent.eventTime) && + Objects.equals(this.eventType, resourceCategoryCreateEvent.eventType) && + Objects.equals(this.correlationId, resourceCategoryCreateEvent.correlationId) && + Objects.equals(this.domain, resourceCategoryCreateEvent.domain) && + Objects.equals(this.title, resourceCategoryCreateEvent.title) && + Objects.equals(this.description, resourceCategoryCreateEvent.description) && + Objects.equals(this.priority, resourceCategoryCreateEvent.priority) && + Objects.equals(this.timeOcurred, resourceCategoryCreateEvent.timeOcurred) && + Objects.equals(this.event, resourceCategoryCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCategoryCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryCreateEventPayload.java new file mode 100644 index 0000000..6982683 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryCreateEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceCategoryCreateEventPayload { + @JsonProperty("resourceCategory") + private ResourceCategory resourceCategory = null; + + public ResourceCategoryCreateEventPayload resourceCategory(ResourceCategory resourceCategory) { + this.resourceCategory = resourceCategory; + return this; + } + + /** + * Get resourceCategory + * @return resourceCategory + **/ + @Schema(description = "") + + @Valid + public ResourceCategory getResourceCategory() { + return resourceCategory; + } + + public void setResourceCategory(ResourceCategory resourceCategory) { + this.resourceCategory = resourceCategory; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCategoryCreateEventPayload resourceCategoryCreateEventPayload = (ResourceCategoryCreateEventPayload) o; + return Objects.equals(this.resourceCategory, resourceCategoryCreateEventPayload.resourceCategory); + } + + @Override + public int hashCode() { + return Objects.hash(resourceCategory); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCategoryCreateEventPayload {\n"); + + sb.append(" resourceCategory: ").append(toIndentedString(resourceCategory)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryDeleteEvent.java new file mode 100644 index 0000000..2720c90 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryDeleteEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceCategoryDeleteEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ResourceCategoryDeleteEventPayload event = null; + + public ResourceCategoryDeleteEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceCategoryDeleteEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceCategoryDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceCategoryDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceCategoryDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceCategoryDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceCategoryDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceCategoryDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceCategoryDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceCategoryDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceCategoryDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ResourceCategoryDeleteEvent event(ResourceCategoryDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceCategoryDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(ResourceCategoryDeleteEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCategoryDeleteEvent resourceCategoryDeleteEvent = (ResourceCategoryDeleteEvent) o; + return Objects.equals(this.id, resourceCategoryDeleteEvent.id) && + Objects.equals(this.href, resourceCategoryDeleteEvent.href) && + Objects.equals(this.eventId, resourceCategoryDeleteEvent.eventId) && + Objects.equals(this.eventTime, resourceCategoryDeleteEvent.eventTime) && + Objects.equals(this.eventType, resourceCategoryDeleteEvent.eventType) && + Objects.equals(this.correlationId, resourceCategoryDeleteEvent.correlationId) && + Objects.equals(this.domain, resourceCategoryDeleteEvent.domain) && + Objects.equals(this.title, resourceCategoryDeleteEvent.title) && + Objects.equals(this.description, resourceCategoryDeleteEvent.description) && + Objects.equals(this.priority, resourceCategoryDeleteEvent.priority) && + Objects.equals(this.timeOcurred, resourceCategoryDeleteEvent.timeOcurred) && + Objects.equals(this.event, resourceCategoryDeleteEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCategoryDeleteEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryDeleteEventPayload.java new file mode 100644 index 0000000..8aeb041 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryDeleteEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceCategoryDeleteEventPayload { + @JsonProperty("resourceCategory") + private ResourceCategory resourceCategory = null; + + public ResourceCategoryDeleteEventPayload resourceCategory(ResourceCategory resourceCategory) { + this.resourceCategory = resourceCategory; + return this; + } + + /** + * Get resourceCategory + * @return resourceCategory + **/ + @Schema(description = "") + + @Valid + public ResourceCategory getResourceCategory() { + return resourceCategory; + } + + public void setResourceCategory(ResourceCategory resourceCategory) { + this.resourceCategory = resourceCategory; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCategoryDeleteEventPayload resourceCategoryDeleteEventPayload = (ResourceCategoryDeleteEventPayload) o; + return Objects.equals(this.resourceCategory, resourceCategoryDeleteEventPayload.resourceCategory); + } + + @Override + public int hashCode() { + return Objects.hash(resourceCategory); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCategoryDeleteEventPayload {\n"); + + sb.append(" resourceCategory: ").append(toIndentedString(resourceCategory)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryRef.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryRef.java new file mode 100644 index 0000000..bc04a6b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryRef.java @@ -0,0 +1,131 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Category reference. The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates. + */ +@Schema(description = "Category reference. The category resource is used to group product offerings, service and resource candidates in logical containers. Categories can contain other categories and/or product offerings, resource or service candidates.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:06:08.595+03:00") + +public class ResourceCategoryRef extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + + @JsonProperty("version") + private String version = null; + + public ResourceCategoryRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique reference of the category + * @return id + **/ + @Schema(description = "Unique reference of the category") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + + + public ResourceCategoryRef version(String version) { + this.version = version; + return this; + } + + /** + * Category version + * @return version + **/ + @Schema(description = "Category version") + + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCategoryRef categoryRef = (ResourceCategoryRef) o; + return Objects.equals(this.id, categoryRef.id) && + Objects.equals(this.href, categoryRef.href) && + Objects.equals(this.version, categoryRef.version) && + Objects.equals(this.name, categoryRef.name); + } + +// @Override +// public int hashCode() { +// return Objects.hash(uuid, id, href, version, name); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CategoryRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryUpdate.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryUpdate.java new file mode 100644 index 0000000..9d9afd5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceCategoryUpdate.java @@ -0,0 +1,436 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The (resource) category resource is used to group resource candidates in logical containers. Categories can contain other categories. Skipped properties: id,href,id,href + */ +@Schema(description = "The (resource) category resource is used to group resource candidates in logical containers. Categories can contain other categories. Skipped properties: id,href,id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:06:08.595+03:00") + +public class ResourceCategoryUpdate { + @JsonProperty("name") +protected String name = null; + + @JsonProperty("description") + protected String description = null; + + @JsonProperty("@type") + protected String type = null; + + @JsonProperty("@schemalLocation") + protected String schemalLocation = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("version") + protected String version = null; + + @JsonProperty("validFor") + protected TimePeriod validFor = null; + + @JsonProperty("lifecycleStatus") + protected String lifecycleStatus = null; + + + @JsonProperty("parentId") + protected String parentId = null; + + @JsonProperty("isRoot") + protected Boolean isRoot = null; + + @JsonProperty("category") + @Valid + protected List category = null; + + @JsonProperty("resourceCandidate") + @Valid + protected List resourceCandidate = null; + + @JsonProperty("relatedParty") + @Valid + protected List relatedParty = null; + + public ResourceCategoryUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the category + * @return name + **/ + @Schema(description = "Name of the category") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ResourceCategoryUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Description of the category + * @return description + **/ + @Schema(description = "Description of the category") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceCategoryUpdate type(String type) { + this.type = type; + return this; + } + + /** + * The (class) type of this category + * @return type + **/ + @Schema(description = "The (class) type of this category") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public ResourceCategoryUpdate schemalLocation(String schemalLocation) { + this.schemalLocation = schemalLocation; + return this; + } + + /** + * This field provides a link to the schema describing this REST resource + * @return schemalLocation + **/ + @Schema(description = "This field provides a link to the schema describing this REST resource") + + + public String getSchemalLocation() { + return schemalLocation; + } + + public void setSchemalLocation(String schemalLocation) { + this.schemalLocation = schemalLocation; + } + + public ResourceCategoryUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * Immediate base class type of this category + * @return baseType + **/ + @Schema(description = "Immediate base class type of this category") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ResourceCategoryUpdate version(String version) { + this.version = version; + return this; + } + + /** + * Category version + * @return version + **/ + @Schema(description = "Category version") + + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public ResourceCategoryUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the category is valid + * @return validFor + **/ + @Schema(description = "The period for which the category is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ResourceCategoryUpdate lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Used to indicate the current lifecycle status + * @return lifecycleStatus + **/ + @Schema(description = "Used to indicate the current lifecycle status") + + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + + public ResourceCategoryUpdate parentId(String parentId) { + this.parentId = parentId; + return this; + } + + /** + * Unique identifier of the parent category + * @return parentId + **/ + @Schema(description = "Unique identifier of the parent category") + + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public ResourceCategoryUpdate isRoot(Boolean isRoot) { + this.isRoot = isRoot; + return this; + } + + /** + * If true, this Boolean indicates that the category is a root of categories + * @return isRoot + **/ + @Schema(description = "If true, this Boolean indicates that the category is a root of categories") + + + public Boolean isIsRoot() { + return isRoot; + } + + public void setIsRoot(Boolean isRoot) { + this.isRoot = isRoot; + } + + public ResourceCategoryUpdate category(List category) { + this.category = category; + return this; + } + + public ResourceCategoryUpdate addCategoryItem(ResourceCategoryRef categoryItem) { + if (this.category == null) { + this.category = new ArrayList<>(); + } + this.category.add(categoryItem); + return this; + } + + /** + * Get category + * @return category + **/ + @Schema(description = "") + + @Valid + + public List getCategory() { + return category; + } + + public void setCategory(List category) { + this.category = category; + } + + public ResourceCategoryUpdate resourceCandidate(List resourceCandidate) { + this.resourceCandidate = resourceCandidate; + return this; + } + + public ResourceCategoryUpdate addResourceCandidateItem(ResourceCandidateRef resourceCandidateItem) { + if (this.resourceCandidate == null) { + this.resourceCandidate = new ArrayList<>(); + } + this.resourceCandidate.add(resourceCandidateItem); + return this; + } + + /** + * Get resourceCandidate + * @return resourceCandidate + **/ + @Schema(description = "") + + @Valid + + public List getResourceCandidate() { + return resourceCandidate; + } + + public void setResourceCandidate(List resourceCandidate) { + this.resourceCandidate = resourceCandidate; + } + + public ResourceCategoryUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ResourceCategoryUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCategoryUpdate resourceCategoryUpdate = (ResourceCategoryUpdate) o; + return Objects.equals(this.name, resourceCategoryUpdate.name) && + Objects.equals(this.description, resourceCategoryUpdate.description) && + Objects.equals(this.type, resourceCategoryUpdate.type) && + Objects.equals(this.schemalLocation, resourceCategoryUpdate.schemalLocation) && + Objects.equals(this.baseType, resourceCategoryUpdate.baseType) && + Objects.equals(this.version, resourceCategoryUpdate.version) && + Objects.equals(this.validFor, resourceCategoryUpdate.validFor) && + Objects.equals(this.lifecycleStatus, resourceCategoryUpdate.lifecycleStatus) && + Objects.equals(this.parentId, resourceCategoryUpdate.parentId) && + Objects.equals(this.isRoot, resourceCategoryUpdate.isRoot) && + Objects.equals(this.category, resourceCategoryUpdate.category) && + Objects.equals(this.resourceCandidate, resourceCategoryUpdate.resourceCandidate) && + Objects.equals(this.relatedParty, resourceCategoryUpdate.relatedParty); + } + +// @Override +// public int hashCode() { +// return Objects.hash(name, description, type, schemalLocation, baseType, version, validFor, lifecycleStatus, lastUpdate, parentId, isRoot, category, resourceCandidate, relatedParty); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCategoryUpdate {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemalLocation: ").append(toIndentedString(schemalLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" parentId: ").append(toIndentedString(parentId)).append("\n"); + sb.append(" isRoot: ").append(toIndentedString(isRoot)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" resourceCandidate: ").append(toIndentedString(resourceCandidate)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceFunctionSpecification.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceFunctionSpecification.java new file mode 100644 index 0000000..8a62332 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceFunctionSpecification.java @@ -0,0 +1,190 @@ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.validation.Valid; + +/** + * Specifies a function as a behavior to transform inputs of any nature into + * outputs of any nature independently from the way it is provided, for example + * a Medium to Large Enterprise Firewall. + */ +@Schema(description = "Specifies a function as a behavior to transform inputs of any nature into outputs of any nature independently from the way it is provided, for example a Medium to Large Enterprise Firewall.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-07T15:15:49.915156900+03:00[Europe/Athens]") +@Entity(name = "Resfuncspec") +public class ResourceFunctionSpecification extends LogicalResourceSpecification { + + @JsonProperty("connectionPointSpecification") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set connectionPointSpecification = new HashSet<>(); + + @JsonProperty("connectivitySpecification") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set connectivitySpecification = new HashSet<>(); + + public ResourceFunctionSpecification() { + super(); + this.baseType = "LogicalResourceSpecification"; + this.type = "ResourceFunctionSpecification"; + + } + + public ResourceFunctionSpecification connectionPointSpecification( + Set connectionPointSpecification) { + this.connectionPointSpecification = connectionPointSpecification; + return this; + } + + public ResourceFunctionSpecification addConnectionPointSpecificationItem( + ConnectionPointSpecificationRef connectionPointSpecificationItem) { + if (this.connectionPointSpecification == null) { + this.connectionPointSpecification = new HashSet<>(); + } + this.connectionPointSpecification.add(connectionPointSpecificationItem); + return this; + } + + /** + * External connection point specifications. These are the service access points + * (SAP) where inputs and outputs of the function are available. + * + * @return connectionPointSpecification + **/ + @Schema(description = "External connection point specifications. These are the service access points (SAP) where inputs and outputs of the function are available.") + @Valid + public Set getConnectionPointSpecification() { + return connectionPointSpecification; + } + + public void setConnectionPointSpecification( Set connectionPointSpecification) { + this.connectionPointSpecification = connectionPointSpecification; + } + + public ResourceFunctionSpecification connectivitySpecification( + Set connectivitySpecification) { + this.connectivitySpecification = connectivitySpecification; + return this; + } + + public ResourceFunctionSpecification addConnectivitySpecificationItem( + ResourceGraphSpecification connectivitySpecificationItem) { + if (this.connectivitySpecification == null) { + this.connectivitySpecification = new HashSet<>(); + } + this.connectivitySpecification.add(connectivitySpecificationItem); + return this; + } + + /** + * Internal connectivity potential specifications. + * + * @return connectivitySpecification + **/ + @Schema(description = "Internal connectivity potential specifications.") + @Valid + public Set getConnectivitySpecification() { + return connectivitySpecification; + } + + public void setConnectivitySpecification(Set connectivitySpecification) { + this.connectivitySpecification = connectivitySpecification; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceFunctionSpecification resourceFunctionSpecification = (ResourceFunctionSpecification) o; + return Objects.equals(this.uuid, resourceFunctionSpecification.uuid) + && Objects.equals(this.href, resourceFunctionSpecification.href) + && Objects.equals(this.category, resourceFunctionSpecification.category) + && Objects.equals(this.description, resourceFunctionSpecification.description) + && Objects.equals(this.isBundle, resourceFunctionSpecification.isBundle) + && Objects.equals(this.lastUpdate, resourceFunctionSpecification.lastUpdate) + && Objects.equals(this.lifecycleStatus, resourceFunctionSpecification.lifecycleStatus) + && Objects.equals(this.name, resourceFunctionSpecification.name) + && Objects.equals(this.version, resourceFunctionSpecification.version) + && Objects.equals(this.attachment, resourceFunctionSpecification.attachment) + && Objects.equals(this.connectionPointSpecification, + resourceFunctionSpecification.connectionPointSpecification) + && Objects.equals(this.connectivitySpecification, + resourceFunctionSpecification.connectivitySpecification) + && Objects.equals(this.featureSpecification, resourceFunctionSpecification.featureSpecification) + && Objects.equals(this.relatedParty, resourceFunctionSpecification.relatedParty) + && Objects.equals(this.resourceSpecCharacteristic, + resourceFunctionSpecification.resourceSpecCharacteristic) + && Objects.equals(this.resourceSpecRelationship, resourceFunctionSpecification.resourceSpecRelationship) + && Objects.equals(this.targetResourceSchema, resourceFunctionSpecification.targetResourceSchema) + && Objects.equals(this.validFor, resourceFunctionSpecification.validFor) + && Objects.equals(this.baseType, resourceFunctionSpecification.baseType) + && Objects.equals(this.schemaLocation, resourceFunctionSpecification.schemaLocation) + && Objects.equals(this.type, resourceFunctionSpecification.type); + } + + @Override + public int hashCode() { + return Objects.hash(uuid, href, category, description, isBundle, lastUpdate, lifecycleStatus, name, version, + attachment, connectionPointSpecification, connectivitySpecification, featureSpecification, relatedParty, + resourceSpecCharacteristic, resourceSpecRelationship, targetResourceSchema, validFor, baseType, + schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceFunctionSpecification {\n"); + + sb.append(" id: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" connectionPointSpecification: ").append(toIndentedString(connectionPointSpecification)) + .append("\n"); + sb.append(" connectivitySpecification: ").append(toIndentedString(connectivitySpecification)).append("\n"); + sb.append(" featureSpecification: ").append(toIndentedString(featureSpecification)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" resourceSpecCharacteristic: ").append(toIndentedString(resourceSpecCharacteristic)).append("\n"); + sb.append(" resourceSpecRelationship: ").append(toIndentedString(resourceSpecRelationship)).append("\n"); + sb.append(" targetResourceSchema: ").append(toIndentedString(targetResourceSchema)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceFunctionSpecificationCreate.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceFunctionSpecificationCreate.java new file mode 100644 index 0000000..5364e2f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceFunctionSpecificationCreate.java @@ -0,0 +1,98 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class ResourceFunctionSpecificationCreate extends ResourceFunctionSpecificationUpdate { + + @JsonProperty("@type") + private String type = null; + + + public ResourceFunctionSpecificationCreate name(String name) { + this.name = name; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceFunctionSpecificationCreate logicalResourceSpecCreate = (ResourceFunctionSpecificationCreate) o; + return Objects.equals(this.name, logicalResourceSpecCreate.name) + && Objects.equals(this.description, logicalResourceSpecCreate.description) + && Objects.equals(this.type, logicalResourceSpecCreate.type) + && Objects.equals(this.schemaLocation, logicalResourceSpecCreate.schemaLocation) + && Objects.equals(this.baseType, logicalResourceSpecCreate.baseType) + && Objects.equals(this.version, logicalResourceSpecCreate.version) + && Objects.equals(this.validFor, logicalResourceSpecCreate.validFor) + && Objects.equals(this.lifecycleStatus, logicalResourceSpecCreate.lifecycleStatus) + && Objects.equals(this.isBundle, logicalResourceSpecCreate.isBundle) + && Objects.equals(this.category, logicalResourceSpecCreate.category) + && Objects.equals(this.targetResourceSchema, logicalResourceSpecCreate.targetResourceSchema) + && Objects.equals(this.featureSpecification, logicalResourceSpecCreate.featureSpecification) + && Objects.equals(this.attachment, logicalResourceSpecCreate.attachment) + && Objects.equals(this.relatedParty, logicalResourceSpecCreate.relatedParty) + && Objects.equals(this.resourceSpecificationCharacteristic, logicalResourceSpecCreate.resourceSpecificationCharacteristic) + && Objects.equals(this.resourceSpecificationRelationship, logicalResourceSpecCreate.resourceSpecificationRelationship); + } + +// @Override +// public int hashCode() { +// return Objects.hash(name, description, type, schemaLocation, baseType, version, validFor, lastUpdate, +// lifecycleStatus, isBundle, category, targetResourceSchema, feature, attachment, relatedParty, +// resourceSpecCharacteristic, resourceSpecRelationship); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LogicalResourceSpecCreate {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" targetResourceSchema: ").append(toIndentedString(targetResourceSchema)).append("\n"); + sb.append(" featureSpecification: ").append(toIndentedString(featureSpecification)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" resourceSpecificationCharacteristic: ").append(toIndentedString(resourceSpecificationCharacteristic)).append("\n"); + sb.append(" resourceSpecRelationship: ").append(toIndentedString(resourceSpecificationRelationship)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceFunctionSpecificationUpdate.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceFunctionSpecificationUpdate.java new file mode 100644 index 0000000..7a33b1b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceFunctionSpecificationUpdate.java @@ -0,0 +1,24 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +public class ResourceFunctionSpecificationUpdate extends ResourceSpecificationUpdate { + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceGraphSpecification.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceGraphSpecification.java new file mode 100644 index 0000000..24e2117 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceGraphSpecification.java @@ -0,0 +1,190 @@ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * Resource graph specification. + */ +@Schema(description = "Resource graph specification.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-07T15:15:49.915156900+03:00[Europe/Athens]") +@Entity(name = "ResourceGraphSpec") +public class ResourceGraphSpecification extends BaseRootNamedEntity { + + + @JsonProperty("id") + protected String id = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("connectionSpecification") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set connectionSpecification = new HashSet<>(); + + @JsonProperty("graphSpecificationRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set graphSpecificationRelationship = new HashSet<>(); + + + + public ResourceGraphSpecification description(String description) { + this.description = description; + return this; + } + + public String getId() { + id = uuid; + return uuid; + } + + /** + * Description of the resource graph specification. + * + * @return description + **/ + @Schema(description = "Description of the resource graph specification.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + + + public ResourceGraphSpecification connectionSpecification(Set connectionSpecification) { + this.connectionSpecification = connectionSpecification; + return this; + } + + public ResourceGraphSpecification addConnectionSpecificationItem( + ConnectionSpecification connectionSpecificationItem) { + this.connectionSpecification.add(connectionSpecificationItem); + return this; + } + + /** + * Resource graph edge specifications. + * + * @return connectionSpecification + **/ + @Schema(description = "Resource graph edge specifications.") + @NotNull + @Valid + @Size(min = 1) + public Set getConnectionSpecification() { + return connectionSpecification; + } + + public void setConnectionSpecification(Set connectionSpecification) { + this.connectionSpecification = connectionSpecification; + } + + public ResourceGraphSpecification graphSpecificationRelationship( + Set graphSpecificationRelationship) { + this.graphSpecificationRelationship = graphSpecificationRelationship; + return this; + } + + public ResourceGraphSpecification addGraphSpecificationRelationshipItem( + ResourceGraphSpecificationRelationship graphSpecificationRelationshipItem) { + if (this.graphSpecificationRelationship == null) { + this.graphSpecificationRelationship = new HashSet<>(); + } + this.graphSpecificationRelationship.add(graphSpecificationRelationshipItem); + return this; + } + + /** + * Relationships to other resource graph specifications. + * + * @return graphSpecificationRelationship + **/ + @Schema(description = "Relationships to other resource graph specifications.") + @Valid + public Set getGraphSpecificationRelationship() { + return graphSpecificationRelationship; + } + + public void setGraphSpecificationRelationship( + Set graphSpecificationRelationship) { + this.graphSpecificationRelationship = graphSpecificationRelationship; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceGraphSpecification resourceGraphSpecification = (ResourceGraphSpecification) o; + return Objects.equals(this.uuid, resourceGraphSpecification.uuid) + && Objects.equals(this.href, resourceGraphSpecification.href) + && Objects.equals(this.description, resourceGraphSpecification.description) + && Objects.equals(this.name, resourceGraphSpecification.name) + && Objects.equals(this.connectionSpecification, resourceGraphSpecification.connectionSpecification) + && Objects.equals(this.graphSpecificationRelationship, + resourceGraphSpecification.graphSpecificationRelationship) + && Objects.equals(this.baseType, resourceGraphSpecification.baseType) + && Objects.equals(this.schemaLocation, resourceGraphSpecification.schemaLocation) + && Objects.equals(this.type, resourceGraphSpecification.type); + } + + @Override + public int hashCode() { + return Objects.hash(uuid, href, description, name, connectionSpecification, graphSpecificationRelationship, + baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceGraphSpecification {\n"); + + sb.append(" id: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" connectionSpecification: ").append(toIndentedString(connectionSpecification)).append("\n"); + sb.append(" graphSpecificationRelationship: ").append(toIndentedString(graphSpecificationRelationship)) + .append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceGraphSpecificationRef.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceGraphSpecificationRef.java new file mode 100644 index 0000000..3f69bdc --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceGraphSpecificationRef.java @@ -0,0 +1,156 @@ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * Resource graph specification reference. + */ +@Schema(description = "Resource graph specification reference.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-07T15:15:49.915156900+03:00[Europe/Athens]") +@Entity(name = "ResourceGraphSpecRef") +public class ResourceGraphSpecificationRef extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public ResourceGraphSpecificationRef id(String id) { + this.id = id; + return this; + } + + /** + * unique identifier + * + * @return id + **/ + @Schema(description = "unique identifier") + @NotNull + + public String getId() { + id = uuid; + return uuid; + } + + public ResourceGraphSpecificationRef href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink reference + * + * @return href + **/ + @Schema(description = "Hyperlink reference") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceGraphSpecificationRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ResourceGraphSpecificationRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceGraphSpecificationRef resourceGraphSpecificationRef = (ResourceGraphSpecificationRef) o; + return Objects.equals(this.id, resourceGraphSpecificationRef.id) + && Objects.equals(this.href, resourceGraphSpecificationRef.href) + && Objects.equals(this.name, resourceGraphSpecificationRef.name) + && Objects.equals(this.baseType, resourceGraphSpecificationRef.baseType) + && Objects.equals(this.schemaLocation, resourceGraphSpecificationRef.schemaLocation) + && Objects.equals(this.type, resourceGraphSpecificationRef.type) + && Objects.equals(this._atReferredType, resourceGraphSpecificationRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceGraphSpecificationRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceGraphSpecificationRelationship.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceGraphSpecificationRelationship.java new file mode 100644 index 0000000..98554e6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceGraphSpecificationRelationship.java @@ -0,0 +1,166 @@ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; + +/** + * Describes link between resource graph specifications. + */ +@Schema(description = "Describes link between resource graph specifications.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-07T15:15:49.915156900+03:00[Europe/Athens]") +@Entity(name = "ResourceGraphSpecRel") +public class ResourceGraphSpecificationRelationship extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("resourceGraph") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private ResourceGraphSpecificationRef resourceGraph = null; + + public ResourceGraphSpecificationRelationship id(String id) { + this.id = id; + return this; + } + + /** + * unique identifier + * + * @return id + **/ + @Schema(description = "unique identifier") + + + public String getId() { + id = uuid; + return uuid; + } + + + public ResourceGraphSpecificationRelationship href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink reference + * + * @return href + **/ + @Schema(description = "Hyperlink reference") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceGraphSpecificationRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * Semantic of the relationship. + * + * @return relationshipType + **/ + @Schema(description = "Semantic of the relationship.") + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public ResourceGraphSpecificationRelationship resourceGraph(ResourceGraphSpecificationRef resourceGraph) { + this.resourceGraph = resourceGraph; + return this; + } + + /** + * Get resourceGraph + * + * @return resourceGraph + **/ + @Schema(description = "") + + @Valid + public ResourceGraphSpecificationRef getResourceGraph() { + return resourceGraph; + } + + public void setResourceGraph(ResourceGraphSpecificationRef resourceGraph) { + this.resourceGraph = resourceGraph; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceGraphSpecificationRelationship resourceGraphSpecificationRelationship = (ResourceGraphSpecificationRelationship) o; + return Objects.equals(this.id, resourceGraphSpecificationRelationship.id) + && Objects.equals(this.href, resourceGraphSpecificationRelationship.href) + && Objects.equals(this.relationshipType, resourceGraphSpecificationRelationship.relationshipType) + && Objects.equals(this.resourceGraph, resourceGraphSpecificationRelationship.resourceGraph) + && Objects.equals(this.baseType, resourceGraphSpecificationRelationship.baseType) + && Objects.equals(this.schemaLocation, resourceGraphSpecificationRelationship.schemaLocation) + && Objects.equals(this.type, resourceGraphSpecificationRelationship.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, relationshipType, resourceGraph, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceGraphSpecificationRelationship {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" resourceGraph: ").append(toIndentedString(resourceGraph)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecCharRelationship.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecCharRelationship.java new file mode 100644 index 0000000..0793ae5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecCharRelationship.java @@ -0,0 +1,260 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.hibernate.annotations.GenericGenerator; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.validation.Valid; + +/** + * An aggregation, migration, substitution, dependency or exclusivity + * relationship between/among Specification Characteristics. + */ +@Schema(description = "An aggregation, migration, substitution, dependency or exclusivity relationship between/among Specification Characteristics.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:06:08.595+03:00") + +@Entity(name = "ResourceSpecCharRelationship") +public class ResourceSpecCharRelationship { + @Id + @GeneratedValue(generator = "uuid") + @GenericGenerator(name = "uuid", strategy = "uuid2") + protected String uuid = null; + + + @JsonProperty("relationshipType") + private String reltype = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + public ResourceSpecCharRelationship() { + } + + + public ResourceSpecCharRelationship(ResourceSpecCharRelationship src) { + name = src.name; + reltype = src.reltype; + //role = src.role; + validFor = new TimePeriod( src.validFor ); + id = src.id; + } + + /** + * @return the reltype + */ + public String getReltype() { + return reltype; + } + + /** + * @param reltype the reltype to set + */ + public void setReltype(String reltype) { + this.reltype = reltype; + } + + public ResourceSpecCharRelationship name(String name) { + this.name = name; + return this; + } + + /** + * Name of the target characteristic + * + * @return name + **/ + @Schema(description = "Name of the target characteristic") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /** + * @return the uuid + */ + public String getUuid() { + return uuid; + } + + /** + * @param uuid the uuid to set + */ + public void setUuid(String uuid) { + this.uuid = uuid; + } + + + /** + * Unique identifier of the target specification + * + * @return id + **/ + @Schema(description = "Unique identifier of the target specification") + + /** + * @return the id + */ + public String getId() { + return id; + } + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + + public ResourceSpecCharRelationship href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink reference to the target specification + * + * @return href + **/ + @Schema(description = "Hyperlink reference to the target specification") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceSpecCharRelationship type(String type) { + this.type = type; + return this; + } + + /** + * class type of target specification + * + * @return type + **/ + @Schema(description = "class type of target specification") + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public ResourceSpecCharRelationship validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the object is valid + * + * @return validFor + **/ + @Schema(description = "The period for which the object is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceSpecCharRelationship resourceSpecCharRelationship = (ResourceSpecCharRelationship) o; + return Objects.equals(this.type, resourceSpecCharRelationship.type) + && Objects.equals(this.name, resourceSpecCharRelationship.name) + && Objects.equals(this.id, resourceSpecCharRelationship.id) + && Objects.equals(this.href, resourceSpecCharRelationship.href) + && Objects.equals(this.type, resourceSpecCharRelationship.type) + && Objects.equals(this.validFor, resourceSpecCharRelationship.validFor); + } + +// @Override +// public int hashCode() { +// return Objects.hash(type, name, id, href, type, validFor); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceSpecCharRelationship {\n"); + + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecification.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecification.java new file mode 100644 index 0000000..b3620fa --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecification.java @@ -0,0 +1,617 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.validation.Valid; + +/** + * Resources are physical or non-physical components (or some combination of + * these) within an enterprise's infrastructure or inventory. They are + * typically consumed or used by services (for example a physical port assigned + * to a service) or contribute to the realization of a Product (for example, a + * SIM card). They can be drawn from the Application, Computing and Network + * domains, and include, for example, Network Elements, software, IT systems, + * content and information, and technology components. A ResourceSpecification + * is an abstract base class for representing a generic means for implementing a + * particular type of Resource. In essence, a ResourceSpecification defines the + * common attributes and relationships of a set of related Resources, while + * Resource defines a specific instance that is based on a particular + * ResourceSpecification. + */ +@Schema(description = "Resources are physical or non-physical components (or some combination of these) within an enterprise's infrastructure or inventory. They are typically consumed or used by services (for example a physical port assigned to a service) or contribute to the realization of a Product (for example, a SIM card). They can be drawn from the Application, Computing and Network domains, and include, for example, Network Elements, software, IT systems, content and information, and technology components. A ResourceSpecification is an abstract base class for representing a generic means for implementing a particular type of Resource. In essence, a ResourceSpecification defines the common attributes and relationships of a set of related Resources, while Resource defines a specific instance that is based on a particular ResourceSpecification.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@Entity(name = "ResSpec") +public abstract class ResourceSpecification extends BaseEntity { + @JsonProperty("id") + protected String id = null; + + @JsonProperty("isBundle") + protected Boolean isBundle = null; + + @JsonProperty("category") + protected String category = null; + + @JsonProperty("targetResourceSchema") + protected TargetResourceSchema targetResourceSchema = null; + + + + @JsonProperty("attachment") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + protected Set attachment = new HashSet<>(); + + @JsonProperty("featureSpecification") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + protected Set featureSpecification = new HashSet<>(); + + @JsonProperty("relatedParty") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + protected Set relatedParty = new HashSet<>(); + + @JsonProperty("resourceSpecCharacteristic") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + protected Set resourceSpecCharacteristic = new HashSet<>(); + + @JsonProperty("resourceSpecRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + protected Set resourceSpecRelationship = new HashSet<>(); + + + @JsonIgnore + @Column( name = "candidate_specid" ) + private String resourceCandidateObjId; + + + + + + /** + * Unique identifier of this REST resource + * + * @return id + **/ + @Schema(description = "Unique identifier of this REST resource") + + public String getId() { + if ( uuid != null ) { + id = uuid; + } + return uuid; + } + + + public ResourceSpecification href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink reference to this REST resource + * + * @return href + **/ + @Schema(description = "Hyperlink reference to this REST resource") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceSpecification category(String category) { + this.category = category; + return this; + } + + /** + * Category of the target resource like NetworkConnectivity, PhysicalLinks, + * Generic, L2Network and so on. + * + * @return category + **/ + @Schema(description = "Category of the target resource like NetworkConnectivity, PhysicalLinks, Generic, L2Network and so on.") + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public ResourceSpecification description(String description) { + this.description = description; + return this; + } + + /** + * Description of this REST resource + * + * @return description + **/ + @Schema(description = "Description of this REST resource") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceSpecification isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * A flag indicates that if this resource specification is a bundled + * specification (true) or single (false). + * + * @return isBundle + **/ + @Schema(description = "A flag indicates that if this resource specification is a bundled specification (true) or single (false).") + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + + + public ResourceSpecification lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Used to indicate the current lifecycle status of the resource specification + * + * @return lifecycleStatus + **/ + @Schema(description = "Used to indicate the current lifecycle status of the resource specification") + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public ResourceSpecification name(String name) { + this.name = name; + return this; + } + + /** + * Name given to this REST resource + * + * @return name + **/ + @Schema(description = "Name given to this REST resource") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ResourceSpecification version(String version) { + this.version = version; + return this; + } + + /** + * Resource Specification version + * + * @return version + **/ + @Schema(description = "Resource Specification version") + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public ResourceSpecification attachment(Set attachment) { + this.attachment = attachment; + return this; + } + + public ResourceSpecification addAttachmentItem(AttachmentRefOrValue attachmentItem) { + if (this.attachment == null) { + this.attachment = new HashSet<>(); + } + this.attachment.add(attachmentItem); + return this; + } + + /** + * Complements the description of an element (for instance a resource) through + * video, pictures ... + * + * @return attachment + **/ + @Schema(description = "Complements the description of an element (for instance a resource) through video, pictures ...") + @Valid + public Set getAttachment() { + return attachment; + } + + public void setAttachment(Set attachment) { + this.attachment = attachment; + } + + public ResourceSpecification featureSpecification(Set featureSpecification) { + this.featureSpecification = featureSpecification; + return this; + } + + public ResourceSpecification addFeatureSpecificationItem(FeatureSpecification featureSpecificationItem) { + if (this.featureSpecification == null) { + this.featureSpecification = new HashSet<>(); + } + this.featureSpecification.add(featureSpecificationItem); + return this; + } + + /** + * A list of Features for this specification. + * + * @return featureSpecification + **/ + @Schema(description = "A list of Features for this specification.") + @Valid + public Set getFeatureSpecification() { + return featureSpecification; + } + + public void setFeatureSpecification(Set featureSpecification) { + this.featureSpecification = featureSpecification; + } + + + public ResourceSpecification resourceSpecCharacteristic( + Set resourceSpecCharacteristic) { + this.resourceSpecCharacteristic = resourceSpecCharacteristic; + return this; + } + + public ResourceSpecification addResourceSpecCharacteristicItem( + ResourceSpecificationCharacteristic resourceSpecCharacteristicItem) { + if (this.resourceSpecCharacteristic == null) { + this.resourceSpecCharacteristic = new HashSet<>(); + } + this.resourceSpecCharacteristic.add(resourceSpecCharacteristicItem); + return this; + } + + /** + * A characteristic quality or distinctive feature of a ResourceSpecification. + * The characteristic can be take on a discrete value, such as color, can take + * on a range of values, (for example, sensitivity of 100-240 mV), or can be + * derived from a formula (for example, usage time (hrs) = 30 - talk time *3). + * Certain characteristics, such as color, may be configured during the ordering + * or some other process. + * + * @return resourceSpecCharacteristic + **/ + + @Schema(description = "A characteristic quality or distinctive feature of a ResourceSpecification. The characteristic can be take on a discrete value, such as color, can take on a range of values, (for example, sensitivity of 100-240 mV), or can be derived from a formula (for example, usage time (hrs) = 30 - talk time *3). Certain characteristics, such as color, may be configured during the ordering or some other process.") + @Valid + public Set getResourceSpecCharacteristic() { + return resourceSpecCharacteristic; + } + + public void setResourceSpecCharacteristic(Set resourceSpecCharacteristic) { + this.resourceSpecCharacteristic = resourceSpecCharacteristic; + } + + public ResourceSpecification resourceSpecRelationship( + Set resourceSpecRelationship) { + this.resourceSpecRelationship = resourceSpecRelationship; + return this; + } + + public ResourceSpecification addResourceSpecRelationshipItem( + ResourceSpecificationRelationship resourceSpecRelationshipItem) { + if (this.resourceSpecRelationship == null) { + this.resourceSpecRelationship = new HashSet<>(); + } + this.resourceSpecRelationship.add(resourceSpecRelationshipItem); + return this; + } + + + + /** + * @return the resourceCandidateObjId + */ + public String getResourceCandidateObjId() { + return resourceCandidateObjId; + } + + + /** + * @param resourceCandidateObjId the resourceCandidateObjId to set + */ + public void setResourceCandidateObjId(String resourceCandidateObjId) { + this.resourceCandidateObjId = resourceCandidateObjId; + } + + + + /** + * A migration, substitution, dependency or exclusivity relationship + * between/among resource specifications. + * + * @return resourceSpecRelationship + **/ + @Schema(description = "A migration, substitution, dependency or exclusivity relationship between/among resource specifications.") + @Valid + public Set getResourceSpecRelationship() { + return resourceSpecRelationship; + } + + public void setResourceSpecRelationship(Set resourceSpecRelationship) { + this.resourceSpecRelationship = resourceSpecRelationship; + } + + public ResourceSpecification targetResourceSchema(TargetResourceSchema targetResourceSchema) { + this.targetResourceSchema = targetResourceSchema; + return this; + } + + /** + * Get targetResourceSchema + * + * @return targetResourceSchema + **/ + @Schema(description = "") + + @Valid + public TargetResourceSchema getTargetResourceSchema() { + return targetResourceSchema; + } + + public void setTargetResourceSchema(TargetResourceSchema targetResourceSchema) { + this.targetResourceSchema = targetResourceSchema; + } + + + public ResourceSpecification baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ResourceSpecification schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ResourceSpecification type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceSpecification resourceSpecification = (ResourceSpecification) o; + return Objects.equals(this.id, resourceSpecification.id) + && Objects.equals(this.href, resourceSpecification.href) + && Objects.equals(this.category, resourceSpecification.category) + && Objects.equals(this.description, resourceSpecification.description) + && Objects.equals(this.isBundle, resourceSpecification.isBundle) + && Objects.equals(this.lastUpdate, resourceSpecification.lastUpdate) + && Objects.equals(this.lifecycleStatus, resourceSpecification.lifecycleStatus) + && Objects.equals(this.name, resourceSpecification.name) + && Objects.equals(this.version, resourceSpecification.version) + && Objects.equals(this.attachment, resourceSpecification.attachment) + && Objects.equals(this.featureSpecification, resourceSpecification.featureSpecification) + && Objects.equals(this.relatedParty, resourceSpecification.relatedParty) + && Objects.equals(this.resourceSpecCharacteristic, resourceSpecification.resourceSpecCharacteristic) + && Objects.equals(this.resourceSpecRelationship, resourceSpecification.resourceSpecRelationship) + && Objects.equals(this.targetResourceSchema, resourceSpecification.targetResourceSchema) + && Objects.equals(this.validFor, resourceSpecification.validFor) + && Objects.equals(this.baseType, resourceSpecification.baseType) + && Objects.equals(this.schemaLocation, resourceSpecification.schemaLocation) + && Objects.equals(this.type, resourceSpecification.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, category, description, isBundle, lastUpdate, lifecycleStatus, name, version, + attachment, featureSpecification, relatedParty, resourceSpecCharacteristic, resourceSpecRelationship, + targetResourceSchema, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceSpecification {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" featureSpecification: ").append(toIndentedString(featureSpecification)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" resourceSpecCharacteristic: ").append(toIndentedString(resourceSpecCharacteristic)).append("\n"); + sb.append(" resourceSpecRelationship: ").append(toIndentedString(resourceSpecRelationship)).append("\n"); + sb.append(" targetResourceSchema: ").append(toIndentedString(targetResourceSchema)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + + public void fixResourceCharRelationhsipIDs() { + for (ResourceSpecificationCharacteristic schar : resourceSpecCharacteristic) { + for (ResourceSpecCharRelationship charRel : schar.getResourceSpecCharRelationship()) { + if (charRel.getId() == null) { + // search other specCharacteristics inside the resourceSpec to get the id (if + // they have same name). Then ID will be the same as the id of the + // resourceSpecCharacteristic + for (ResourceSpecificationCharacteristic searchChar : resourceSpecCharacteristic) { + if (searchChar.getName().equals(charRel.getName())) { + charRel.setId(searchChar.getUuid()); + break; + } + } + + } + // if still is null se this id: + if (charRel.getId() == null) { + charRel.setId(this.getName() + "-" + charRel.getName()); + } + } + + } + + } + + /** + * @return the relatedParty + */ + public Set getRelatedParty() { + return relatedParty; + } + + /** + * @param relatedParty the relatedParty to set + */ + public void setRelatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + } + + public ResourceSpecificationCharacteristic findSpecCharacteristicByName(String a) { + for (ResourceSpecificationCharacteristic ssci : this.getResourceSpecCharacteristic()) { + if (ssci.getName().equals(a)) { + return ssci; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationChangeEvent.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationChangeEvent.java new file mode 100644 index 0000000..fbe0bf4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationChangeEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceSpecificationChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ResourceSpecificationChangeEventPayload event = null; + + public ResourceSpecificationChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceSpecificationChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceSpecificationChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceSpecificationChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceSpecificationChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceSpecificationChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceSpecificationChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceSpecificationChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceSpecificationChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceSpecificationChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceSpecificationChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ResourceSpecificationChangeEvent event(ResourceSpecificationChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceSpecificationChangeEventPayload getEvent() { + return event; + } + + public void setEvent(ResourceSpecificationChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceSpecificationChangeEvent resourceSpecificationChangeEvent = (ResourceSpecificationChangeEvent) o; + return Objects.equals(this.id, resourceSpecificationChangeEvent.id) && + Objects.equals(this.href, resourceSpecificationChangeEvent.href) && + Objects.equals(this.eventId, resourceSpecificationChangeEvent.eventId) && + Objects.equals(this.eventTime, resourceSpecificationChangeEvent.eventTime) && + Objects.equals(this.eventType, resourceSpecificationChangeEvent.eventType) && + Objects.equals(this.correlationId, resourceSpecificationChangeEvent.correlationId) && + Objects.equals(this.domain, resourceSpecificationChangeEvent.domain) && + Objects.equals(this.title, resourceSpecificationChangeEvent.title) && + Objects.equals(this.description, resourceSpecificationChangeEvent.description) && + Objects.equals(this.priority, resourceSpecificationChangeEvent.priority) && + Objects.equals(this.timeOcurred, resourceSpecificationChangeEvent.timeOcurred) && + Objects.equals(this.event, resourceSpecificationChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceSpecificationChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationChangeEventPayload.java new file mode 100644 index 0000000..20d679a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceSpecificationChangeEventPayload { + @JsonProperty("resourceSpecification") + private ResourceSpecification resourceSpecification = null; + + public ResourceSpecificationChangeEventPayload resourceSpecification(ResourceSpecification resourceSpecification) { + this.resourceSpecification = resourceSpecification; + return this; + } + + /** + * Get resourceSpecification + * @return resourceSpecification + **/ + @Schema(description = "") + + @Valid + public ResourceSpecification getResourceSpecification() { + return resourceSpecification; + } + + public void setResourceSpecification(ResourceSpecification resourceSpecification) { + this.resourceSpecification = resourceSpecification; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceSpecificationChangeEventPayload resourceSpecificationChangeEventPayload = (ResourceSpecificationChangeEventPayload) o; + return Objects.equals(this.resourceSpecification, resourceSpecificationChangeEventPayload.resourceSpecification); + } + + @Override + public int hashCode() { + return Objects.hash(resourceSpecification); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceSpecificationChangeEventPayload {\n"); + + sb.append(" resourceSpecification: ").append(toIndentedString(resourceSpecification)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCharacteristic.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCharacteristic.java new file mode 100644 index 0000000..8f3e824 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCharacteristic.java @@ -0,0 +1,639 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Lob; +import jakarta.persistence.OneToMany; +import jakarta.validation.Valid; + +/** + * This class defines the characteristic features of a resource specification. + * Every ResourceSpecification has a variety of important attributes, methods, + * constraints, and relationships, which distinguish a resource specification + * from other resource specifications. + */ +@Schema(description = "This class defines the characteristic features of a resource specification. Every ResourceSpecification has a variety of important attributes, methods, constraints, and relationships, which distinguish a resource specification from other resource specifications.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + +@Entity(name = "ResourceSpecCharacteristic") +public class ResourceSpecificationCharacteristic extends BaseRootNamedEntity { + + + @Lob + @Column(name = "LDESCRIPTION", columnDefinition = "LONGTEXT") + @JsonProperty("description") + private String description = null; + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("configurable") + private Boolean configurable = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@valueSchemaLocation") + private String valueSchemaLocation = null; + + @JsonProperty("minCardinality") + private Integer minCardinality = null; + + @JsonProperty("maxCardinality") + private Integer maxCardinality = null; + + @JsonProperty("isUnique") + private Boolean isUnique = null; + + @JsonProperty("regex") + private String regex = null; + + @JsonProperty("extensible") + private Boolean extensible = null; + + @JsonProperty("resourceSpecCharRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set resourceSpecCharRelationship = new HashSet<>();; + + @JsonProperty("resourceSpecCharacteristicValue") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set resourceSpecCharacteristicValue = new HashSet<>();; + + public ResourceSpecificationCharacteristic() { + super(); + this.baseType = "BaseRootEntity"; + this.type = this.getClass().getName(); + } + + public ResourceSpecificationCharacteristic(ResourceSpecificationCharacteristic src) { + this(); + configurable = src.configurable; + description = src.description; + extensible = src.extensible; + isUnique = src.isUnique; + maxCardinality = src.maxCardinality; + minCardinality = src.minCardinality; + name = src.name; + regex = src.regex; + valueType = src.valueType; + validFor = new TimePeriod( src.validFor ) ; + + if ( src.resourceSpecCharRelationship!=null ) + for (ResourceSpecCharRelationship r : src.resourceSpecCharRelationship) { + this.addResourceSpecCharRelationshipItem( new ResourceSpecCharRelationship( r )); + } + if ( src.resourceSpecCharacteristicValue!=null ) + for (ResourceSpecificationCharacteristicValue r : src.resourceSpecCharacteristicValue) { + this.addResourceSpecCharacteristicValueItem( new ResourceSpecificationCharacteristicValue(r) ); + } + + } + + public ResourceSpecificationCharacteristic name(String name) { + this.name = name; + return this; + } + + /** + * A word, term, or phrase by which this characteristic specification is known + * and distinguished from other characteristic specifications. + * + * @return name + **/ + @Schema(description = "A word, term, or phrase by which this characteristic specification is known and distinguished from other characteristic specifications.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ResourceSpecificationCharacteristic description(String description) { + this.description = description; + return this; + } + + /** + * A narrative that explains the CharacteristicSpecification. + * + * @return description + **/ + @Schema(description = "A narrative that explains the CharacteristicSpecification.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceSpecificationCharacteristic valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * A kind of value that the characteristic can take on, such as numeric, text + * and so forth + * + * @return valueType + **/ + @Schema(description = "A kind of value that the characteristic can take on, such as numeric, text and so forth") + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public ResourceSpecificationCharacteristic configurable(Boolean configurable) { + this.configurable = configurable; + return this; + } + + /** + * If true, the Boolean indicates that the ResourceSpecificationCharacteristic is + * configurable + * + * @return configurable + **/ + @Schema(description = "If true, the Boolean indicates that the ResourceSpecificationCharacteristic is configurable") + + public Boolean isConfigurable() { + return configurable; + } + + public void setConfigurable(Boolean configurable) { + this.configurable = configurable; + } + + public ResourceSpecificationCharacteristic validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period of time for which a characteristic is applicable. + * + * @return validFor + **/ + @Schema(description = "The period of time for which a characteristic is applicable.") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ResourceSpecificationCharacteristic type(String type) { + this.type = type; + return this; + } + + /** + * (Class) type of the ResourceSpecificationCharacteristic + * + * @return type + **/ + @Schema(description = "(Class) type of the ResourceSpecificationCharacteristic") + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public ResourceSpecificationCharacteristic schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A link to the schema describing this characteristic specification + * + * @return schemaLocation + **/ + @Schema(description = "A link to the schema describing this characteristic specification") + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ResourceSpecificationCharacteristic valueSchemaLocation(String valueSchemaLocation) { + this.valueSchemaLocation = valueSchemaLocation; + return this; + } + + /** + * This (optional) field provides a link to the schema describing the value type + * + * @return valueSchemaLocation + **/ + @Schema(description = "This (optional) field provides a link to the schema describing the value type") + + public String getValueSchemaLocation() { + return valueSchemaLocation; + } + + public void setValueSchemaLocation(String valueSchemaLocation) { + this.valueSchemaLocation = valueSchemaLocation; + } + + public ResourceSpecificationCharacteristic minCardinality(Integer minCardinality) { + this.minCardinality = minCardinality; + return this; + } + + /** + * The minimum number of instances a CharacteristicValue can take on. For + * example, zero to five phone numbers in a group calling plan, where zero is + * the value for the minCardinality. + * + * @return minCardinality + **/ + @Schema(description = "The minimum number of instances a CharacteristicValue can take on. For example, zero to five phone numbers in a group calling plan, where zero is the value for the minCardinality.") + + public Integer getMinCardinality() { + return minCardinality; + } + + public void setMinCardinality(Integer minCardinality) { + this.minCardinality = minCardinality; + } + + public ResourceSpecificationCharacteristic maxCardinality(Integer maxCardinality) { + this.maxCardinality = maxCardinality; + return this; + } + + /** + * The maximum number of instances a CharacteristicValue can take on. For + * example, zero to five phone numbers in a group calling plan, where five is + * the value for the maxCardinality. + * + * @return maxCardinality + **/ + @Schema(description = "The maximum number of instances a CharacteristicValue can take on. For example, zero to five phone numbers in a group calling plan, where five is the value for the maxCardinality.") + + public Integer getMaxCardinality() { + return maxCardinality; + } + + public void setMaxCardinality(Integer maxCardinality) { + this.maxCardinality = maxCardinality; + } + + public ResourceSpecificationCharacteristic isUnique(Boolean isUnique) { + this.isUnique = isUnique; + return this; + } + + /** + * An indicator that specifies if a value is unique for the specification. + * Possible values are; \"unique while value is in effect\" and \"unique whether + * value is in effect or not\" + * + * @return isUnique + **/ + @Schema(description = "An indicator that specifies if a value is unique for the specification. Possible values are; \"unique while value is in effect\" and \"unique whether value is in effect or not\"") + + public Boolean isIsUnique() { + return isUnique; + } + + public void setIsUnique(Boolean isUnique) { + this.isUnique = isUnique; + } + + public ResourceSpecificationCharacteristic regex(String regex) { + this.regex = regex; + return this; + } + + /** + * A rule or principle represented in regular expression used to derive the + * value of a characteristic value. + * + * @return regex + **/ + @Schema(description = "A rule or principle represented in regular expression used to derive the value of a characteristic value.") + + public String getRegex() { + return regex; + } + + public void setRegex(String regex) { + this.regex = regex; + } + + public ResourceSpecificationCharacteristic extensible(Boolean extensible) { + this.extensible = extensible; + return this; + } + + /** + * An indicator that specifies that the values for the characteristic can be + * extended by adding new values when instantiating a characteristic for a + * resource. + * + * @return extensible + **/ + @Schema(description = "An indicator that specifies that the values for the characteristic can be extended by adding new values when instantiating a characteristic for a resource.") + + public Boolean isExtensible() { + return extensible; + } + + public void setExtensible(Boolean extensible) { + this.extensible = extensible; + } + + public ResourceSpecificationCharacteristic resourceSpecCharRelationship( + Set resourceSpecCharRelationship) { + this.resourceSpecCharRelationship = resourceSpecCharRelationship; + return this; + } + + public ResourceSpecificationCharacteristic addResourceSpecCharRelationshipItem( + ResourceSpecCharRelationship resourceSpecCharRelationshipItem) { + if (this.resourceSpecCharRelationship == null) { + this.resourceSpecCharRelationship = new HashSet<>(); + } + this.resourceSpecCharRelationship.add(resourceSpecCharRelationshipItem); + return this; + } + + /** + * Get resourceSpecCharRelationship + * + * @return resourceSpecCharRelationship + **/ + @Schema(description = "") + + @Valid + + public Set getResourceSpecCharRelationship() { + return resourceSpecCharRelationship; + } + + public void setResourceSpecCharRelationship(Set resourceSpecCharRelationship) { + this.resourceSpecCharRelationship = resourceSpecCharRelationship; + } + + public ResourceSpecificationCharacteristic ResourceSpecCharacteristicValue( + Set ResourceSpecificationCharacteristicValue) { + this.resourceSpecCharacteristicValue = ResourceSpecificationCharacteristicValue; + return this; + } + + public ResourceSpecificationCharacteristic addResourceSpecCharacteristicValueItem( + ResourceSpecificationCharacteristicValue ResourceSpecificationCharacteristicValueItem) { + if (this.resourceSpecCharacteristicValue == null) { + this.resourceSpecCharacteristicValue = new HashSet<>(); + } + this.resourceSpecCharacteristicValue.add(ResourceSpecificationCharacteristicValueItem); + return this; + } + + /** + * Get ResourceSpecificationCharacteristicValue + * + * @return ResourceSpecificationCharacteristicValue + **/ + @Schema(description = "") + + @Valid + + public Set getResourceSpecCharacteristicValue() { + return resourceSpecCharacteristicValue; + } + + public void setResourceSpecificationCharacteristicValue( + Set ResourceSpecificationCharacteristicValue) { + this.resourceSpecCharacteristicValue = ResourceSpecificationCharacteristicValue; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceSpecificationCharacteristic ResourceSpecificationCharacteristic = (ResourceSpecificationCharacteristic) o; + return Objects.equals(this.name, ResourceSpecificationCharacteristic.name) + && Objects.equals(this.description, ResourceSpecificationCharacteristic.description) + && Objects.equals(this.valueType, ResourceSpecificationCharacteristic.valueType) + && Objects.equals(this.configurable, ResourceSpecificationCharacteristic.configurable) + && Objects.equals(this.validFor, ResourceSpecificationCharacteristic.validFor) + && Objects.equals(this.type, ResourceSpecificationCharacteristic.type) + && Objects.equals(this.schemaLocation, ResourceSpecificationCharacteristic.schemaLocation) + && Objects.equals(this.valueSchemaLocation, ResourceSpecificationCharacteristic.valueSchemaLocation) + && Objects.equals(this.minCardinality, ResourceSpecificationCharacteristic.minCardinality) + && Objects.equals(this.maxCardinality, ResourceSpecificationCharacteristic.maxCardinality) + && Objects.equals(this.isUnique, ResourceSpecificationCharacteristic.isUnique) + && Objects.equals(this.regex, ResourceSpecificationCharacteristic.regex) + && Objects.equals(this.extensible, ResourceSpecificationCharacteristic.extensible) + && Objects.equals(this.resourceSpecCharRelationship, + ResourceSpecificationCharacteristic.resourceSpecCharRelationship) + && Objects.equals(this.resourceSpecCharacteristicValue, + ResourceSpecificationCharacteristic.resourceSpecCharacteristicValue); + } + +// @Override +// public int hashCode() { +// return Objects.hash(uuid, name, description, valueType, configurable, validFor, type, schemaLocation, +// valueSchemaLocation, minCardinality, maxCardinality, isUnique, regex, extensible, +// resourceSpecCharRelationship, ResourceSpecificationCharacteristicValue); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceSpecificationCharacteristic {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" configurable: ").append(toIndentedString(configurable)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" valueSchemaLocation: ").append(toIndentedString(valueSchemaLocation)).append("\n"); + sb.append(" minCardinality: ").append(toIndentedString(minCardinality)).append("\n"); + sb.append(" maxCardinality: ").append(toIndentedString(maxCardinality)).append("\n"); + sb.append(" isUnique: ").append(toIndentedString(isUnique)).append("\n"); + sb.append(" regex: ").append(toIndentedString(regex)).append("\n"); + sb.append(" extensible: ").append(toIndentedString(extensible)).append("\n"); + sb.append(" resourceSpecCharRelationship: ").append(toIndentedString(resourceSpecCharRelationship)) + .append("\n"); + sb.append(" ResourceSpecificationCharacteristicValue: ").append(toIndentedString(resourceSpecCharacteristicValue)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public void updateWith(ResourceSpecificationCharacteristic src) { + this.name = src.getName(); + this.description = src.getDescription(); + this.maxCardinality = src.getMaxCardinality(); + this.minCardinality = src.getMinCardinality(); + this.regex = src.getRegex(); + this.isUnique = src.isUnique; + this.configurable = src.isConfigurable(); + this.extensible = src.isExtensible(); + + this.updateResourceSpecificationCharacteristicValues(src.getResourceSpecCharacteristicValue()); + this.updateResourceSpecCharRelationships(src.getResourceSpecCharRelationship()); + + } + + private void updateResourceSpecificationCharacteristicValues(@Valid Set srcSet) { + + Map idAddedUpdated = new HashMap<>(); + /** + * update, add the incomings + */ + for (ResourceSpecificationCharacteristicValue r : srcSet) { + + boolean valueExists = false; + for (ResourceSpecificationCharacteristicValue thisCharVal : this.resourceSpecCharacteristicValue) { + if (thisCharVal.hashCode() == r.hashCode()) { + valueExists = true; + idAddedUpdated.put(thisCharVal.hashCode(), true); + break; + } + } + + if (!valueExists) { + ResourceSpecificationCharacteristicValue nr = new ResourceSpecificationCharacteristicValue(r); + this.addResourceSpecCharacteristicValueItem(nr); + idAddedUpdated.put(nr.hashCode(), true); + } + + } + + /** + * remove those that don't exist anymore + */ + + List toRemove = new ArrayList<>(); + for (ResourceSpecificationCharacteristicValue ss : this.resourceSpecCharacteristicValue) { + if (idAddedUpdated.get(ss.hashCode()) == null) { + toRemove.add(ss); + } + } + + for (ResourceSpecificationCharacteristicValue r : toRemove) { + this.resourceSpecCharacteristicValue.remove(r); + } + + } + + private void updateResourceSpecCharRelationships(@Valid Set srcSet) { + + Map idAddedUpdated = new HashMap<>(); + /** + * update, add the incomings + */ + for (ResourceSpecCharRelationship r : srcSet) { + + boolean valueExists = false; + for (ResourceSpecCharRelationship thisCharVal : this.resourceSpecCharRelationship) { + if ((thisCharVal.getId() != null) && (thisCharVal.getId().equals(r.getId()))) { + valueExists = true; + idAddedUpdated.put(thisCharVal.getId(), true); + break; + } + } + + if (!valueExists) { + this.resourceSpecCharRelationship.add(new ResourceSpecCharRelationship(r)); + idAddedUpdated.put(r.getId(), true); + } + + } + + /** + * remove those that don't exist anymore + */ + + List toRemove = new ArrayList<>(); + for (ResourceSpecCharRelationship ss : this.resourceSpecCharRelationship) { + if (idAddedUpdated.get(ss.getId()) == null) { + toRemove.add(ss); + } + } + + for (ResourceSpecCharRelationship r : toRemove) { + this.resourceSpecCharRelationship.remove(r); + } + + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCharacteristicRelationship.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCharacteristicRelationship.java new file mode 100644 index 0000000..4cbc6fe --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCharacteristicRelationship.java @@ -0,0 +1,290 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * An aggregation, migration, substitution, dependency or exclusivity relationship between/among ResourceSpecificationCharacteristics. The specification characteristic is embedded within the specification whose ID and href are in this entity, and identified by its ID. + */ +@Schema(description = "An aggregation, migration, substitution, dependency or exclusivity relationship between/among ResourceSpecificationCharacteristics. The specification characteristic is embedded within the specification whose ID and href are in this entity, and identified by its ID.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceSpecificationCharacteristicRelationship { + @JsonProperty("characteristicSpecificationId") + private String characteristicSpecificationId = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("resourceSpecificationHref") + private String resourceSpecificationHref = null; + + @JsonProperty("resourceSpecificationId") + private String resourceSpecificationId = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public ResourceSpecificationCharacteristicRelationship characteristicSpecificationId(String characteristicSpecificationId) { + this.characteristicSpecificationId = characteristicSpecificationId; + return this; + } + + /** + * Unique identifier of the characteristic within the specification + * @return characteristicSpecificationId + **/ + @Schema(description = "Unique identifier of the characteristic within the specification") + + public String getCharacteristicSpecificationId() { + return characteristicSpecificationId; + } + + public void setCharacteristicSpecificationId(String characteristicSpecificationId) { + this.characteristicSpecificationId = characteristicSpecificationId; + } + + public ResourceSpecificationCharacteristicRelationship name(String name) { + this.name = name; + return this; + } + + /** + * Name of the target characteristic within the specification + * @return name + **/ + @Schema(description = "Name of the target characteristic within the specification") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ResourceSpecificationCharacteristicRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * Type of relationship such as aggregation, migration, substitution, dependency, exclusivity + * @return relationshipType + **/ + @Schema(description = "Type of relationship such as aggregation, migration, substitution, dependency, exclusivity") + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public ResourceSpecificationCharacteristicRelationship resourceSpecificationHref(String resourceSpecificationHref) { + this.resourceSpecificationHref = resourceSpecificationHref; + return this; + } + + /** + * Hyperlink reference to the resource specification containing the target characteristic + * @return resourceSpecificationHref + **/ + @Schema(description = "Hyperlink reference to the resource specification containing the target characteristic") + + public String getResourceSpecificationHref() { + return resourceSpecificationHref; + } + + public void setResourceSpecificationHref(String resourceSpecificationHref) { + this.resourceSpecificationHref = resourceSpecificationHref; + } + + public ResourceSpecificationCharacteristicRelationship resourceSpecificationId(String resourceSpecificationId) { + this.resourceSpecificationId = resourceSpecificationId; + return this; + } + + /** + * Unique identifier of the resource specification containing the target characteristic + * @return resourceSpecificationId + **/ + @Schema(description = "Unique identifier of the resource specification containing the target characteristic") + + public String getResourceSpecificationId() { + return resourceSpecificationId; + } + + public void setResourceSpecificationId(String resourceSpecificationId) { + this.resourceSpecificationId = resourceSpecificationId; + } + + public ResourceSpecificationCharacteristicRelationship validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ResourceSpecificationCharacteristicRelationship _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public ResourceSpecificationCharacteristicRelationship _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public ResourceSpecificationCharacteristicRelationship _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceSpecificationCharacteristicRelationship resourceSpecificationCharacteristicRelationship = (ResourceSpecificationCharacteristicRelationship) o; + return Objects.equals(this.characteristicSpecificationId, resourceSpecificationCharacteristicRelationship.characteristicSpecificationId) && + Objects.equals(this.name, resourceSpecificationCharacteristicRelationship.name) && + Objects.equals(this.relationshipType, resourceSpecificationCharacteristicRelationship.relationshipType) && + Objects.equals(this.resourceSpecificationHref, resourceSpecificationCharacteristicRelationship.resourceSpecificationHref) && + Objects.equals(this.resourceSpecificationId, resourceSpecificationCharacteristicRelationship.resourceSpecificationId) && + Objects.equals(this.validFor, resourceSpecificationCharacteristicRelationship.validFor) && + Objects.equals(this._atBaseType, resourceSpecificationCharacteristicRelationship._atBaseType) && + Objects.equals(this._atSchemaLocation, resourceSpecificationCharacteristicRelationship._atSchemaLocation) && + Objects.equals(this._atType, resourceSpecificationCharacteristicRelationship._atType); + } + + @Override + public int hashCode() { + return Objects.hash(characteristicSpecificationId, name, relationshipType, resourceSpecificationHref, resourceSpecificationId, validFor, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceSpecificationCharacteristicRelationship {\n"); + + sb.append(" characteristicSpecificationId: ").append(toIndentedString(characteristicSpecificationId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" resourceSpecificationHref: ").append(toIndentedString(resourceSpecificationHref)).append("\n"); + sb.append(" resourceSpecificationId: ").append(toIndentedString(resourceSpecificationId)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCharacteristicValue.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCharacteristicValue.java new file mode 100644 index 0000000..f89a335 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCharacteristicValue.java @@ -0,0 +1,382 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; + +/** + * A number or text that can be assigned to a ResourceSpecCharacteristic. + */ +@Schema(description = "A number or text that can be assigned to a ResourceSpecCharacteristic.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +@Entity(name = "ResourceSpecCharacteristicValue") +public class ResourceSpecificationCharacteristicValue extends BaseRootEntity { + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("isDefault") + private Boolean isDefault = null; + + @JsonProperty("value") + private Any value = null; + + @JsonProperty("unitOfMeasure") + private String unitOfMeasure = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("valueFrom") + private Integer valueFrom = null; + + @JsonProperty("valueTo") + private Integer valueTo = null; + + @JsonProperty("rangeInterval") + private String rangeInterval = null; + + @JsonProperty("regex") + private String regex = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + public ResourceSpecificationCharacteristicValue() { + } + + public ResourceSpecificationCharacteristicValue(ResourceSpecificationCharacteristicValue r) { + this(); + isDefault = r.isDefault; + rangeInterval = r.rangeInterval; + regex = r.regex; + unitOfMeasure = r.unitOfMeasure; + valueFrom = r.valueFrom; + valueTo = r.valueTo; + valueType = r.valueType; + validFor = new TimePeriod( r.validFor ); + if (r.value !=null ) { + value = new Any( r.value.getValue(), r.value.getAlias()) ; + } +// type = r.type; + baseType = r.baseType; + + } + + + public ResourceSpecificationCharacteristicValue valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * A kind of value that the characteristic value can take on, such as numeric, + * text and so forth + * + * @return valueType + **/ + @Schema(description = "A kind of value that the characteristic value can take on, such as numeric, text and so forth") + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public ResourceSpecificationCharacteristicValue isDefault(Boolean isDefault) { + this.isDefault = isDefault; + return this; + } + + /** + * If true, the Boolean Indicates if the value is the default value for a + * characteristic + * + * @return isDefault + **/ + @Schema(description = "If true, the Boolean Indicates if the value is the default value for a characteristic") + + public Boolean isIsDefault() { + return isDefault; + } + + public void setIsDefault(Boolean isDefault) { + this.isDefault = isDefault; + } + + public ResourceSpecificationCharacteristicValue value(Any value) { + this.value = value; + return this; + } + + /** + * The value that the characteristic can take on. If the value is a complex + * type, the definition of the type should be found by the link as defined + * in @schemaLocation + * + * @return value + **/ + @Schema(description = "The value that the characteristic can take on. If the value is a complex type, the definition of the type should be found by the link as defined in @schemaLocation") + + public Any getValue() { + return value; + } + + public void setValue(Any value) { + this.value = value; + } + + public ResourceSpecificationCharacteristicValue unitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + return this; + } + + /** + * A length, surface, volume, dry measure, liquid measure, money, weight, time, + * and the like. In general, a determinate quantity or magnitude of the kind + * designated, taken as a standard of comparison for others of the same kind, in + * assigning to them numerical values, as 1 foot, 1 yard, 1 mile, 1 square foot. + * + * @return unitOfMeasure + **/ + @Schema(description = "A length, surface, volume, dry measure, liquid measure, money, weight, time, and the like. In general, a determinate quantity or magnitude of the kind designated, taken as a standard of comparison for others of the same kind, in assigning to them numerical values, as 1 foot, 1 yard, 1 mile, 1 square foot.") + + public String getUnitOfMeasure() { + return unitOfMeasure; + } + + public void setUnitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + } + + public ResourceSpecificationCharacteristicValue validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period of time for which a value is applicable. + * + * @return validFor + **/ + @Schema(description = "The period of time for which a value is applicable.") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ResourceSpecificationCharacteristicValue valueFrom(Integer valueFrom) { + this.valueFrom = valueFrom; + return this; + } + + /** + * The low range value that a characteristic can take on + * + * @return valueFrom + **/ + @Schema(description = "The low range value that a characteristic can take on") + + public Integer getValueFrom() { + return valueFrom; + } + + public void setValueFrom(Integer valueFrom) { + this.valueFrom = valueFrom; + } + + public ResourceSpecificationCharacteristicValue valueTo(Integer valueTo) { + this.valueTo = valueTo; + return this; + } + + /** + * The upper range value that a characteristic can take on + * + * @return valueTo + **/ + @Schema(description = "The upper range value that a characteristic can take on") + + public Integer getValueTo() { + return valueTo; + } + + public void setValueTo(Integer valueTo) { + this.valueTo = valueTo; + } + + public ResourceSpecificationCharacteristicValue rangeInterval(String rangeInterval) { + this.rangeInterval = rangeInterval; + return this; + } + + /** + * An indicator that specifies the inclusion or exclusion of the valueFrom and + * valueTo attributes. If applicable, possible values are \"open\", \"closed\", + * \"closedBottom\" and \"closedTop\". + * + * @return rangeInterval + **/ + @Schema(description = "An indicator that specifies the inclusion or exclusion of the valueFrom and valueTo attributes. If applicable, possible values are \"open\", \"closed\", \"closedBottom\" and \"closedTop\".") + + public String getRangeInterval() { + return rangeInterval; + } + + public void setRangeInterval(String rangeInterval) { + this.rangeInterval = rangeInterval; + } + + public ResourceSpecificationCharacteristicValue regex(String regex) { + this.regex = regex; + return this; + } + + /** + * A regular expression constraint for given value + * + * @return regex + **/ + @Schema(description = "A regular expression constraint for given value") + + public String getRegex() { + return regex; + } + + public void setRegex(String regex) { + this.regex = regex; + } + + public ResourceSpecificationCharacteristicValue type(String type) { + this.type = type; + return this; + } + + /** + * The class type of a complex value type + * + * @return type + **/ + @Schema(description = "The class type of a complex value type") + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public ResourceSpecificationCharacteristicValue schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * This (optional) field provides a link to the schema describing the value type + * + * @return schemaLocation + **/ + @Schema(description = "This (optional) field provides a link to the schema describing the value type") + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceSpecificationCharacteristicValue resourceSpecCharacteristicValue = (ResourceSpecificationCharacteristicValue) o; + return Objects.equals(this.valueType, resourceSpecCharacteristicValue.valueType) + && Objects.equals(this.isDefault, resourceSpecCharacteristicValue.isDefault) + && Objects.equals(this.value, resourceSpecCharacteristicValue.value) + && Objects.equals(this.unitOfMeasure, resourceSpecCharacteristicValue.unitOfMeasure) + && Objects.equals(this.validFor, resourceSpecCharacteristicValue.validFor) + && Objects.equals(this.valueFrom, resourceSpecCharacteristicValue.valueFrom) + && Objects.equals(this.valueTo, resourceSpecCharacteristicValue.valueTo) + && Objects.equals(this.rangeInterval, resourceSpecCharacteristicValue.rangeInterval) + && Objects.equals(this.regex, resourceSpecCharacteristicValue.regex) + && Objects.equals(this.type, resourceSpecCharacteristicValue.type) + && Objects.equals(this.schemaLocation, resourceSpecCharacteristicValue.schemaLocation); + } + +// @Override +// public int hashCode() { +// return Objects.hash(uuid,valueType, isDefault, value, unitOfMeasure, validFor, valueFrom, valueTo, rangeInterval, +// regex, type, schemaLocation); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceSpecCharacteristicValue {\n"); + + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" isDefault: ").append(toIndentedString(isDefault)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" unitOfMeasure: ").append(toIndentedString(unitOfMeasure)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" valueFrom: ").append(toIndentedString(valueFrom)).append("\n"); + sb.append(" valueTo: ").append(toIndentedString(valueTo)).append("\n"); + sb.append(" rangeInterval: ").append(toIndentedString(rangeInterval)).append("\n"); + sb.append(" regex: ").append(toIndentedString(regex)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCreate.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCreate.java new file mode 100644 index 0000000..688947e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCreate.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Resources are physical or non-physical components (or some combination of + * these) within an enterprise's infrastructure or inventory. They are + * typically consumed or used by services (for example a physical port assigned + * to a service) or contribute to the realization of a Product (for example, a + * SIM card). They can be drawn from the Application, Computing and Network + * domains, and include, for example, Network Elements, software, IT systems, + * content and information, and technology components. A ResourceSpecification + * is an abstract base class for representing a generic means for implementing a + * particular type of Resource. In essence, a ResourceSpecification defines the + * common attributes and relationships of a set of related Resources, while + * Resource defines a specific instance that is based on a particular + * ResourceSpecification. Skipped properties: id,href + */ +@Schema(description = "Resources are physical or non-physical components (or some combination of these) within an enterprise's infrastructure or inventory. They are typically consumed or used by services (for example a physical port assigned to a service) or contribute to the realization of a Product (for example, a SIM card). They can be drawn from the Application, Computing and Network domains, and include, for example, Network Elements, software, IT systems, content and information, and technology components. A ResourceSpecification is an abstract base class for representing a generic means for implementing a particular type of Resource. In essence, a ResourceSpecification defines the common attributes and relationships of a set of related Resources, while Resource defines a specific instance that is based on a particular ResourceSpecification. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + +public class ResourceSpecificationCreate extends ResourceSpecificationUpdate { + + + public ResourceSpecificationCreate name(String name) { + this.name = name; + return this; + } + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceSpecificationCreate resourceSpecificationCreate = (ResourceSpecificationCreate) o; + return Objects.equals(this.name, resourceSpecificationCreate.name) + && Objects.equals(this.description, resourceSpecificationCreate.description) + && Objects.equals(this.type, resourceSpecificationCreate.type) + && Objects.equals(this.schemaLocation, resourceSpecificationCreate.schemaLocation) + && Objects.equals(this.baseType, resourceSpecificationCreate.baseType) + && Objects.equals(this.version, resourceSpecificationCreate.version) + && Objects.equals(this.validFor, resourceSpecificationCreate.validFor) + && Objects.equals(this.lifecycleStatus, resourceSpecificationCreate.lifecycleStatus) + && Objects.equals(this.isBundle, resourceSpecificationCreate.isBundle) + && Objects.equals(this.category, resourceSpecificationCreate.category) + && Objects.equals(this.targetResourceSchema, resourceSpecificationCreate.targetResourceSchema) + && Objects.equals(this.featureSpecification, resourceSpecificationCreate.featureSpecification) + && Objects.equals(this.attachment, resourceSpecificationCreate.attachment) + && Objects.equals(this.relatedParty, resourceSpecificationCreate.relatedParty) + && Objects.equals(this.resourceSpecificationCharacteristic, + resourceSpecificationCreate.resourceSpecificationCharacteristic) + && Objects.equals(this.resourceSpecificationRelationship, resourceSpecificationCreate.resourceSpecificationRelationship); + } + +// @Override +// public int hashCode() { +// return Objects.hash(name, description, type, _atSchemaLocation, _atBaseType, version, validFor, lastUpdate, +// lifecycleStatus, isBundle, category, targetResourceSchema, featureSpecification, attachment, relatedParty, +// resourceSpecCharacteristic, resourceSpecRelationship); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceSpecificationCreate {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" targetResourceSchema: ").append(toIndentedString(targetResourceSchema)).append("\n"); + sb.append(" featureSpecification: ").append(toIndentedString(featureSpecification)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" resourceSpecCharacteristic: ").append(toIndentedString(resourceSpecificationCharacteristic)).append("\n"); + sb.append(" resourceSpecRelationship: ").append(toIndentedString(resourceSpecificationRelationship)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCreateEvent.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCreateEvent.java new file mode 100644 index 0000000..89305b9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCreateEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceSpecificationCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ResourceSpecificationCreateEventPayload event = null; + + public ResourceSpecificationCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceSpecificationCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceSpecificationCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceSpecificationCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceSpecificationCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceSpecificationCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceSpecificationCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceSpecificationCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceSpecificationCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceSpecificationCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceSpecificationCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ResourceSpecificationCreateEvent event(ResourceSpecificationCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceSpecificationCreateEventPayload getEvent() { + return event; + } + + public void setEvent(ResourceSpecificationCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceSpecificationCreateEvent resourceSpecificationCreateEvent = (ResourceSpecificationCreateEvent) o; + return Objects.equals(this.id, resourceSpecificationCreateEvent.id) && + Objects.equals(this.href, resourceSpecificationCreateEvent.href) && + Objects.equals(this.eventId, resourceSpecificationCreateEvent.eventId) && + Objects.equals(this.eventTime, resourceSpecificationCreateEvent.eventTime) && + Objects.equals(this.eventType, resourceSpecificationCreateEvent.eventType) && + Objects.equals(this.correlationId, resourceSpecificationCreateEvent.correlationId) && + Objects.equals(this.domain, resourceSpecificationCreateEvent.domain) && + Objects.equals(this.title, resourceSpecificationCreateEvent.title) && + Objects.equals(this.description, resourceSpecificationCreateEvent.description) && + Objects.equals(this.priority, resourceSpecificationCreateEvent.priority) && + Objects.equals(this.timeOcurred, resourceSpecificationCreateEvent.timeOcurred) && + Objects.equals(this.event, resourceSpecificationCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceSpecificationCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCreateEventPayload.java new file mode 100644 index 0000000..064fd77 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationCreateEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceSpecificationCreateEventPayload { + @JsonProperty("resourceSpecification") + private ResourceSpecification resourceSpecification = null; + + public ResourceSpecificationCreateEventPayload resourceSpecification(ResourceSpecification resourceSpecification) { + this.resourceSpecification = resourceSpecification; + return this; + } + + /** + * Get resourceSpecification + * @return resourceSpecification + **/ + @Schema(description = "") + + @Valid + public ResourceSpecification getResourceSpecification() { + return resourceSpecification; + } + + public void setResourceSpecification(ResourceSpecification resourceSpecification) { + this.resourceSpecification = resourceSpecification; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceSpecificationCreateEventPayload resourceSpecificationCreateEventPayload = (ResourceSpecificationCreateEventPayload) o; + return Objects.equals(this.resourceSpecification, resourceSpecificationCreateEventPayload.resourceSpecification); + } + + @Override + public int hashCode() { + return Objects.hash(resourceSpecification); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceSpecificationCreateEventPayload {\n"); + + sb.append(" resourceSpecification: ").append(toIndentedString(resourceSpecification)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationDeleteEvent.java new file mode 100644 index 0000000..ef5b09f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationDeleteEvent.java @@ -0,0 +1,366 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceSpecificationDeleteEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ResourceSpecificationDeleteEventPayload event = null; + + public ResourceSpecificationDeleteEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceSpecificationDeleteEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceSpecificationDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceSpecificationDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceSpecificationDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceSpecificationDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceSpecificationDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceSpecificationDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceSpecificationDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceSpecificationDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceSpecificationDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ResourceSpecificationDeleteEvent event(ResourceSpecificationDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceSpecificationDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(ResourceSpecificationDeleteEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceSpecificationDeleteEvent resourceSpecificationDeleteEvent = (ResourceSpecificationDeleteEvent) o; + return Objects.equals(this.id, resourceSpecificationDeleteEvent.id) && + Objects.equals(this.href, resourceSpecificationDeleteEvent.href) && + Objects.equals(this.eventId, resourceSpecificationDeleteEvent.eventId) && + Objects.equals(this.eventTime, resourceSpecificationDeleteEvent.eventTime) && + Objects.equals(this.eventType, resourceSpecificationDeleteEvent.eventType) && + Objects.equals(this.correlationId, resourceSpecificationDeleteEvent.correlationId) && + Objects.equals(this.domain, resourceSpecificationDeleteEvent.domain) && + Objects.equals(this.title, resourceSpecificationDeleteEvent.title) && + Objects.equals(this.description, resourceSpecificationDeleteEvent.description) && + Objects.equals(this.priority, resourceSpecificationDeleteEvent.priority) && + Objects.equals(this.timeOcurred, resourceSpecificationDeleteEvent.timeOcurred) && + Objects.equals(this.event, resourceSpecificationDeleteEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceSpecificationDeleteEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationDeleteEventPayload.java new file mode 100644 index 0000000..cb0f32c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationDeleteEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceSpecificationDeleteEventPayload { + @JsonProperty("resourceSpecification") + private ResourceSpecification resourceSpecification = null; + + public ResourceSpecificationDeleteEventPayload resourceSpecification(ResourceSpecification resourceSpecification) { + this.resourceSpecification = resourceSpecification; + return this; + } + + /** + * Get resourceSpecification + * @return resourceSpecification + **/ + @Schema(description = "") + + @Valid + public ResourceSpecification getResourceSpecification() { + return resourceSpecification; + } + + public void setResourceSpecification(ResourceSpecification resourceSpecification) { + this.resourceSpecification = resourceSpecification; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceSpecificationDeleteEventPayload resourceSpecificationDeleteEventPayload = (ResourceSpecificationDeleteEventPayload) o; + return Objects.equals(this.resourceSpecification, resourceSpecificationDeleteEventPayload.resourceSpecification); + } + + @Override + public int hashCode() { + return Objects.hash(resourceSpecification); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceSpecificationDeleteEventPayload {\n"); + + sb.append(" resourceSpecification: ").append(toIndentedString(resourceSpecification)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationRef.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationRef.java new file mode 100644 index 0000000..6bfae12 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationRef.java @@ -0,0 +1,181 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * Resource Specification reference: The ResourceSpecification is required to + * realize a ProductSpecification. + */ +@Schema(description = "Resource Specification reference: The ResourceSpecification is required to realize a ProductSpecification.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") +@Entity(name = "ResourceSpecificationRef") +@JsonIgnoreProperties( {"uuid"} ) +public class ResourceSpecificationRef extends BaseRootNamedEntity { + @JsonProperty("version") + private String version = null; + + @JsonProperty("@referredType") + private String referredType = null; + + @JsonProperty("id") + protected String id = null; + + /** + * @return the id + */ + public String getId() { + return id; + } + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + public ResourceSpecificationRef() { + super(); + this.baseType = "BaseRootEntity"; + this.type = this.getClass().getName(); + } + + public ResourceSpecificationRef(ResourceSpecificationRef r) { + this(); + name = r.name; + version = r.version; + id = r.id; + + } + + public ResourceSpecificationRef id(String id) { + this.id = id; + return this; + } + + public ResourceSpecificationRef version(String version) { + this.version = version; + return this; + } + + /** + * Resource specification version + * + * @return version + **/ + @Schema(description = "Resource specification version") + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public ResourceSpecificationRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceSpecificationRef resourceSpecificationRef = (ResourceSpecificationRef) o; + return Objects.equals(this.id, resourceSpecificationRef.id) + && Objects.equals(this.href, resourceSpecificationRef.href) + && Objects.equals(this.name, resourceSpecificationRef.name) + && Objects.equals(this.version, resourceSpecificationRef.version) + && Objects.equals(this.baseType, resourceSpecificationRef.baseType) + && Objects.equals(this.schemaLocation, resourceSpecificationRef.schemaLocation) + && Objects.equals(this.type, resourceSpecificationRef.type) + && Objects.equals(this.referredType, resourceSpecificationRef.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, version, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceSpecificationRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationRelationship.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationRelationship.java new file mode 100644 index 0000000..d7fe8c8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationRelationship.java @@ -0,0 +1,451 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.hibernate.annotations.GenericGenerator; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import jakarta.validation.Valid; + +/** + * A migration, substitution, dependency or exclusivity relationship + * between/among resource specifications. + */ +@Schema(description = "A migration, substitution, dependency or exclusivity relationship between/among resource specifications.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + +@Entity(name = "ResourceSpecRelationship") +public class ResourceSpecificationRelationship { + + @Id + @GeneratedValue(generator = "uuid") + @GenericGenerator(name = "uuid", strategy = "uuid2") + protected String uuid = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("defaultQuantity") + private Integer defaultQuantity = null; + + @JsonProperty("maximumQuantity") + private Integer maximumQuantity = null; + + @JsonProperty("minimumQuantity") + private Integer minimumQuantity = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("role") + private String role = null; + + + @JsonProperty("resourceSpecCharacteristic") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + protected Set characteristic = new HashSet<>(); + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + + /** + * @return the uuid + */ + public String getUuid() { + return uuid; + } + + /** + * @param uuid the uuid to set + */ + public void setUuid(String uuid) { + this.uuid = uuid; + } + + public ResourceSpecificationRelationship id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of target ResourceSpecification + * + * @return id + **/ + @Schema(description = "Unique identifier of target ResourceSpecification") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceSpecificationRelationship href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the target ResourceSpecification + * + * @return href + **/ + @Schema(description = "Reference of the target ResourceSpecification") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceSpecificationRelationship defaultQuantity(Integer defaultQuantity) { + this.defaultQuantity = defaultQuantity; + return this; + } + + /** + * The default number of the related resource that should be instantiated, for + * example a rack would typically have 4 cards, although it could support more. + * + * @return defaultQuantity + **/ + @Schema(description = "The default number of the related resource that should be instantiated, for example a rack would typically have 4 cards, although it could support more.") + + public Integer getDefaultQuantity() { + return defaultQuantity; + } + + public void setDefaultQuantity(Integer defaultQuantity) { + this.defaultQuantity = defaultQuantity; + } + + public ResourceSpecificationRelationship maximumQuantity(Integer maximumQuantity) { + this.maximumQuantity = maximumQuantity; + return this; + } + + /** + * The maximum number of the related resource that should be instantiated, for + * example a rack supports a maximum of 16 cards + * + * @return maximumQuantity + **/ + @Schema(description = "The maximum number of the related resource that should be instantiated, for example a rack supports a maximum of 16 cards") + + public Integer getMaximumQuantity() { + return maximumQuantity; + } + + public void setMaximumQuantity(Integer maximumQuantity) { + this.maximumQuantity = maximumQuantity; + } + + public ResourceSpecificationRelationship minimumQuantity(Integer minimumQuantity) { + this.minimumQuantity = minimumQuantity; + return this; + } + + /** + * The minimum number of the related resource that should be instantiated, for + * example a rack must have at least 1 card + * + * @return minimumQuantity + **/ + @Schema(description = "The minimum number of the related resource that should be instantiated, for example a rack must have at least 1 card") + + public Integer getMinimumQuantity() { + return minimumQuantity; + } + + public void setMinimumQuantity(Integer minimumQuantity) { + this.minimumQuantity = minimumQuantity; + } + + public ResourceSpecificationRelationship name(String name) { + this.name = name; + return this; + } + + /** + * The name given to the target resource specification instance + * + * @return name + **/ + @Schema(description = "The name given to the target resource specification instance") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ResourceSpecificationRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * Type of relationship such as migration, substitution, dependency, exclusivity + * + * @return relationshipType + **/ + @Schema(description = "Type of relationship such as migration, substitution, dependency, exclusivity") + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public ResourceSpecificationRelationship role(String role) { + this.role = role; + return this; + } + + /** + * The association role for this resource specification + * + * @return role + **/ + @Schema(description = "The association role for this resource specification") + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public ResourceSpecificationRelationship characteristic(Set characteristic) { + this.characteristic = characteristic; + return this; + } + + public ResourceSpecificationRelationship addCharacteristicItem( + ResourceSpecificationCharacteristic characteristicItem) { + if (this.characteristic == null) { + this.characteristic = new HashSet<>(); + } + this.characteristic.add(characteristicItem); + return this; + } + + /** + * A characteristic that refines the relationship. For example, consider the + * relationship between a slot and a card. For a half-height card it is + * important to know the position at which the card is inserted, so a + * characteristic Position might be defined on the relationship to allow + * capturing of this in the inventory + * + * @return characteristic + **/ + @Schema(description = "A characteristic that refines the relationship. For example, consider the relationship between a slot and a card. For a half-height card it is important to know the position at which the card is inserted, so a characteristic Position might be defined on the relationship to allow capturing of this in the inventory") + @Valid + public Set getCharacteristic() { + return characteristic; + } + + public void setCharacteristic(Set characteristic) { + this.characteristic = characteristic; + } + + public ResourceSpecificationRelationship validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ResourceSpecificationRelationship _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public ResourceSpecificationRelationship _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public ResourceSpecificationRelationship _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceSpecificationRelationship resourceSpecificationRelationship = (ResourceSpecificationRelationship) o; + return Objects.equals(this.id, resourceSpecificationRelationship.id) + && Objects.equals(this.href, resourceSpecificationRelationship.href) + && Objects.equals(this.defaultQuantity, resourceSpecificationRelationship.defaultQuantity) + && Objects.equals(this.maximumQuantity, resourceSpecificationRelationship.maximumQuantity) + && Objects.equals(this.minimumQuantity, resourceSpecificationRelationship.minimumQuantity) + && Objects.equals(this.name, resourceSpecificationRelationship.name) + && Objects.equals(this.relationshipType, resourceSpecificationRelationship.relationshipType) + && Objects.equals(this.role, resourceSpecificationRelationship.role) + && Objects.equals(this.characteristic, resourceSpecificationRelationship.characteristic) + && Objects.equals(this.validFor, resourceSpecificationRelationship.validFor) + && Objects.equals(this._atBaseType, resourceSpecificationRelationship._atBaseType) + && Objects.equals(this._atSchemaLocation, resourceSpecificationRelationship._atSchemaLocation) + && Objects.equals(this._atType, resourceSpecificationRelationship._atType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, defaultQuantity, maximumQuantity, minimumQuantity, name, relationshipType, role, + characteristic, validFor, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceSpecificationRelationship {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" defaultQuantity: ").append(toIndentedString(defaultQuantity)).append("\n"); + sb.append(" maximumQuantity: ").append(toIndentedString(maximumQuantity)).append("\n"); + sb.append(" minimumQuantity: ").append(toIndentedString(minimumQuantity)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" characteristic: ").append(toIndentedString(characteristic)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationUpdate.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationUpdate.java new file mode 100644 index 0000000..e982db2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/ResourceSpecificationUpdate.java @@ -0,0 +1,599 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Resources are physical or non-physical components (or some combination of + * these) within an enterprise's infrastructure or inventory. They are + * typically consumed or used by services (for example a physical port assigned + * to a service) or contribute to the realization of a Product (for example, a + * SIM card). They can be drawn from the Application, Computing and Network + * domains, and include, for example, Network Elements, software, IT systems, + * content and information, and technology components. A ResourceSpecification + * is an abstract base class for representing a generic means for implementing a + * particular type of Resource. In essence, a ResourceSpecification defines the + * common attributes and relationships of a set of related Resources, while + * Resource defines a specific instance that is based on a particular + * ResourceSpecification. Skipped properties: id,href, + * + * add lastUpdate + */ +@Schema(description = "Resources are physical or non-physical components (or some combination of these) within an enterprise's infrastructure or inventory. They are typically consumed or used by services (for example a physical port assigned to a service) or contribute to the realization of a Product (for example, a SIM card). They can be drawn from the Application, Computing and Network domains, and include, for example, Network Elements, software, IT systems, content and information, and technology components. A ResourceSpecification is an abstract base class for representing a generic means for implementing a particular type of Resource. In essence, a ResourceSpecification defines the common attributes and relationships of a set of related Resources, while Resource defines a specific instance that is based on a particular ResourceSpecification. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") +public class ResourceSpecificationUpdate { + @JsonProperty("category") + protected String category = null; + + @JsonProperty("description") + protected String description = null; + + @JsonProperty("isBundle") + protected Boolean isBundle = null; + + @JsonProperty("lifecycleStatus") + protected String lifecycleStatus = null; + + @JsonProperty("name") + protected String name = null; + + @JsonProperty("version") + protected String version = null; + + @JsonProperty("attachment") + @Valid + protected List attachment = null; + + @JsonProperty("featureSpecification") + @Valid + protected List featureSpecification = null; + + @JsonProperty("relatedParty") + @Valid + protected List relatedParty = null; + + @JsonProperty("resourceSpecCharacteristic") + @Valid + protected List resourceSpecificationCharacteristic = null; + + @JsonProperty("resourceSpecRelationship") + @Valid + protected List resourceSpecificationRelationship = null; + + @JsonProperty("targetResourceSchema") + protected TargetResourceSchema targetResourceSchema = null; + + @JsonProperty("validFor") + protected TimePeriod validFor = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@type") + protected String type = null; + + public ResourceSpecificationUpdate category(String category) { + this.category = category; + return this; + } + + /** + * Category of the target resource like NetworkConnectivity, PhysicalLinks, + * Generic, L2Network and so on. + * + * @return category + **/ + @Schema(description = "Category of the target resource like NetworkConnectivity, PhysicalLinks, Generic, L2Network and so on.") + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public ResourceSpecificationUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Description of this REST resource + * + * @return description + **/ + @Schema(description = "Description of this REST resource") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceSpecificationUpdate isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * A flag indicates that if this resource specification is a bundled + * specification (true) or single (false). + * + * @return isBundle + **/ + @Schema(description = "A flag indicates that if this resource specification is a bundled specification (true) or single (false).") + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + + public ResourceSpecificationUpdate lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Used to indicate the current lifecycle status of the resource specification + * + * @return lifecycleStatus + **/ + @Schema(description = "Used to indicate the current lifecycle status of the resource specification") + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public ResourceSpecificationUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name given to this REST resource + * + * @return name + **/ + @Schema(description = "Name given to this REST resource") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ResourceSpecificationUpdate version(String version) { + this.version = version; + return this; + } + + /** + * Resource Specification version + * + * @return version + **/ + @Schema(description = "Resource Specification version") + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public ResourceSpecificationUpdate attachment(List attachment) { + this.attachment = attachment; + return this; + } + + public ResourceSpecificationUpdate addAttachmentItem(AttachmentRefOrValue attachmentItem) { + if (this.attachment == null) { + this.attachment = new ArrayList<>(); + } + this.attachment.add(attachmentItem); + return this; + } + + /** + * Complements the description of an element (for instance a resource) through + * video, pictures ... + * + * @return attachment + **/ + @Schema(description = "Complements the description of an element (for instance a resource) through video, pictures ...") + @Valid + public List getAttachment() { + return attachment; + } + + public void setAttachment(List attachment) { + this.attachment = attachment; + } + + public ResourceSpecificationUpdate featureSpecification(List featureSpecification) { + this.featureSpecification = featureSpecification; + return this; + } + + public ResourceSpecificationUpdate addFeatureSpecificationItem(FeatureSpecification featureSpecificationItem) { + if (this.featureSpecification == null) { + this.featureSpecification = new ArrayList<>(); + } + this.featureSpecification.add(featureSpecificationItem); + return this; + } + + /** + * A list of Features for this specification. + * + * @return featureSpecification + **/ + @Schema(description = "A list of Features for this specification.") + @Valid + public List getFeatureSpecification() { + return featureSpecification; + } + + public void setFeatureSpecification(List featureSpecification) { + this.featureSpecification = featureSpecification; + } + + public ResourceSpecificationUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ResourceSpecificationUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * A related party defines party or party role linked to a specific entity. + * + * @return relatedParty + **/ + @Schema(description = "A related party defines party or party role linked to a specific entity.") + @Valid + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public ResourceSpecificationUpdate ResourceSpecificationCharacteristic( + List ResourceSpecificationCharacteristic) { + this.resourceSpecificationCharacteristic = ResourceSpecificationCharacteristic; + return this; + } + + public ResourceSpecificationUpdate addResourceSpecificationCharacteristicItem( + ResourceSpecificationCharacteristic ResourceSpecificationCharacteristicItem) { + if (this.resourceSpecificationCharacteristic == null) { + this.resourceSpecificationCharacteristic = new ArrayList<>(); + } + this.resourceSpecificationCharacteristic.add(ResourceSpecificationCharacteristicItem); + return this; + } + + + /** + * @param name + * @param defaultValue + * @param valueType + * @param description + * @param isConfigurable + * @return + */ + public ResourceSpecificationUpdate addResourceSpecificationCharacteristicItemShort( + String name, + String defaultValue, + String valueType, + String description, + Boolean isConfigurable) { + + + ResourceSpecificationCharacteristic ci = new ResourceSpecificationCharacteristic(); + ci + .name( name ) + .description(description) + .valueType(valueType); + if (defaultValue!=null) { + ResourceSpecificationCharacteristicValue val = new ResourceSpecificationCharacteristicValue(); + val.setValue( new Any( defaultValue, null) ); + val.isDefault(true); + ci.getResourceSpecCharacteristicValue().add( val ); + } + ci.configurable( isConfigurable ); + return addResourceSpecificationCharacteristicItem(ci); + } + + + /** + * A characteristic quality or distinctive feature of a ResourceSpecification. + * The characteristic can be take on a discrete value, such as color, can take + * on a range of values, (for example, sensitivity of 100-240 mV), or can be + * derived from a formula (for example, usage time (hrs) = 30 - talk time *3). + * Certain characteristics, such as color, may be configured during the ordering + * or some other process. + * + * @return ResourceSpecificationCharacteristic + **/ + @Schema(description = "A characteristic quality or distinctive feature of a ResourceSpecification. The characteristic can be take on a discrete value, such as color, can take on a range of values, (for example, sensitivity of 100-240 mV), or can be derived from a formula (for example, usage time (hrs) = 30 - talk time *3). Certain characteristics, such as color, may be configured during the ordering or some other process.") + @Valid + public List getResourceSpecificationCharacteristic() { + return resourceSpecificationCharacteristic; + } + + public void setResourceSpecificationCharacteristic(List ResourceSpecificationCharacteristic) { + this.resourceSpecificationCharacteristic = ResourceSpecificationCharacteristic; + } + + public ResourceSpecificationUpdate resourceSpecificationRelationship( + List resourceSpecRelationship) { + this.resourceSpecificationRelationship = resourceSpecRelationship; + return this; + } + + public ResourceSpecificationUpdate addResourceSpecificationRelationshipItem( + ResourceSpecificationRelationship resourceSpecRelationshipItem) { + if (this.resourceSpecificationRelationship == null) { + this.resourceSpecificationRelationship = new ArrayList<>(); + } + this.resourceSpecificationRelationship.add(resourceSpecRelationshipItem); + return this; + } + + /** + * A migration, substitution, dependency or exclusivity relationship + * between/among resource specifications. + * + * @return resourceSpecRelationship + **/ + @Schema(description = "A migration, substitution, dependency or exclusivity relationship between/among resource specifications.") + @Valid + public List getResourceSpecificationRelationship() { + return resourceSpecificationRelationship; + } + + public void setResourceSpecificationRelationship(List resourceSpecRelationship) { + this.resourceSpecificationRelationship = resourceSpecRelationship; + } + + public ResourceSpecificationUpdate targetResourceSchema(TargetResourceSchema targetResourceSchema) { + this.targetResourceSchema = targetResourceSchema; + return this; + } + + /** + * Get targetResourceSchema + * + * @return targetResourceSchema + **/ + @Schema(description = "") + + @Valid + public TargetResourceSchema getTargetResourceSchema() { + return targetResourceSchema; + } + + public void setTargetResourceSchema(TargetResourceSchema targetResourceSchema) { + this.targetResourceSchema = targetResourceSchema; + } + + public ResourceSpecificationUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ResourceSpecificationUpdate baseType(String _atBaseType) { + this.baseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String _atBaseType) { + this.baseType = _atBaseType; + } + + public ResourceSpecificationUpdate schemaLocation(String _atSchemaLocation) { + this.schemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String _atSchemaLocation) { + this.schemaLocation = _atSchemaLocation; + } + + public ResourceSpecificationUpdate type(String _atType) { + this.type = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getType() { + return type; + } + + public void setType(String _atType) { + this.type = _atType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceSpecificationUpdate resourceSpecificationUpdate = (ResourceSpecificationUpdate) o; + return Objects.equals(this.category, resourceSpecificationUpdate.category) + && Objects.equals(this.description, resourceSpecificationUpdate.description) + && Objects.equals(this.isBundle, resourceSpecificationUpdate.isBundle) + && Objects.equals(this.lifecycleStatus, resourceSpecificationUpdate.lifecycleStatus) + && Objects.equals(this.name, resourceSpecificationUpdate.name) + && Objects.equals(this.version, resourceSpecificationUpdate.version) + && Objects.equals(this.attachment, resourceSpecificationUpdate.attachment) + && Objects.equals(this.featureSpecification, resourceSpecificationUpdate.featureSpecification) + && Objects.equals(this.relatedParty, resourceSpecificationUpdate.relatedParty) + && Objects.equals(this.resourceSpecificationCharacteristic, + resourceSpecificationUpdate.resourceSpecificationCharacteristic) + && Objects.equals(this.resourceSpecificationRelationship, resourceSpecificationUpdate.resourceSpecificationRelationship) + && Objects.equals(this.targetResourceSchema, resourceSpecificationUpdate.targetResourceSchema) + && Objects.equals(this.validFor, resourceSpecificationUpdate.validFor) + && Objects.equals(this.baseType, resourceSpecificationUpdate.baseType) + && Objects.equals(this.schemaLocation, resourceSpecificationUpdate.schemaLocation) + && Objects.equals(this.type, resourceSpecificationUpdate.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(category, description, isBundle, lastUpdate, lifecycleStatus, name, version, attachment, +// featureSpecification, relatedParty, resourceSpecificationCharacteristic, resourceSpecificationRelationship, +// targetResourceSchema, validFor, _atBaseType, _atSchemaLocation, _atType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceSpecificationUpdate {\n"); + + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" featureSpecification: ").append(toIndentedString(featureSpecification)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" ResourceSpecificationCharacteristic: ").append(toIndentedString(resourceSpecificationCharacteristic)).append("\n"); + sb.append(" resourceSpecRelationship: ").append(toIndentedString(resourceSpecificationRelationship)).append("\n"); + sb.append(" targetResourceSchema: ").append(toIndentedString(targetResourceSchema)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + protected String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public void addResourceSpecificationRelationshipWith(ResourceSpecification responsesSpec1) { + + ResourceSpecificationRelationship r1 = new ResourceSpecificationRelationship(); + r1.setId(responsesSpec1.getId()); + r1.setName(responsesSpec1.getName()); + r1.setRole("serviceSpecRelationship"); + r1.setRelationshipType("aggregation"); + this.addResourceSpecificationRelationshipItem(r1); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/TargetResourceSchema.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/TargetResourceSchema.java new file mode 100644 index 0000000..274e83c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/TargetResourceSchema.java @@ -0,0 +1,151 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Embeddable; +import jakarta.validation.constraints.NotNull; + +/** + * The reference object to the schema and type of target resource which is described by resource specification + */ +@Schema(description = "The reference object to the schema and type of target resource which is described by resource specification") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-05-29T22:34:44.143740800+03:00[Europe/Athens]") + +@Embeddable +public class TargetResourceSchema { + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public TargetResourceSchema _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public TargetResourceSchema _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * This field provides a link to the schema describing the target resource + * @return _atSchemaLocation + **/ + @Schema(description = "This field provides a link to the schema describing the target resource") + @NotNull + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public TargetResourceSchema _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * Class type of the target resource + * @return _atType + **/ + @Schema(description = "Class type of the target resource") + @NotNull + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TargetResourceSchema targetResourceSchema = (TargetResourceSchema) o; + return Objects.equals(this._atBaseType, targetResourceSchema._atBaseType) && + Objects.equals(this._atSchemaLocation, targetResourceSchema._atSchemaLocation) && + Objects.equals(this._atType, targetResourceSchema._atType); + } + + @Override + public int hashCode() { + return Objects.hash(_atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TargetResourceSchema {\n"); + + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/model/TargetResourceSchemaRef.java b/src/main/java/org/etsi/osl/tmf/rcm634/model/TargetResourceSchemaRef.java new file mode 100644 index 0000000..090f3c2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/model/TargetResourceSchemaRef.java @@ -0,0 +1,85 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.model; + +import java.util.Objects; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Embeddable; + +/** + * The reference object to the schema and type of target resource which is described by resource specification + */ +@Schema(description = "The reference object to the schema and type of target resource which is described by resource specification") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:06:08.595+03:00") + +@Embeddable +public class TargetResourceSchemaRef extends BaseRootEntity { + + public TargetResourceSchemaRef type(String type) { + this.type = type; + return this; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TargetResourceSchemaRef targetResourceSchemaRef = (TargetResourceSchemaRef) o; + return Objects.equals(this.type, targetResourceSchemaRef.type) && + Objects.equals(this.schemaLocation, targetResourceSchemaRef.schemaLocation); + } + + @Override + public int hashCode() { + return Objects.hash(type, schemaLocation); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TargetResourceSchemaRef {\n"); + + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/repo/ResourceCandidateRepository.java b/src/main/java/org/etsi/osl/tmf/rcm634/repo/ResourceCandidateRepository.java new file mode 100644 index 0000000..461936d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/repo/ResourceCandidateRepository.java @@ -0,0 +1,39 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.repo; + +import java.util.Optional; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidate; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + +@Repository +public interface ResourceCandidateRepository extends CrudRepository , PagingAndSortingRepository { + + + Optional findByUuid(String id); + + @Query("SELECT sc FROM ResourceCandidate sc JOIN FETCH sc.resourceSpecificationObj spec WHERE spec.uuid = ?1") + Optional findByResourceSpecUuid(String id); + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/repo/ResourceCatalogRepository.java b/src/main/java/org/etsi/osl/tmf/rcm634/repo/ResourceCatalogRepository.java new file mode 100644 index 0000000..4deaee4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/repo/ResourceCatalogRepository.java @@ -0,0 +1,39 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.repo; + +import java.util.Optional; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalog; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + +@Repository +public interface ResourceCatalogRepository extends CrudRepository , PagingAndSortingRepository { + + + Optional findByUuid(String id); + + Optional findByName(String aName); + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/repo/ResourceCategoriesRepository.java b/src/main/java/org/etsi/osl/tmf/rcm634/repo/ResourceCategoriesRepository.java new file mode 100644 index 0000000..ebce8cf --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/repo/ResourceCategoriesRepository.java @@ -0,0 +1,39 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.repo; + +import java.util.Optional; +import org.etsi.osl.tmf.rcm634.model.ResourceCategory; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + +@Repository +public interface ResourceCategoriesRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + Optional findByName(String aName); + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/repo/ResourceSpecificationRepository.java b/src/main/java/org/etsi/osl/tmf/rcm634/repo/ResourceSpecificationRepository.java new file mode 100644 index 0000000..456b890 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/repo/ResourceSpecificationRepository.java @@ -0,0 +1,55 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.rcm634.model.LogicalResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.PhysicalResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + +@Repository +public interface ResourceSpecificationRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + @Query("SELECT sc FROM LogicalRspec sc") + List findAllLogical(); + + + List findByName(String aname ); + + List findByNameAndVersion(String aname, String aversion); + + List findByNameAndCategory(String aname, String acategory); + + + List findByNameAndCategoryAndVersion(String aname, String acategory, String aversion); + + @Query("SELECT sc FROM PhysicalRspec sc") + List findAllPhysical(); + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/reposervices/ResourceCandidateRepoService.java b/src/main/java/org/etsi/osl/tmf/rcm634/reposervices/ResourceCandidateRepoService.java new file mode 100644 index 0000000..c508efd --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/reposervices/ResourceCandidateRepoService.java @@ -0,0 +1,176 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.reposervices; + +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.common.model.ELifecycle; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidate; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidateCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidateUpdate; +import org.etsi.osl.tmf.rcm634.model.ResourceCategory; +import org.etsi.osl.tmf.rcm634.model.ResourceCategoryRef; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; +import org.etsi.osl.tmf.rcm634.repo.ResourceCandidateRepository; +import org.etsi.osl.tmf.rcm634.repo.ResourceSpecificationRepository; +import org.etsi.osl.tmf.scm633.model.ServiceCandidate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import jakarta.validation.Valid; + +@Service +public class ResourceCandidateRepoService { + + + @Autowired + ResourceCandidateRepository candidateRepo; + + @Autowired + ResourceCategoryRepoService categsRepoService; + + @Autowired + ResourceSpecificationRepository resourceSpecificationRepo; + + public ResourceCandidate addCatalog( ResourceCandidate c) { + + return this.candidateRepo.save( c ); + } + + public ResourceCandidate addResourceCandidate(@Valid ResourceCandidateCreate resCand) { + + + ResourceCandidate sc = new ResourceCandidate() ; +// if ( resCand.getResourceSpecification() != null) { +// Optional optsc = this.candidateRepo.findByResourceSpecUuid(resCand.getResourceSpecification().getId()); +// if (optsc.isPresent() ) { +// sc = optsc.get();//add to an existing candidate +// } +// } + + sc = updateResourceCandidateDataFromAPI( sc, resCand); + + return this.candidateRepo.save( sc ); + } + + public List findAll() { + return (List) this.candidateRepo.findAll(); + } + + public ResourceCandidate findById(String id) { + Optional optionalCat = this.candidateRepo.findByUuid( id ); + return optionalCat + .orElse(null); + } + + public Void deleteById(String id) { + Optional optionalCat = this.candidateRepo.findByUuid( id ); + if ( !optionalCat.isEmpty() ) { + this.candidateRepo.delete( optionalCat.get()); + + } + return null; + + } + + @Transactional + public ResourceCandidate updateCandidate(String id, @Valid ResourceCandidateUpdate serviceCandidate) { + Optional scopt = this.candidateRepo.findByUuid(id); + if ( scopt == null ) { + return null; + } + ResourceCandidate sc = scopt.get(); + + sc = updateResourceCandidateDataFromAPI( sc, serviceCandidate); + + return this.candidateRepo.save( sc ); + } + + + @Transactional + public ResourceCandidate updateResourceCandidateDataFromAPI(ResourceCandidate sc, @Valid ResourceCandidateUpdate resourceCandidateUpd) { + + ResourceSpecification specObj = null; + + if ( resourceCandidateUpd.getResourceSpecification()!=null) { + Optional optionalCat = this.resourceSpecificationRepo.findByUuid( resourceCandidateUpd.getResourceSpecification().getId() ); + specObj = optionalCat.orElse(null); + } + + if ( specObj != null ) { + sc.setName( specObj.getName() ); + sc.setDescription( specObj.getDescription() ); + sc.setLifecycleStatusEnum ( ELifecycle.getEnum( specObj.getLifecycleStatus() ) ); + sc.setVersion( specObj.getVersion() ); + } else { + sc.setName( resourceCandidateUpd.getName() ); + sc.setDescription( resourceCandidateUpd.getDescription() ); + sc.setLifecycleStatusEnum( ELifecycle.LAUNCHED ); + sc.setVersion( resourceCandidateUpd.getVersion()); + } + + sc.setLastUpdate( OffsetDateTime.now(ZoneOffset.UTC) ); + if ( resourceCandidateUpd.getLifecycleStatus() == null ) { + sc.setLifecycleStatusEnum( ELifecycle.LAUNCHED ); + } else { + sc.setLifecycleStatusEnum ( ELifecycle.getEnum( resourceCandidateUpd.getLifecycleStatus() ) ); + } + TimePeriod tp = new TimePeriod(); + + if ( sc.getValidFor() != null ){ + tp.setStartDateTime( sc.getValidFor().getStartDateTime() ); + tp.setEndDateTime( sc.getValidFor().getEndDateTime() ); + } + sc.setValidFor( tp ); + + if ( specObj != null){ + sc.setResourceSpecificationObj( specObj ); + } + + //save first to continue + ResourceCandidate savedCand = this.candidateRepo.save( sc ); + + + if ( resourceCandidateUpd.getCategory() !=null ){ + for (ResourceCategoryRef sCategD : resourceCandidateUpd.getCategory()) { + ResourceCategory catObj = this.categsRepoService.findByIdEager(sCategD.getId()); + + if ( catObj!=null){ + catObj.getResourceCandidateObj().add(savedCand); //add candidate ref to category + catObj = this.categsRepoService.categsRepo.save(catObj); + + } + } + } + + + return savedCand; + } + + public Optional findByUuid(String id) { + // TODO Auto-generated method stub + return null; + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/reposervices/ResourceCatalogRepoService.java b/src/main/java/org/etsi/osl/tmf/rcm634/reposervices/ResourceCatalogRepoService.java new file mode 100644 index 0000000..422a7bd --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/reposervices/ResourceCatalogRepoService.java @@ -0,0 +1,183 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.reposervices; + +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.common.model.ELifecycle; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalog; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalogCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalogUpdate; +import org.etsi.osl.tmf.rcm634.model.ResourceCategory; +import org.etsi.osl.tmf.rcm634.model.ResourceCategoryRef; +import org.etsi.osl.tmf.rcm634.repo.ResourceCatalogRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import jakarta.validation.Valid; + +@Service +public class ResourceCatalogRepoService { + + @Autowired + ResourceCatalogRepository catalogRepo; + + @Autowired + ResourceCategoryRepoService categRepoService; + + @Autowired + ResourceSpecificationRepoService resourceSpecRepoService; + + @Autowired + ResourceCandidateRepoService candidateRepoService; + + public ResourceCatalog addCatalog(ResourceCatalog c) { + + return this.catalogRepo.save(c); + } + + public ResourceCatalog addCatalog(@Valid ResourceCatalogCreate serviceCat) { + + ResourceCatalog sc = new ResourceCatalog(); + + sc = updateCatalogDataFromAPICall(sc, serviceCat); + return this.catalogRepo.save(sc); + } + + public List findAll() { + return (List) this.catalogRepo.findAll(); + } + + public ResourceCatalog findById(String id) { + Optional optionalCat = this.catalogRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + public Void deleteById(String id) { + Optional optionalCat = this.catalogRepo.findByUuid(id); + this.catalogRepo.delete(optionalCat.get()); + return null; + + } + + public ResourceCatalog updateCatalog(String id, ResourceCatalogUpdate serviceCatalog) { + + Optional optSC = catalogRepo.findByUuid(id); + if (optSC == null) { + return null; + } + ResourceCatalog sc = optSC.get(); + sc = updateCatalogDataFromAPICall(sc, serviceCatalog); + return this.catalogRepo.save(sc); + } + + public ResourceCatalog updateCatalog(ResourceCatalog serviceCatalog) { + + return this.catalogRepo.save(serviceCatalog); + } + + public ResourceCatalog updateCatalogDataFromAPICall(ResourceCatalog rc, ResourceCatalogUpdate resCatalog) { + + if (resCatalog.getName()!=null){ + rc.setName(resCatalog.getName()); + } + + if (resCatalog.getDescription()!=null){ + rc.setDescription(resCatalog.getDescription()); + } + if (resCatalog.getLifecycleStatus() != null) { + rc.setLifecycleStatusEnum(ELifecycle.getEnum(resCatalog.getLifecycleStatus())); + } + if (resCatalog.getVersion() != null) { + rc.setVersion(resCatalog.getVersion()); + } + rc.setLastUpdate(OffsetDateTime.now(ZoneOffset.UTC)); + TimePeriod tp = new TimePeriod(); + if (resCatalog.getValidFor() != null) { + tp.setStartDateTime(resCatalog.getValidFor().getStartDateTime()); + tp.setEndDateTime(resCatalog.getValidFor().getEndDateTime()); + rc.setValidFor(tp); + } + + + // add any new category + if (resCatalog.getCategory() != null) { + rc.getCategoryObj().clear(); + for (ResourceCategoryRef scref : resCatalog.getCategory()) { + ResourceCategory servcat = this.categRepoService.findByUuid(scref.getId()); + rc.addCategory(servcat); + } + } + + return rc; + + } + + +/*--------------------------------------------------------------------------------------------------------------- + @PostConstruct + public void initRepo() { + if (this.findAll().size() == 0) { + ResourceCatalogCreate sc = new ResourceCatalogCreate(); + sc.setName("Catalog"); + sc.setDescription("Primary Resource Catalog"); + sc.setVersion("1.0"); + ResourceCatalog scatalog = this.addCatalog(sc); + + ResourceCategoryCreate scatCreate = new ResourceCategoryCreate(); + scatCreate.setName("Generic Resources"); + scatCreate.setDescription("Generic Resources of this catalog"); + scatCreate.setVersion("1.0"); + scatCreate.setIsRoot(true); + ResourceCategory scategory = this.categRepoService.addCategory(scatCreate); + + scatalog.getCategoryObj().add(scategory); + this.catalogRepo.save(scatalog); + + ResourceSpecification resSpecificationObj = this.resourceSpecRepoService.initRepo(); + + + ResourceCandidateCreate scand = new ResourceCandidateCreate(); + scand.setName( resSpecificationObj.getName()); + ResourceSpecificationRef resSpecificationRef = new ResourceSpecificationRef(); + resSpecificationRef.setId(resSpecificationObj.getId()); + resSpecificationRef.setName(resSpecificationObj.getName()); + scand.resourceSpecification(resSpecificationRef); + + ResourceCategoryRef categoryItem = new ResourceCategoryRef(); + categoryItem.setId(scategory.getId()); + scand.addCategoryItem(categoryItem); + + this.candidateRepoService.addResourceCandidate(scand); + } + } +---------------------------------------------------------------------------------------------------------------*/ + + + public ResourceCatalog findByName(String aName) { + Optional optionalCat = this.catalogRepo.findByName( aName ); + return optionalCat.orElse(null); + } + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/reposervices/ResourceCategoryRepoService.java b/src/main/java/org/etsi/osl/tmf/rcm634/reposervices/ResourceCategoryRepoService.java new file mode 100644 index 0000000..421cb12 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/reposervices/ResourceCategoryRepoService.java @@ -0,0 +1,293 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.reposervices; + +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.etsi.osl.tmf.common.model.ELifecycle; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidate; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidateRef; +import org.etsi.osl.tmf.rcm634.model.ResourceCategory; +import org.etsi.osl.tmf.rcm634.model.ResourceCategoryCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceCategoryRef; +import org.etsi.osl.tmf.rcm634.model.ResourceCategoryUpdate; +import org.etsi.osl.tmf.rcm634.repo.ResourceCandidateRepository; +import org.etsi.osl.tmf.rcm634.repo.ResourceCatalogRepository; +import org.etsi.osl.tmf.rcm634.repo.ResourceCategoriesRepository; +import org.hibernate.Hibernate; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + +@Service +public class ResourceCategoryRepoService { + + + @Autowired + ResourceCategoriesRepository categsRepo; + + + @Autowired + ResourceCandidateRepository candidateRepo; + + + @Autowired + ResourceCatalogRepository catalogRepo; + + + private SessionFactory sessionFactory; + + /** + * from https://stackoverflow.com/questions/25063995/spring-boot-handle-to-hibernate-sessionfactory + * @param factory + */ + @Autowired + public ResourceCategoryRepoService(EntityManagerFactory factory) { + if(factory.unwrap(SessionFactory.class) == null){ + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + + public ResourceCategory addCategory(ResourceCategory c) { + + return this.categsRepo.save( c ); + } + + public ResourceCategory addCategory(@Valid ResourceCategoryCreate resCategory) { + + + ResourceCategory sc = new ResourceCategory() ; + sc = updateCategoryDataFromAPICall(sc, resCategory); + return this.categsRepo.save( sc ); + + } + + public List findAll() { + return (List) this.categsRepo.findAll(); + } + + public ResourceCategory findByUuid(String id) { + Optional optionalCat = this.categsRepo.findByUuid( id ); + return optionalCat + .orElse(null); + } + + + public ResourceCategory findByIdEager(String id) { +// Optional optionalCat = this.categsRepo.findByIdEager( id ); +// return optionalCat +// .orElse(null); + + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + ResourceCategory dd = null; + try { + dd = (ResourceCategory) session.get(ResourceCategory.class, id); + if ( dd != null ) { + Hibernate.initialize( dd.getCategoryObj() ); + Hibernate.initialize( dd.getResourceCandidateObj() ); + for (ResourceCandidate rc : dd.getResourceCandidateObj()) { + Hibernate.initialize(rc ); + Hibernate.initialize(rc.getCategoryObj() ); + + } + } else { + return this.findByUuid(id); + } + + tx.commit(); + } finally { + session.close(); + } + return dd; + } + + + + + + public boolean deleteById(String id) { + Optional optionalCat = this.categsRepo.findByUuid( id ); + + if ( optionalCat.get().getCategoryObj().size()>0 ) { + return false; //has children + } + + if ( optionalCat.get().getParentId() != null ) { + ResourceCategory parentCat = (this.categsRepo.findByUuid( optionalCat.get().getParentId() )).get(); + + //remove from parent category + for (ResourceCategory ss : parentCat.getCategoryObj()) { + if ( ss.getId() == optionalCat.get().getId() ) { + parentCat.getCategoryObj().remove(ss); + break; + } + } + parentCat = this.categsRepo.save(parentCat); + } + + + this.categsRepo.delete( optionalCat.get()); + return true; + + } + + public ResourceCategory updateCategory(String id, @Valid ResourceCategoryUpdate serviceCategory) { + Optional optionalCat = this.categsRepo.findByUuid( id ); + if ( optionalCat == null ) { + return null; + } + + ResourceCategory sc = optionalCat.get(); + sc = updateCategoryDataFromAPICall(sc, serviceCategory); + return this.categsRepo.save( sc ); + } + + public ResourceCategory updateCategoryDataFromAPICall( ResourceCategory sc, ResourceCategoryUpdate resCatUpd ) + { + if (resCatUpd.getName()!=null){ + sc.setName( resCatUpd.getName() ); + } + if ( resCatUpd.getDescription() != null){ + sc.setDescription( resCatUpd.getDescription()); + } + + if ( resCatUpd.isIsRoot() != null ){ + sc.setIsRoot( resCatUpd.isIsRoot()); + } + if ( resCatUpd.getLifecycleStatus() != null ) { + sc.setLifecycleStatusEnum ( ELifecycle.getEnum( resCatUpd.getLifecycleStatus() ) ); + } + + if ( resCatUpd.getParentId() != null ){ + sc.setParentId( resCatUpd.getParentId()); + } + + if ( resCatUpd.getVersion() != null ) { + sc.setVersion( resCatUpd.getVersion() ); + } + sc.setLastUpdate( OffsetDateTime.now(ZoneOffset.UTC) ); + TimePeriod tp = new TimePeriod(); + if ( resCatUpd.getValidFor() != null ) { + tp.setStartDateTime( resCatUpd.getValidFor().getStartDateTime() ); + tp.setEndDateTime( resCatUpd.getValidFor().getEndDateTime() ); + sc.setValidFor( tp ); + } + + if ( resCatUpd.getCategory() !=null ) { + //reattach fromDB + Map idAddedUpdated = new HashMap<>(); + + for (ResourceCategoryRef ref : resCatUpd.getCategory() ) { + //find by id and reload it here. + boolean idexists = false; + for (ResourceCategory originalSCat : sc.getCategoryObj()) { + if ( originalSCat.getId().equals( ref.getId())) { + idexists = true; + idAddedUpdated.put( originalSCat.getId(), true); + break; + } + } + if (!idexists) { + Optional catToAdd = this.categsRepo.findByUuid( ref.getId() ); + if ( catToAdd.isPresent() ) { + ResourceCategory scatadd = catToAdd.get(); + sc.getCategoryObj().add( scatadd ); + idAddedUpdated.put( ref.getId(), true); + + scatadd.setParentId( sc.getUuid()); + scatadd = this.categsRepo.save( scatadd ); + } + } + } + List toRemove = new ArrayList<>(); + for (ResourceCategory ss : sc.getCategoryObj()) { + if ( idAddedUpdated.get( ss.getId() ) == null ) { + toRemove.add(ss); + } + } + + for (ResourceCategory ar : toRemove) { + sc.getCategoryObj().remove(ar); + } + } + + if ( resCatUpd.getResourceCandidate() !=null ) { + //reattach fromDB + Map idAddedUpdated = new HashMap<>(); + + for (ResourceCandidateRef ref : resCatUpd.getResourceCandidate() ) { + //find by id and reload it here. + boolean idexists = false; + for (ResourceCandidate originalSCat : sc.getResourceCandidateObj()) { + if ( originalSCat.getId().equals( ref.getId())) { + idexists = true; + idAddedUpdated.put( originalSCat.getId(), true); + break; + } + } + if (!idexists) { + Optional catToAdd = this.candidateRepo.findByUuid( ref.getId() ); + if ( catToAdd.isPresent() ) { + ResourceCandidate scatadd = catToAdd.get(); + sc.getResourceCandidateObj().add( scatadd ); + idAddedUpdated.put( ref.getId(), true); + + } + } + } + List toRemove = new ArrayList<>(); + for (ResourceCandidate ss : sc.getResourceCandidateObj()) { + if ( idAddedUpdated.get( ss.getId() ) == null ) { + toRemove.add(ss); + } + } + + for (ResourceCandidate ar : toRemove) { + sc.getResourceCandidateObj().remove(ar); + } + } + + + + return sc; + } + + + public ResourceCategory findByName(String aName) { + Optional optionalCat = this.categsRepo.findByName( aName ); + return optionalCat + .orElse(null); + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/rcm634/reposervices/ResourceSpecificationRepoService.java b/src/main/java/org/etsi/osl/tmf/rcm634/reposervices/ResourceSpecificationRepoService.java new file mode 100644 index 0000000..69214b4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rcm634/reposervices/ResourceSpecificationRepoService.java @@ -0,0 +1,757 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.rcm634.reposervices; + +import java.io.File; +import java.io.IOException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.UUID; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.common.model.Attachment; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.ELifecycle; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.pcm620.reposervices.AttachmentRepoService; +import org.etsi.osl.tmf.rcm634.model.LogicalResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.PhysicalResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.PhysicalResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.PhysicalResourceSpecificationUpdate; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidate; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidateCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidateUpdate; +import org.etsi.osl.tmf.rcm634.model.ResourceFunctionSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceFunctionSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCharacteristic; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; +import org.etsi.osl.tmf.rcm634.repo.ResourceSpecificationRepository; +import org.etsi.osl.tmf.scm633.model.ServiceSpecification; +import org.etsi.osl.tmf.util.AttachmentUtil; +import org.hibernate.Hibernate; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.transform.ResultTransformer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.io.ClassPathResource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + +@Service +public class ResourceSpecificationRepoService { + private static final transient Log logger = LogFactory.getLog(ResourceSpecificationRepoService.class.getName()); + + @Autowired + ObjectMapper objectMapper; + + @Autowired + ResourceSpecificationRepository resourceSpecificationRepo; + + @Autowired + AttachmentRepoService attachmentRepoService; + + + @Autowired + ResourceCandidateRepoService resCandidateRepoService; + + + private SessionFactory sessionFactory; + + private static final String METADATADIR = System.getProperty("user.home") + File.separator + ".attachments" + + File.separator + "metadata" + File.separator; + + @Autowired + public ResourceSpecificationRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + public ResourceSpecification addResourceSpec(ResourceSpecification reSpec) { + return this.resourceSpecificationRepo.save(reSpec); + } + + + + @Transactional + public ResourceSpecification addResourceSpecification(@Valid ResourceSpecificationCreate resourceSpecification) { + + ResourceSpecification reSpec ; + if (resourceSpecification.getType() !=null && ( resourceSpecification.getType().equals( "PhysicalResourceSpecification" ) || + resourceSpecification.getType().equals( "PhysicalResourceSpecificationCreate" ) )) { + reSpec = new PhysicalResourceSpecification(); + }else { + reSpec = new LogicalResourceSpecification(); + } + + return addResourceSpecificationGeneric(reSpec, resourceSpecification); + } + + public LogicalResourceSpecification addLogicalResourceSpecification(@Valid ResourceSpecificationCreate logicalResourceSpec) { + LogicalResourceSpecification reSpec = new LogicalResourceSpecification(); + + return (LogicalResourceSpecification) addResourceSpecificationGeneric(reSpec, logicalResourceSpec); + } + + + public LogicalResourceSpecification addResourceFunctionSpecification(@Valid ResourceFunctionSpecificationCreate serviceSpecification) { + ResourceFunctionSpecification reSpec = new ResourceFunctionSpecification(); + + return (ResourceFunctionSpecification) addResourceSpecificationGeneric(reSpec, serviceSpecification); + } + + + + public PhysicalResourceSpecification addPhysicalResourceSpecification(@Valid PhysicalResourceSpecificationCreate pResourceSpec) { + PhysicalResourceSpecification reSpec = new PhysicalResourceSpecification(); + + return (PhysicalResourceSpecification) addResourceSpecificationGeneric(reSpec, pResourceSpec); + } + + private ResourceSpecification addResourceSpecificationGeneric(ResourceSpecification reSpec, @Valid ResourceSpecificationUpdate resourceSpecification) { + + reSpec = this.updateResourceSpecDataFromAPIcall(reSpec, resourceSpecification); + reSpec = this.resourceSpecificationRepo.save(reSpec); + reSpec.fixResourceCharRelationhsipIDs(); + + /* + * automatically create resource candidate + */ + + ResourceCandidateCreate rCandidate = new ResourceCandidateCreate(); + ResourceSpecificationRef rSpecRef = new ResourceSpecificationRef(); + rCandidate.setResourceSpecification(rSpecRef ); + rSpecRef.setId( reSpec.getId() ); + ResourceCandidate resCand = resCandidateRepoService.addResourceCandidate(rCandidate); + reSpec.setResourceCandidateObjId( resCand.getUuid() ); + + return this.resourceSpecificationRepo.save(reSpec); + } + + + public List findAll(@Valid String fields) { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + List alist = null; + try { + + String sql = "SELECT " + + "s.uuid as uuid," + + "s.id as id," + + "s.name as name," + + "s.description as description," + + "s.category as category," + + "s.version as version," + + "s.type as type"; + + if (fields != null) { + String[] field = fields.split(","); + for (String f : field) { + sql += ", s." + f + " as " + f ; + } + + } + sql += " FROM ResSpec s"; + + + sql += " ORDER BY s.name"; + + + + List mapaEntity = session + .createQuery(sql ) + .setResultTransformer( new ResultTransformer() { + + @Override + public Object transformTuple(Object[] tuple, String[] aliases) { + Map result = new LinkedHashMap(tuple.length); + for (int i = 0; i < tuple.length; i++) { + String alias = aliases[i]; + if (alias.equals("type")) { + alias = "@type"; + } + if (alias != null) { + result.put(alias, tuple[i]); + } + } + + return result; + } + + @Override + public List transformList(List collection) { + return collection; + } + } ) + .list(); + + + + + + return mapaEntity; + + + + + } finally { + tx.commit(); + session.close(); + } + } + + + public List findAll() { + return (List) this.resourceSpecificationRepo.findAll(); + } + + public List findAllLogical() { + return (List) this.resourceSpecificationRepo.findAllLogical(); + } + + public List findAllPhysical() { + return (List) this.resourceSpecificationRepo.findAllPhysical(); + } + + public ResourceSpecification findByUuid(String id) { + Optional optionalCat = this.resourceSpecificationRepo.findByUuid( id ); + return optionalCat + .orElse(null); + } + + @Transactional + public ResourceSpecification findByUuidEager(String id) { + + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); // instead of begin transaction, is it possible to continue? + try { + ResourceSpecification dd = null; + try { + dd = session.get(ResourceSpecification.class, id); + if (dd == null) { + return this.findByUuid(id);// last resort + } + Hibernate.initialize(dd.getAttachment()); + Hibernate.initialize(dd.getRelatedParty()); + Hibernate.initialize(dd.getFeatureSpecification()); + Hibernate.initialize(dd.getResourceSpecCharacteristic()); + for (ResourceSpecificationCharacteristic schar : dd.getResourceSpecCharacteristic()) { + Hibernate.initialize(schar.getResourceSpecCharacteristicValue()); + Hibernate.initialize(schar.getResourceSpecCharRelationship()); + + } + Hibernate.initialize(dd.getResourceSpecRelationship()); + + tx.commit(); + } finally { + session.close(); + } + return dd; + + } catch (Exception e) { + e.printStackTrace(); + } + + session.close(); + return null; + + + } + + @Transactional + public ResourceSpecification findByNameAndCategoryEager(String aname, String acategory) { + + List optionalCat = this.resourceSpecificationRepo.findByNameAndCategory(aname, acategory); + + if ( optionalCat.size() >0 ) { + return findByUuidEager( optionalCat.get(0).getUuid() ); + } + + return null; + } + + @Transactional + public ResourceSpecification findByNameAndCategoryAndVersionEager(String aname, String acategory, String aversion) { + + List optionalCat = this.resourceSpecificationRepo.findByNameAndCategoryAndVersion(aname, acategory, aversion); + + if ( optionalCat.size() >0 ) { + return findByUuidEager( optionalCat.get(0).getUuid() ); + } + + return null; + } + + + @Transactional + public ResourceSpecification addOrupdateResourceSpecificationByNameCategoryVersion(String aname, String acategory, String aversion, ResourceSpecificationCreate aesourceCreate) { + + List rspecs = this.resourceSpecificationRepo.findByNameAndCategoryAndVersion(aname, acategory, aversion); + ResourceSpecification result = null; + + + if ( rspecs.size() >0 ) { + //perform update to the first one + String resID = rspecs.get(0).getUuid(); + result = this.updateResourceSpecification(resID, aesourceCreate); + } else { + result = this.addResourceSpecification(aesourceCreate); + } + + ObjectMapper mapper = new ObjectMapper(); + try { + String originaServiceAsJson = mapper.writeValueAsString( result ); + logger.debug(originaServiceAsJson); + } catch (JsonProcessingException e) { + logger.error("cannot umarshall service: " + result.getName() ); + e.printStackTrace(); + } + + return result; + } + + + public Void deleteByUuid(String id) { + Optional optionalCat = this.resourceSpecificationRepo.findByUuid(id); + ResourceSpecification s = optionalCat.get(); + if (s == null) { + return null; + } + + this.resCandidateRepoService.deleteById( s.getResourceCandidateObjId() ); + + this.resourceSpecificationRepo.delete( s ); + return null; + } + + + public ResourceSpecification updateResourceSpecification(String id, + @Valid ResourceSpecificationUpdate serviceResourceSpecification) { + + Optional s = this.resourceSpecificationRepo.findByUuid(id); + if ( s.get() == null ) { + return null; + } + ResourceSpecification resourceSpec = s.get(); + resourceSpec = this.updateResourceSpecDataFromAPIcall(resourceSpec, serviceResourceSpecification); + + resourceSpec = this.resourceSpecificationRepo.save( resourceSpec ); + resourceSpec.fixResourceCharRelationhsipIDs(); + resourceSpec = this.resourceSpecificationRepo.save( resourceSpec ); + + + //save the equivalent candidate + ResourceCandidate resCandidateObj = resCandidateRepoService.findById( resourceSpec.getResourceCandidateObjId() ); + if ( resCandidateObj!=null) { + ResourceCandidateUpdate resCandidateUpd = new ResourceCandidateUpdate(); + resCandidateUpd.setName( resourceSpec.getName() ); + resCandidateUpd.setDescription( resourceSpec.getDescription() ); + resCandidateUpd.setLifecycleStatus( resourceSpec.getLifecycleStatus() ); + resCandidateUpd.setVersion( resourceSpec.getVersion() ); + resCandidateRepoService.updateCandidate( resCandidateObj.getId(), resCandidateUpd); + } else { + ResourceCandidateCreate rCandidate = new ResourceCandidateCreate(); + ResourceSpecificationRef rSpecRef = new ResourceSpecificationRef(); + rCandidate.setResourceSpecification(rSpecRef); + rSpecRef.setId( resourceSpec.getId()); + resCandidateObj = resCandidateRepoService.addResourceCandidate(rCandidate); + resourceSpec.setResourceCandidateObjId(resCandidateObj.getUuid()); + } + + + return this.resourceSpecificationRepo.save( resourceSpec ); + + } + + public LogicalResourceSpecification updateLogicalResourceSpecSpecification(String id, + @Valid ResourceSpecificationUpdate logicalResourceSpec) { + return (LogicalResourceSpecification) this.updateResourceSpecification(id, logicalResourceSpec); + } + + public PhysicalResourceSpecification updatePhysicalResourceSpecSpecification(String id, + @Valid ResourceSpecificationUpdate physicalResourceSpec) { + return (PhysicalResourceSpecification) this.updateResourceSpecification(id, physicalResourceSpec); + } + + + + private ResourceSpecification updateResourceSpecDataFromAPIcall( + ResourceSpecification resourceSpec, + ResourceSpecificationUpdate resSpecUpd ) + { + if ( resSpecUpd.getName()!=null ) { + resourceSpec.setName(resSpecUpd.getName()); + } + + if ( resSpecUpd.getDescription()!= null ) { + resourceSpec.setDescription( resSpecUpd.getDescription() ); + } + if ( resSpecUpd.isIsBundle() != null ) { + resourceSpec.setIsBundle( resSpecUpd.isIsBundle() ); + } + if ( resSpecUpd.getCategory()!= null ) { + resourceSpec.setCategory( resSpecUpd.getCategory() ); + } + + resourceSpec.setLastUpdate( OffsetDateTime.now(ZoneOffset.UTC) ); + + if (resourceSpec instanceof PhysicalResourceSpecification){ + ((PhysicalResourceSpecification) resourceSpec) + .model(( (PhysicalResourceSpecificationUpdate) resSpecUpd ).getModel() ) + .part( ( (PhysicalResourceSpecificationUpdate) resSpecUpd ).getPart()) + .sku( ( (PhysicalResourceSpecificationUpdate) resSpecUpd ).getSku()) + .vendor(( (PhysicalResourceSpecificationUpdate) resSpecUpd ).getVendor() ); + } + + + if ( resSpecUpd.getLifecycleStatus() != null ) { + resourceSpec.setLifecycleStatusEnum ( ELifecycle.getEnum( resSpecUpd.getLifecycleStatus() ) ); + } + if ( resSpecUpd.getVersion() != null ) { + resourceSpec.setVersion( resSpecUpd.getVersion()); + } + + + /** + * Update Attachment list + */ + if (resSpecUpd.getAttachment() != null ){ + //reattach attachments fromDB + + Map idAddedUpdated = new HashMap<>(); + + for (AttachmentRefOrValue ar : resSpecUpd.getAttachment()) { + //find attachmet by id and reload it here. + //we need the attachment model from resource spec models + boolean idexists = false; + for (AttachmentRefOrValue orinalAtt : resourceSpec.getAttachment()) { + if ( orinalAtt.getId().equals(ar.getId())) { + idexists = true; + idAddedUpdated.put( orinalAtt.getId(), true); + break; + } + } + + if (!idexists) { + resourceSpec.getAttachment().add(ar); + idAddedUpdated.put( ar.getId(), true); + } + } + + List toRemove = new ArrayList<>(); + for (AttachmentRefOrValue ss : resourceSpec.getAttachment()) { + if ( idAddedUpdated.get( ss.getId() ) == null ) { + toRemove.add(ss); + } + } + + for (AttachmentRefOrValue ar : toRemove) { + resourceSpec.getAttachment().remove(ar); + } + + + + } + + + + /** + * Update ResourceSpecificationCharacteristic list + * We need to compare by name, since IDs will not exist + */ + if (resSpecUpd.getResourceSpecificationCharacteristic() != null ){ + //reattach attachments fromDB + + Map idAddedUpdated = new HashMap<>(); + + for (ResourceSpecificationCharacteristic charUpd : resSpecUpd.getResourceSpecificationCharacteristic()) { + + boolean nameExists = false; + for (ResourceSpecificationCharacteristic originalSpecChar : resourceSpec.getResourceSpecCharacteristic()) { + if ( originalSpecChar.getName()!=null && charUpd.getName()!=null && originalSpecChar.getName().equals(charUpd.getName())) { + nameExists = true; + idAddedUpdated.put( originalSpecChar.getName(), true); + originalSpecChar.updateWith( charUpd ); + break; + } + } + + if (!nameExists) { + resourceSpec.getResourceSpecCharacteristic().add( new ResourceSpecificationCharacteristic( charUpd )); + if ( charUpd.getName() == null ) { + charUpd.setName( UUID.randomUUID().toString() ); + } + idAddedUpdated.put( charUpd.getName(), true); + } + + } + + List toRemove = new ArrayList<>(); + for (ResourceSpecificationCharacteristic ss : resourceSpec.getResourceSpecCharacteristic()) { + if ( idAddedUpdated.get( ss.getName() ) == null ) { + toRemove.add(ss); + } + } + + for (ResourceSpecificationCharacteristic pecCharacteristic : toRemove) { + resourceSpec.getResourceSpecCharacteristic().remove(pecCharacteristic); + } + + + } + + + /** + * Update ResourceSpecRelationship list + */ + + if (resSpecUpd.getResourceSpecificationRelationship() != null ){ + resourceSpec.getResourceSpecRelationship().clear(); + resourceSpec.getResourceSpecRelationship().addAll( resSpecUpd.getResourceSpecificationRelationship() ); + } + + /** + * Update RelatedParty list + */ + if (resSpecUpd.getRelatedParty() != null ){ + resourceSpec.getRelatedParty().clear(); + resourceSpec.getRelatedParty().addAll( resSpecUpd.getRelatedParty() ); + } + + + + + TimePeriod tp = new TimePeriod(); + if ( resSpecUpd.getValidFor() != null ){ + tp.setStartDateTime( resSpecUpd.getValidFor().getStartDateTime() ); + tp.setEndDateTime( resSpecUpd.getValidFor().getEndDateTime() ); + } + resourceSpec.setValidFor( tp ); + + return resourceSpec; + } + + public ResourceSpecification initRepo() { + + ResourceSpecificationCreate spec = new ResourceSpecificationCreate(); + spec.setName("Example Logical Resource"); + spec.setVersion("1.0.0"); + + return this.addLogicalResourceSpecification(spec); + } + + /** + * @param id + * @param attachment + * @param afile + * @return + */ + public ResourceSpecification addAttachmentToResourceSpec(String id, + @Valid MultipartFile afile, + String urlpath) { + Optional s = this.resourceSpecificationRepo.findByUuid(id); + if ( s.get() == null ) { + return null; + } + + + + ResourceSpecification spec = s.get(); + Attachment att = new Attachment(); + att = this.attachmentRepoService.addAttachment(att); + att.setMimeType(afile.getContentType()); + + String tempDir = METADATADIR + spec.getId() + "/attachments/" + att.getId() + File.separator; + + + try { + Files.createDirectories(Paths.get(tempDir)); + String aFileNamePosted = afile.getOriginalFilename() ;// AttachmentUtil.getFileName(image.getHeaders()); + logger.info("aFileNamePosted = " + aFileNamePosted); + // If there is an icon name + if (!aFileNamePosted.equals("")) { + // Save the icon File + String targetfile = AttachmentUtil.saveFile(afile, tempDir + aFileNamePosted); + logger.info("afile saved to = " + targetfile); + att.setContent(targetfile); + att.setMimeType( afile.getContentType() ); + att.setName(aFileNamePosted); + // Save the file destination + urlpath = urlpath.replace("tmf-api/", ""); + +// if ( spec instanceof LogicalResourceSpecification ) { +// att.setUrl( urlpath + "/logicalResourceSpec/" + spec.getId() + "/attachment/" + att.getId() + "/"+ aFileNamePosted); +// }if ( spec instanceof PhysicalResourceSpecification ) { +// att.setUrl( urlpath + "/physicalResourceSpec/" + spec.getId() + "/attachment/" + att.getId() + "/"+ aFileNamePosted); +// }else { +// att.setUrl( urlpath + "/resourceSpecification/" + spec.getId() + "/attachment/" + att.getId() + "/"+ aFileNamePosted); +// } + + att.setUrl( urlpath + "/" + att.getId() + "/" + + aFileNamePosted); + + + att = this.attachmentRepoService.updateAttachment( att ); + } + } catch (IOException e) { + e.printStackTrace(); + return null; + } + + + AttachmentRefOrValue attref = new AttachmentRefOrValue(); + attref.setId(att.getId()); + attref.setDescription(att.getDescription()); + attref.setUrl(att.getUrl()); + attref.setName(att.getName()); + + spec.addAttachmentItem(attref); + this.resourceSpecificationRepo.save(spec); + return spec; + } + + public Attachment getAttachmentLogo(String id, String attid) { + ResourceSpecification spec = this.findByUuid( id ); + for (AttachmentRefOrValue att : spec.getAttachment()) { + if ( att.getName().contains("logo")) { + return this.attachmentRepoService.findByUuid( att.getId() ); + } + } + + return null; + } + + public Attachment getAttachment(String attid) { + return this.attachmentRepoService.findByUuid( attid ); + } + + + private PhysicalResourceSpecificationCreate readFromLocalPhysicalResourceSpec(String rname) { + PhysicalResourceSpecificationCreate rc; + try { + + rc = objectMapper.readValue(new ClassPathResource( "/resourceSpecifications/"+rname ).getInputStream(), PhysicalResourceSpecificationCreate.class); + + return rc; + } catch (IOException e) { + e.printStackTrace(); + } + + return null; + } + + public ResourceSpecificationCreate readFromLocalLogicalResourceSpec(String rname) { + ResourceSpecificationCreate rc; + try { + + rc = objectMapper.readValue(new ClassPathResource( "/resourceSpecifications/"+rname ).getInputStream(), ResourceSpecificationCreate.class); + + return rc; + } catch (IOException e) { + e.printStackTrace(); + } + + return null; + } + + + public ResourceSpecification clonePhysicalResourceSpec() { + return this.clonePhysicalResourceSpec(null); + } + + + public ResourceSpecification clonePhysicalResourceSpec(String specName) { + + ResourceSpecification resourceSpecificationObj = clonePhysicalResourceSpec( specName , "testResourceSpec.json" ); + return resourceSpecificationObj; + } + + public ResourceSpecification clonePhysicalResourceSpec(String specName, String fileName) { + + PhysicalResourceSpecificationCreate resourceSpecificationObj = readFromLocalPhysicalResourceSpec( fileName ); + resourceSpecificationObj.setName(specName); + ResourceSpecification rSpec = this.addPhysicalResourceSpecification(resourceSpecificationObj); + return rSpec; + } + + public ResourceSpecification cloneLogicalResourceSpec() { + return this.cloneLogicalResourceSpec(null); + } + + + public ResourceSpecification cloneLogicalResourceSpec(String specName) { + ResourceSpecification resourceSpecificationObj = cloneLogicalResourceSpec(specName, "testResourceSpec.json"); + return resourceSpecificationObj; + } + + public ResourceSpecification cloneLogicalResourceSpec(String specName, String fileName) { + + ResourceSpecificationCreate resourceSpecificationObj = readFromLocalLogicalResourceSpec( fileName ); + resourceSpecificationObj.setName(specName); + ResourceSpecification rSpec = this.addLogicalResourceSpecification(resourceSpecificationObj); + return rSpec; + } + + public ResourceSpecification findByNameAndVersion(String aname, String aversion) { + + List optionalCat = this.resourceSpecificationRepo.findByNameAndVersion(aname, + aversion); + if ( ( optionalCat !=null) && ( optionalCat.size()>0) ) { + return optionalCat.get(0); + } else { + return null; + } + } + + public ResourceSpecification findByName(String aname) { + List optionalCat = this.resourceSpecificationRepo.findByName(aname); + if ( ( optionalCat !=null) && ( optionalCat.size()>0) ) { + return optionalCat.get(0); + } else { + return null; + } + } + + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/api/ApiException.java b/src/main/java/org/etsi/osl/tmf/ri639/api/ApiException.java new file mode 100644 index 0000000..2159957 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/api/ApiException.java @@ -0,0 +1,10 @@ +package org.etsi.osl.tmf.ri639.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/api/ApiOriginFilter.java b/src/main/java/org/etsi/osl/tmf/ri639/api/ApiOriginFilter.java new file mode 100644 index 0000000..942f2f0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/api/ApiOriginFilter.java @@ -0,0 +1,31 @@ +package org.etsi.osl.tmf.ri639.api; + +import java.io.IOException; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +public class ApiOriginFilter implements jakarta.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/api/ApiResponseMessage.java b/src/main/java/org/etsi/osl/tmf/ri639/api/ApiResponseMessage.java new file mode 100644 index 0000000..47a946a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/api/ApiResponseMessage.java @@ -0,0 +1,69 @@ +package org.etsi.osl.tmf.ri639.api; + +import jakarta.xml.bind.annotation.XmlTransient; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@jakarta.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/ri639/api/HubApi.java new file mode 100644 index 0000000..f9d01b0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/api/HubApi.java @@ -0,0 +1,100 @@ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.ri639.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.ri639.model.EventSubscription; +import org.etsi.osl.tmf.ri639.model.EventSubscriptionInput; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@Tag(name = "hub", description = "the hub API") +public interface HubApi { + + Logger log = LoggerFactory.getLogger(HubApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Register a listener", operationId = "registerListener", description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Subscribed" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Unregister a listener", operationId = "unregisterListener", description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method not allowed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/ri639/api/HubApiController.java new file mode 100644 index 0000000..d276265 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/api/HubApiController.java @@ -0,0 +1,37 @@ +package org.etsi.osl.tmf.ri639.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") + +@Controller("HubApiController639") +@RequestMapping("/resourceInventoryManagement/v4/") +public class HubApiController implements HubApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public HubApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/api/ListenerApi.java b/src/main/java/org/etsi/osl/tmf/ri639/api/ListenerApi.java new file mode 100644 index 0000000..f94ce11 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/api/ListenerApi.java @@ -0,0 +1,176 @@ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.ri639.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.ri639.model.EventSubscription; +import org.etsi.osl.tmf.ri639.model.ResourceAttributeValueChangeEvent; +import org.etsi.osl.tmf.ri639.model.ResourceCreateEvent; +import org.etsi.osl.tmf.ri639.model.ResourceDeleteEvent; +import org.etsi.osl.tmf.ri639.model.ResourceStateChangeEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@Tag(name = "listener", description = "the listener API") +public interface ListenerApi { + + Logger log = LoggerFactory.getLogger(ListenerApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Client listener for entity ResourceAttributeValueChangeEvent", operationId = "listenToResourceAttributeValueChangeEvent", description = "Example of a client listener for receiving the notification ResourceAttributeValueChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceAttributeValueChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceAttributeValueChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceAttributeValueChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceCreateEvent", operationId = "listenToResourceCreateEvent", description = "Example of a client listener for receiving the notification ResourceCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceDeleteEvent", operationId = "listenToResourceDeleteEvent", description = "Example of a client listener for receiving the notification ResourceDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceDeleteEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceStateChangeEvent", operationId = "listenToResourceStateChangeEvent", description = "Example of a client listener for receiving the notification ResourceStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceStateChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/api/ListenerApiController.java b/src/main/java/org/etsi/osl/tmf/ri639/api/ListenerApiController.java new file mode 100644 index 0000000..209fda8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/api/ListenerApiController.java @@ -0,0 +1,34 @@ +package org.etsi.osl.tmf.ri639.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@Controller +public class ListenerApiController implements ListenerApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ListenerApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/api/NotFoundException.java b/src/main/java/org/etsi/osl/tmf/ri639/api/NotFoundException.java new file mode 100644 index 0000000..0a2e14a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/api/NotFoundException.java @@ -0,0 +1,10 @@ +package org.etsi.osl.tmf.ri639.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +public class NotFoundException extends ApiException { + private int code; + public NotFoundException (int code, String msg) { + super(code, msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApi.java b/src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApi.java new file mode 100644 index 0000000..36c9a46 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApi.java @@ -0,0 +1,207 @@ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.ri639.api; + +import java.io.IOException; +import java.security.Principal; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.ri639.model.Resource; +import org.etsi.osl.tmf.ri639.model.ResourceCreate; +import org.etsi.osl.tmf.ri639.model.ResourceUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@Tag(name = "resource", description = "the resource API") +public interface ResourceApi { + + Logger log = LoggerFactory.getLogger(ResourceApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a Resource", operationId = "createResource", description = "This operation creates a Resource entity.", tags={ "resource", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resource", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createResource(Principal principal, @Parameter(description = "The Resource to be created" ,required=true ) @Valid @RequestBody ResourceCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"note\" : [ {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"activationFeature\" : [ {\r\n \"isBundle\" : true,\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"featureCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"featureRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n } ]\r\n }, {\r\n \"isBundle\" : true,\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"featureCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"featureRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n } ]\r\n } ],\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ null, null ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"video\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"Photograph of the Product\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"href\" : \"http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"video\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"Photograph of the Product\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"href\" : \"http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"administrativeState\" : \"locked\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ {\r\n \"relationshipType\" : \"bundled\",\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"activationFeature\" : [ null, null ],\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ null, null ],\r\n \"relatedParty\" : [ null, null ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"bundled\",\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"activationFeature\" : [ null, null ],\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ null, null ],\r\n \"relatedParty\" : [ null, null ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"operationalState\" : \"enable\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", Resource.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a Resource", operationId = "deleteResource", description = "This operation deletes a Resource entity.", tags={ "resource", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resource/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteResource(@Parameter(description = "Identifier of the Resource",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find Resource objects", operationId = "listResource", description = "This operation list or find Resource entities" , tags={ "resource", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resource", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listResource(Principal principal, + @Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit, +@Parameter(hidden = true) @Valid @RequestParam Map allParams +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"note\" : [ {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"activationFeature\" : [ {\r\n \"isBundle\" : true,\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"featureCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"featureRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n } ]\r\n }, {\r\n \"isBundle\" : true,\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"featureCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"featureRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n } ]\r\n } ],\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ null, null ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"video\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"Photograph of the Product\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"href\" : \"http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"video\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"Photograph of the Product\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"href\" : \"http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"administrativeState\" : \"locked\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ {\r\n \"relationshipType\" : \"bundled\",\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"activationFeature\" : [ null, null ],\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ null, null ],\r\n \"relatedParty\" : [ null, null ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"bundled\",\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"activationFeature\" : [ null, null ],\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ null, null ],\r\n \"relatedParty\" : [ null, null ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"operationalState\" : \"enable\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}, {\r\n \"note\" : [ {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"activationFeature\" : [ {\r\n \"isBundle\" : true,\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"featureCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"featureRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n } ]\r\n }, {\r\n \"isBundle\" : true,\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"featureCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"featureRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n } ]\r\n } ],\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ null, null ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"video\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"Photograph of the Product\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"href\" : \"http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"video\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"Photograph of the Product\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"href\" : \"http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"administrativeState\" : \"locked\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ {\r\n \"relationshipType\" : \"bundled\",\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"activationFeature\" : [ null, null ],\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ null, null ],\r\n \"relatedParty\" : [ null, null ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"bundled\",\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"activationFeature\" : [ null, null ],\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ null, null ],\r\n \"relatedParty\" : [ null, null ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"operationalState\" : \"enable\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a Resource", operationId = "patchResource", description = "This operation updates partially a Resource entity.", tags={ "resource", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resource/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchResource(Principal principal, + @Parameter(description = "The Resource to be updated" ,required=true ) @Valid @RequestBody ResourceUpdate body +,@Parameter(description = "Identifier of the Resource",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"note\" : [ {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"activationFeature\" : [ {\r\n \"isBundle\" : true,\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"featureCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"featureRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n } ]\r\n }, {\r\n \"isBundle\" : true,\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"featureCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"featureRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n } ]\r\n } ],\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ null, null ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"video\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"Photograph of the Product\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"href\" : \"http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"video\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"Photograph of the Product\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"href\" : \"http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"administrativeState\" : \"locked\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ {\r\n \"relationshipType\" : \"bundled\",\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"activationFeature\" : [ null, null ],\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ null, null ],\r\n \"relatedParty\" : [ null, null ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"bundled\",\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"activationFeature\" : [ null, null ],\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ null, null ],\r\n \"relatedParty\" : [ null, null ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"operationalState\" : \"enable\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", Resource.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a Resource by ID", operationId = "retrieveResource", description = "This operation retrieves a Resource entity. Attribute selection is enabled for all first level attributes.", tags={ "resource", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resource/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveResource(Principal principal, + @Parameter(description = "Identifier of the Resource",required=true) @PathVariable("id") String id +,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"note\" : [ {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"activationFeature\" : [ {\r\n \"isBundle\" : true,\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"featureCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"featureRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n } ]\r\n }, {\r\n \"isBundle\" : true,\r\n \"isEnabled\" : true,\r\n \"name\" : \"name\",\r\n \"featureCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"featureRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"name\" : \"name\",\r\n \"id\" : \"id\"\r\n } ]\r\n } ],\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ null, null ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"video\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"Photograph of the Product\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"href\" : \"http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"video\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"Photograph of the Product\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"href\" : \"http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"administrativeState\" : \"locked\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ {\r\n \"relationshipType\" : \"bundled\",\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"activationFeature\" : [ null, null ],\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ null, null ],\r\n \"relatedParty\" : [ null, null ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"bundled\",\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"activationFeature\" : [ null, null ],\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ null, null ],\r\n \"relatedParty\" : [ null, null ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ null, null ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ null, null ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"operationalState\" : \"enable\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", Resource.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ResourceApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApiController.java b/src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApiController.java new file mode 100644 index 0000000..cf639f1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApiController.java @@ -0,0 +1,128 @@ +package org.etsi.osl.tmf.ri639.api; + +import java.security.Principal; +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.common.model.UserPartRoleType; +import org.etsi.osl.tmf.ri639.model.Resource; +import org.etsi.osl.tmf.ri639.model.ResourceCreate; +import org.etsi.osl.tmf.ri639.model.ResourceUpdate; +import org.etsi.osl.tmf.ri639.reposervices.ResourceRepoService; +import org.etsi.osl.tmf.util.AddUserAsOwnerToRelatedParties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.etsi.osl.model.UserRoleType; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@Controller +@RequestMapping("/resourceInventoryManagement/v4/") +public class ResourceApiController implements ResourceApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + + @Autowired + ResourceRepoService resourceRepoService; + + @org.springframework.beans.factory.annotation.Autowired + public ResourceApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity createResource(Principal principal, @Valid ResourceCreate resource) { + try { + if (SecurityContextHolder.getContext().getAuthentication() != null) { + resource.setRelatedParty(AddUserAsOwnerToRelatedParties.addUser(principal.getName(), principal.getName(), + UserPartRoleType.REQUESTER, "", resource.getRelatedParty())); + + Resource c = resourceRepoService.addResource(resource); + + return new ResponseEntity(c, HttpStatus.OK); + } else { + + return new ResponseEntity(HttpStatus.FORBIDDEN); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity deleteResource(String id) { + try { + + return new ResponseEntity( resourceRepoService.deleteByUuid(id), HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity> listResource(Principal principal, @Valid String fields, @Valid Integer offset, + @Valid Integer limit, + Map allParams) { + try { + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + + + + if ( authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_ADMIN.getValue() ) ) ) { + return new ResponseEntity>( resourceRepoService.findAll( fields, allParams), HttpStatus.OK); + + }else { + return new ResponseEntity>( resourceRepoService.findAll( principal.getName(), UserPartRoleType.REQUESTER ), HttpStatus.OK); + + } + + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity patchResource(Principal principal, @Valid ResourceUpdate resource, String id) { + Resource c = resourceRepoService.updateResource(id, resource, true); + + return new ResponseEntity< Resource >(c, HttpStatus.OK); + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity retrieveResource(Principal principal, String id, @Valid String fields) { + try { + + return new ResponseEntity( resourceRepoService.findByUuid(id), HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApiRouteBuilder.java new file mode 100644 index 0000000..17f3ec5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApiRouteBuilder.java @@ -0,0 +1,122 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.ri639.api; + +import java.io.IOException; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.camel.LoggingLevel; +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.model.dataformat.JsonLibrary; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.ri639.model.ResourceCreate; +import org.etsi.osl.tmf.ri639.model.ResourceUpdate; +import org.etsi.osl.tmf.ri639.reposervices.ResourceRepoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +@Configuration +//@RefreshScope +@Component +public class ResourceApiRouteBuilder extends RouteBuilder { + + private static final transient Log logger = LogFactory.getLog(ResourceApiRouteBuilder.class.getName()); + + + @Value("${CATALOG_ADD_RESOURCE}") + private String CATALOG_ADD_RESOURCE = ""; + + @Value("${CATALOG_UPD_RESOURCE}") + private String CATALOG_UPD_RESOURCE = ""; + + @Value("${CATALOG_UPDADD_RESOURCE}") + private String CATALOG_UPDADD_RESOURCE = ""; + + @Value("${CATALOG_GET_RESOURCE_BY_ID}") + private String CATALOG_GET_RESOURCE_BY_ID = ""; + + + + @Value("${CATALOG_RESOURCES_OF_PARTNERS}") + private String CATALOG_RESOURCES_OF_PARTNERS = ""; + + + @Autowired + private ProducerTemplate template; + + @Autowired + ResourceRepoService resourceRepoService; + + @Override + public void configure() throws Exception { + + from( CATALOG_ADD_RESOURCE ) + .log(LoggingLevel.INFO, log, CATALOG_ADD_RESOURCE + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, ResourceCreate.class, true) + .bean( resourceRepoService, "addResource(${body})") + .marshal() + .json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + from( CATALOG_GET_RESOURCE_BY_ID ) + .log(LoggingLevel.INFO, log, CATALOG_GET_RESOURCE_BY_ID + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean( resourceRepoService, "getResourceEagerAsString") + .convertBodyTo( String.class ); + + from( CATALOG_UPD_RESOURCE ) + .log(LoggingLevel.INFO, log, CATALOG_UPD_RESOURCE + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, ResourceUpdate.class, true) + .bean( resourceRepoService, "updateResource(${header.resourceId}, ${body}, ${header.propagateToSO} )") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + from( CATALOG_RESOURCES_OF_PARTNERS ) + .log(LoggingLevel.INFO, log, CATALOG_RESOURCES_OF_PARTNERS + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean( resourceRepoService, "findAllActiveAndReservedResourcesOfPartners") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + from( CATALOG_UPDADD_RESOURCE ) + .log(LoggingLevel.INFO, log, CATALOG_UPDADD_RESOURCE + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, ResourceCreate.class, true) + .bean( resourceRepoService, "addOrUpdateResourceByNameCategoryVersion(${header.aname},${header.acategory}, ${header.aversion}, ${body})") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + } + + + static String toJsonString(Object object) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.writeValueAsString(object); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApiRouteBuilderEvents.java b/src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApiRouteBuilderEvents.java new file mode 100644 index 0000000..df57d1f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/api/ResourceApiRouteBuilderEvents.java @@ -0,0 +1,109 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.ri639.api; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.common.model.Notification; +import org.etsi.osl.tmf.ri639.model.ResourceAttributeValueChangeNotification; +import org.etsi.osl.tmf.ri639.model.ResourceCreateNotification; +import org.etsi.osl.tmf.ri639.model.ResourceStateChangeNotification; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +@Configuration +// @RefreshScope +@Component +public class ResourceApiRouteBuilderEvents extends RouteBuilder { + + private static final transient Log logger = + LogFactory.getLog(ResourceApiRouteBuilderEvents.class.getName()); + + + + @Value("${EVENT_RESOURCE_CREATE}") + private String EVENT_RESOURCE_CREATE = ""; + + @Value("${EVENT_RESOURCE_STATE_CHANGED}") + private String EVENT_RESOURCE_STATE_CHANGED = ""; + + @Value("${EVENT_RESOURCE_DELETE}") + private String EVENT_RESOURCE_DELETE = ""; + + @Value("${EVENT_RESOURCE_ATTRIBUTE_VALUE_CHANGED}") + private String EVENT_RESOURCE_ATTRIBUTE_VALUE_CHANGED = ""; + + + @Autowired + private ProducerTemplate template; + + + @Override + public void configure() throws Exception { + + } + + + /** + * @param n + */ + public void publishEvent(final Notification n, final String objId) { + n.setEventType(n.getClass().getName()); + logger.info("will send Event topic for type " + n.getEventType()); + try { + String msgtopic = ""; + + if (n instanceof ResourceCreateNotification) { + msgtopic = EVENT_RESOURCE_CREATE; + } else if (n instanceof ResourceAttributeValueChangeNotification) { + msgtopic = EVENT_RESOURCE_ATTRIBUTE_VALUE_CHANGED; + }else if (n instanceof ResourceStateChangeNotification ) { + msgtopic = EVENT_RESOURCE_STATE_CHANGED; + } + + Map map = new HashMap<>(); + map.put("eventid", n.getEventId()); + map.put("objId", objId); + + template.sendBodyAndHeaders(msgtopic, toJsonString(n), map); + + } catch (Exception e) { + logger.error("Cannot send Event . " + e.getStackTrace()); + } + } + + static String toJsonString(Object object) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.writeValueAsString(object); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/Addressable.java b/src/main/java/org/etsi/osl/tmf/ri639/model/Addressable.java new file mode 100644 index 0000000..816b2a6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/Addressable.java @@ -0,0 +1,78 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * Base schema for adressable entities + */ +@Schema(description = "Base schema for adressable entities") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@Entity(name = "RIAddressable") +public class Addressable extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + + public Addressable id(String id) { + this.id = id; + return this; + } + + /** + * unique identifier + * + * @return id + **/ + @Schema(description = "unique identifier") + public String getId() { + id = uuid; + return uuid; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Addressable addressable = (Addressable) o; + return Objects.equals(this.id, addressable.id) && Objects.equals(this.href, addressable.href); + } + + @Override + public int hashCode() { + return Objects.hash(id, href); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Addressable {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/Characteristic.java b/src/main/java/org/etsi/osl/tmf/ri639/model/Characteristic.java new file mode 100644 index 0000000..9d97db8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/Characteristic.java @@ -0,0 +1,198 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Describes a given characteristic of an object or entity through a name/value + * pair. + */ +@Schema(description = "Describes a given characteristic of an object or entity through a name/value pair.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@Entity(name = "RICharacteristic") +public class Characteristic extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("characteristicRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set characteristicRelationship = new HashSet<>(); + + @JsonProperty("value") + private Any value = null; + + + + /** + * Unique identifier of the characteristic + * + * @return id + **/ + @Schema(description = "Unique identifier of the characteristic") + public String getId() { + id = uuid; + return uuid; + } + + public Characteristic name(String name) { + this.name = name; + return this; + } + + /** + * Name of the characteristic + * + * @return name + **/ + @Schema(description = "Name of the characteristic") + @NotNull + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Characteristic valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * Data type of the value of the characteristic + * + * @return valueType + **/ + @Schema(description = "Data type of the value of the characteristic") + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public Characteristic characteristicRelationship( Set characteristicRelationship) { + this.characteristicRelationship = characteristicRelationship; + return this; + } + + public Characteristic addCharacteristicRelationshipItem(CharacteristicRelationship characteristicRelationshipItem) { + if (this.characteristicRelationship == null) { + this.characteristicRelationship = new HashSet<>(); + } + this.characteristicRelationship.add(characteristicRelationshipItem); + return this; + } + + /** + * Get characteristicRelationship + * + * @return characteristicRelationship + **/ + @Schema(description = "") + @Valid + public Set getCharacteristicRelationship() { + return characteristicRelationship; + } + + public void setCharacteristicRelationship( Set characteristicRelationship) { + this.characteristicRelationship = characteristicRelationship; + } + + public Characteristic value(Any value) { + this.value = value; + return this; + } + + /** + * Get value + * + * @return value + **/ + @Schema(description = "") + @NotNull + + @Valid + public Any getValue() { + return value; + } + + public void setValue(Any value) { + this.value = value; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Characteristic characteristic = (Characteristic) o; + return Objects.equals(this.id, characteristic.id) && Objects.equals(this.name, characteristic.name) + && Objects.equals(this.valueType, characteristic.valueType) + && Objects.equals(this.characteristicRelationship, characteristic.characteristicRelationship) + && Objects.equals(this.value, characteristic.value) + && Objects.equals(this.baseType, characteristic.baseType) + && Objects.equals(this.schemaLocation, characteristic.schemaLocation) + && Objects.equals(this.type, characteristic.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, name, valueType, characteristicRelationship, value, baseType, schemaLocation, + type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Characteristic {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" characteristicRelationship: ").append(toIndentedString(characteristicRelationship)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/CharacteristicRelationship.java b/src/main/java/org/etsi/osl/tmf/ri639/model/CharacteristicRelationship.java new file mode 100644 index 0000000..b256324 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/CharacteristicRelationship.java @@ -0,0 +1,111 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * Another Characteristic that is related to the current Characteristic; + */ +@Schema(description = "Another Characteristic that is related to the current Characteristic;") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@Entity(name = "RICharacteristicRel") +public class CharacteristicRelationship extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("relationshipType") + private String relationshipType = null; + + public CharacteristicRelationship id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the characteristic + * + * @return id + **/ + @Schema(description = "Unique identifier of the characteristic") + public String getId() { + id = uuid; + return uuid; + } + + + public CharacteristicRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * The type of relationship + * + * @return relationshipType + **/ + @Schema(description = "The type of relationship") + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CharacteristicRelationship characteristicRelationship = (CharacteristicRelationship) o; + return Objects.equals(this.id, characteristicRelationship.id) + && Objects.equals(this.href, characteristicRelationship.href) + && Objects.equals(this.relationshipType, characteristicRelationship.relationshipType) + && Objects.equals(this.baseType, characteristicRelationship.baseType) + && Objects.equals(this.schemaLocation, characteristicRelationship.schemaLocation) + && Objects.equals(this.type, characteristicRelationship.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, relationshipType, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CharacteristicRelationship {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ConstraintRef.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ConstraintRef.java new file mode 100644 index 0000000..2622015 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ConstraintRef.java @@ -0,0 +1,242 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * Constraint reference. The Constraint resource represents a policy/rule + * applied to an entity or entity spec. + */ +@Schema(description = "Constraint reference. The Constraint resource represents a policy/rule applied to an entity or entity spec.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@Entity(name = "RIConstraintRef") +public class ConstraintRef extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("version") + private String version = null; + + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public ConstraintRef id(String id) { + this.id = id; + return this; + } + + /** + * unique identifier + * + * @return id + **/ + @Schema(description = "unique identifier") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ConstraintRef href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink reference + * + * @return href + **/ + @Schema(description = "Hyperlink reference") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ConstraintRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ConstraintRef version(String version) { + this.version = version; + return this; + } + + /** + * constraint version + * + * @return version + **/ + @Schema(description = "constraint version") + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public ConstraintRef _atBaseType(String _atBaseType) { + this.baseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String _atBaseType) { + this.baseType = _atBaseType; + } + + public ConstraintRef _atSchemaLocation(String _atSchemaLocation) { + this.schemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this.schemaLocation = _atSchemaLocation; + } + + public ConstraintRef _atType(String _atType) { + this.type = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class Extensible name + * + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class Extensible name") + + public String getAtType() { + return type; + } + + public void setAtType(String _atType) { + this.type = _atType; + } + + public ConstraintRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ConstraintRef constraintRef = (ConstraintRef) o; + return Objects.equals(this.id, constraintRef.id) && Objects.equals(this.href, constraintRef.href) + && Objects.equals(this.name, constraintRef.name) && Objects.equals(this.version, constraintRef.version) + && Objects.equals(this.baseType, constraintRef.baseType) + && Objects.equals(this.schemaLocation, constraintRef.schemaLocation) + && Objects.equals(this.type, constraintRef.type) + && Objects.equals(this._atReferredType, constraintRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, version, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ConstraintRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/Entity.java b/src/main/java/org/etsi/osl/tmf/ri639/model/Entity.java new file mode 100644 index 0000000..8f78c4e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/Entity.java @@ -0,0 +1,82 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; + + +/** + * Base entity schema for use in TMForum Open-APIs + */ +@Schema(description = "Base entity schema for use in TMForum Open-APIs") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@jakarta.persistence.Entity(name = "RIEntity") +public class Entity extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + + public Entity id(String id) { + this.id = id; + return this; + } + + /** + * unique identifier + * + * @return id + **/ + @Schema(description = "unique identifier") + public String getId() { + id = uuid; + return uuid; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Entity entity = (Entity) o; + return Objects.equals(this.id, entity.id) && Objects.equals(this.href, entity.href) + && Objects.equals(this.baseType, entity.baseType) + && Objects.equals(this.schemaLocation, entity.schemaLocation) + && Objects.equals(this.type, entity.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Entity {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/EntityRef.java b/src/main/java/org/etsi/osl/tmf/ri639/model/EntityRef.java new file mode 100644 index 0000000..045b4bd --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/EntityRef.java @@ -0,0 +1,112 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * Entity reference schema to be use for all entityRef class. + */ +@Schema(description = "Entity reference schema to be use for all entityRef class.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@Entity(name = "RIEntityRef") +public class EntityRef extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + + /** + * unique identifier + * + * @return id + **/ + @Schema(description = "unique identifier") + @NotNull + public String getId() { + id = uuid; + return uuid; + } + + public EntityRef href(String href) { + this.href = href; + return this; + } + + + public EntityRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntityRef entityRef = (EntityRef) o; + return Objects.equals(this.id, entityRef.id) && Objects.equals(this.href, entityRef.href) + && Objects.equals(this.name, entityRef.name) && Objects.equals(this.baseType, entityRef.baseType) + && Objects.equals(this.schemaLocation, entityRef.schemaLocation) + && Objects.equals(this.type, entityRef.type) + && Objects.equals(this._atReferredType, entityRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntityRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/Error.java b/src/main/java/org/etsi/osl/tmf/ri639/model/Error.java new file mode 100644 index 0000000..1d2114c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/Error.java @@ -0,0 +1,249 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx) + */ +@Schema(description = "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +public class Error { + @JsonProperty("code") + private String code = null; + + @JsonProperty("reason") + private String reason = null; + + @JsonProperty("message") + private String message = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("referenceError") + private String referenceError = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public Error code(String code) { + this.code = code; + return this; + } + + /** + * Application relevant detail, defined in the API or a common list. + * @return code + **/ + @Schema(description = "Application relevant detail, defined in the API or a common list.") + @NotNull + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public Error reason(String reason) { + this.reason = reason; + return this; + } + + /** + * Explanation of the reason for the error which can be shown to a client user. + * @return reason + **/ + @Schema(description = "Explanation of the reason for the error which can be shown to a client user.") + @NotNull + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public Error message(String message) { + this.message = message; + return this; + } + + /** + * More details and corrective actions related to the error which can be shown to a client user. + * @return message + **/ + @Schema(description = "More details and corrective actions related to the error which can be shown to a client user.") + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Error status(String status) { + this.status = status; + return this; + } + + /** + * HTTP Error code extension + * @return status + **/ + @Schema(description = "HTTP Error code extension") + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Error referenceError(String referenceError) { + this.referenceError = referenceError; + return this; + } + + /** + * URI of documentation describing the error. + * @return referenceError + **/ + @Schema(description = "URI of documentation describing the error.") + + public String getReferenceError() { + return referenceError; + } + + public void setReferenceError(String referenceError) { + this.referenceError = referenceError; + } + + public Error _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class. + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class.") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public Error _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public Error _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name. + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name.") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Error error = (Error) o; + return Objects.equals(this.code, error.code) && + Objects.equals(this.reason, error.reason) && + Objects.equals(this.message, error.message) && + Objects.equals(this.status, error.status) && + Objects.equals(this.referenceError, error.referenceError) && + Objects.equals(this._atBaseType, error._atBaseType) && + Objects.equals(this._atSchemaLocation, error._atSchemaLocation) && + Objects.equals(this._atType, error._atType); + } + + @Override + public int hashCode() { + return Objects.hash(code, reason, message, status, referenceError, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Error {\n"); + + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" referenceError: ").append(toIndentedString(referenceError)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/ri639/model/EventSubscription.java new file mode 100644 index 0000000..b65cd93 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/EventSubscription.java @@ -0,0 +1,129 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +public class EventSubscription { + @JsonProperty("id") + private String id = null; + + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscription id(String id) { + this.id = id; + return this; + } + + /** + * Id of the listener + * @return id + **/ + @Schema(description = "Id of the listener") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EventSubscription callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscription query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscription eventSubscription = (EventSubscription) o; + return Objects.equals(this.id, eventSubscription.id) && + Objects.equals(this.callback, eventSubscription.callback) && + Objects.equals(this.query, eventSubscription.query); + } + + @Override + public int hashCode() { + return Objects.hash(id, callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscription {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/EventSubscriptionInput.java b/src/main/java/org/etsi/osl/tmf/ri639/model/EventSubscriptionInput.java new file mode 100644 index 0000000..44c566d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/EventSubscriptionInput.java @@ -0,0 +1,104 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +public class EventSubscriptionInput { + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscriptionInput callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscriptionInput query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscriptionInput eventSubscriptionInput = (EventSubscriptionInput) o; + return Objects.equals(this.callback, eventSubscriptionInput.callback) && + Objects.equals(this.query, eventSubscriptionInput.query); + } + + @Override + public int hashCode() { + return Objects.hash(callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscriptionInput {\n"); + + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/Extensible.java b/src/main/java/org/etsi/osl/tmf/ri639/model/Extensible.java new file mode 100644 index 0000000..4cbbddc --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/Extensible.java @@ -0,0 +1,126 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Base Extensible schema for use in TMForum Open-APIs + */ +@Schema(description = "Base Extensible schema for use in TMForum Open-APIs") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +public class Extensible { + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public Extensible _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public Extensible _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public Extensible _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class Extensible name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class Extensible name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Extensible extensible = (Extensible) o; + return Objects.equals(this._atBaseType, extensible._atBaseType) && + Objects.equals(this._atSchemaLocation, extensible._atSchemaLocation) && + Objects.equals(this._atType, extensible._atType); + } + + @Override + public int hashCode() { + return Objects.hash(_atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Extensible {\n"); + + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/Feature.java b/src/main/java/org/etsi/osl/tmf/ri639/model/Feature.java new file mode 100644 index 0000000..bf6ecea --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/Feature.java @@ -0,0 +1,267 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.hibernate.annotations.GenericGenerator; +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * Configuration feature. + */ +@Schema(description = "Configuration feature.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@Entity(name = "RIFeature") +public class Feature { + + @Id + @GeneratedValue(generator = "uuid") + @GenericGenerator(name = "uuid", strategy = "uuid2") + protected String uuid = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("isBundle") + private Boolean isBundle = null; + + @JsonProperty("isEnabled") + private Boolean isEnabled = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("constraint") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set constraint = new HashSet<>(); + + @JsonProperty("featureCharacteristic") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set featureCharacteristic = new HashSet<>(); + + @JsonProperty("featureRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set featureRelationship = new HashSet<>(); + + + /** + * Unique identifier of the feature. + * + * @return id + **/ + @Schema(description = "Unique identifier of the feature.") + public String getId() { + id = uuid; + return uuid; + } + + + public Feature isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * True if this is a feature group. Default is false. + * + * @return isBundle + **/ + @Schema(description = "True if this is a feature group. Default is false.") + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + public Feature isEnabled(Boolean isEnabled) { + this.isEnabled = isEnabled; + return this; + } + + /** + * True if this feature is enabled. Default is true. + * + * @return isEnabled + **/ + @Schema(description = "True if this feature is enabled. Default is true.") + + public Boolean isIsEnabled() { + return isEnabled; + } + + public void setIsEnabled(Boolean isEnabled) { + this.isEnabled = isEnabled; + } + + public Feature name(String name) { + this.name = name; + return this; + } + + /** + * This is the name for the feature. + * + * @return name + **/ + @Schema(description = "This is the name for the feature.") + @NotNull + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Feature constraint( Set constraint) { + this.constraint = constraint; + return this; + } + + public Feature addConstraintItem(ConstraintRef constraintItem) { + if (this.constraint == null) { + this.constraint = new HashSet<>(); + } + this.constraint.add(constraintItem); + return this; + } + + /** + * This is a list of feature constraints. + * + * @return constraint + **/ + @Schema(description = "This is a list of feature constraints.") + @Valid + public Set getConstraint() { + return constraint; + } + + public void setConstraint(Set constraint) { + this.constraint = constraint; + } + + public Feature featureCharacteristic(Set featureCharacteristic) { + this.featureCharacteristic = featureCharacteristic; + return this; + } + + public Feature addFeatureCharacteristicItem(Characteristic featureCharacteristicItem) { + this.featureCharacteristic.add(featureCharacteristicItem); + return this; + } + + /** + * This is a list of Characteristics for a particular feature. + * + * @return featureCharacteristic + **/ + @Schema(description = "This is a list of Characteristics for a particular feature.") + @NotNull + @Valid + @Size(min = 1) + public Set getFeatureCharacteristic() { + return featureCharacteristic; + } + + public void setFeatureCharacteristic(Set featureCharacteristic) { + this.featureCharacteristic = featureCharacteristic; + } + + public Feature featureRelationship(Set featureRelationship) { + this.featureRelationship = featureRelationship; + return this; + } + + public Feature addFeatureRelationshipItem(FeatureRelationship featureRelationshipItem) { + if (this.featureRelationship == null) { + this.featureRelationship = new HashSet<>(); + } + this.featureRelationship.add(featureRelationshipItem); + return this; + } + + /** + * Get featureRelationship + * + * @return featureRelationship + **/ + @Schema(description = "") + @Valid + public Set getFeatureRelationship() { + return featureRelationship; + } + + public void setFeatureRelationship(Set featureRelationship) { + this.featureRelationship = featureRelationship; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Feature feature = (Feature) o; + return Objects.equals(this.id, feature.id) && Objects.equals(this.isBundle, feature.isBundle) + && Objects.equals(this.isEnabled, feature.isEnabled) && Objects.equals(this.name, feature.name) + && Objects.equals(this.constraint, feature.constraint) + && Objects.equals(this.featureCharacteristic, feature.featureCharacteristic) + && Objects.equals(this.featureRelationship, feature.featureRelationship); + } + + @Override + public int hashCode() { + return Objects.hash(id, isBundle, isEnabled, name, constraint, featureCharacteristic, featureRelationship); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Feature {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" isEnabled: ").append(toIndentedString(isEnabled)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" constraint: ").append(toIndentedString(constraint)).append("\n"); + sb.append(" featureCharacteristic: ").append(toIndentedString(featureCharacteristic)).append("\n"); + sb.append(" featureRelationship: ").append(toIndentedString(featureRelationship)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/FeatureRelationship.java b/src/main/java/org/etsi/osl/tmf/ri639/model/FeatureRelationship.java new file mode 100644 index 0000000..2c2e731 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/FeatureRelationship.java @@ -0,0 +1,136 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Configuration feature + */ +@Schema(description = "Configuration feature") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@Entity(name = "RIFeatureRel") +public class FeatureRelationship extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + public FeatureRelationship id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the target feature. + * @return id + **/ + @Schema(description = "Unique identifier of the target feature.") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + + + public FeatureRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * This is the type of the feature relationship. + * @return relationshipType + **/ + @Schema(description = "This is the type of the feature relationship.") + @NotNull + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public FeatureRelationship validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FeatureRelationship featureRelationship = (FeatureRelationship) o; + return Objects.equals(this.id, featureRelationship.id) && + Objects.equals(this.name, featureRelationship.name) && + Objects.equals(this.relationshipType, featureRelationship.relationshipType) && + Objects.equals(this.validFor, featureRelationship.validFor); + } + + @Override + public int hashCode() { + return Objects.hash(id, name, relationshipType, validFor); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FeatureRelationship {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/LogicalResource.java b/src/main/java/org/etsi/osl/tmf/ri639/model/LogicalResource.java new file mode 100644 index 0000000..4c14c7a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/LogicalResource.java @@ -0,0 +1,130 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * Logic resource is a type of resource that describes the common set of attributes shared by all concrete logical resources (e.g. TPE, MSISDN, IP Addresses) in the inventory. + */ +@Schema(description = "Logic resource is a type of resource that describes the common set of attributes shared by all concrete logical resources (e.g. TPE, MSISDN, IP Addresses) in the inventory.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@Entity(name = "RILogicalRes") +public class LogicalResource extends Resource { + + + @JsonProperty("value") + private String value = null; + + + public LogicalResource value(String value) { + this.value = value; + return this; + } + + /** + * the value of the logical resource. E.g '0746712345' for MSISDN's + * @return value + **/ + @Schema(description = "the value of the logical resource. E.g '0746712345' for MSISDN's") + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LogicalResource logicalResource = (LogicalResource) o; + return Objects.equals(this.id, logicalResource.id) && + Objects.equals(this.href, logicalResource.href) && + Objects.equals(this.category, logicalResource.category) && + Objects.equals(this.description, logicalResource.description) && + Objects.equals(this.endOperatingDate, logicalResource.endOperatingDate) && + Objects.equals(this.name, logicalResource.name) && + Objects.equals(this.resourceVersion, logicalResource.resourceVersion) && + Objects.equals(this.startOperatingDate, logicalResource.startOperatingDate) && + Objects.equals(this.value, logicalResource.value) && + Objects.equals(this.activationFeature, logicalResource.activationFeature) && + Objects.equals(this.administrativeState, logicalResource.administrativeState) && + Objects.equals(this.attachment, logicalResource.attachment) && + Objects.equals(this.note, logicalResource.note) && + Objects.equals(this.operationalState, logicalResource.operationalState) && + Objects.equals(this.place, logicalResource.place) && + Objects.equals(this.relatedParty, logicalResource.relatedParty) && + Objects.equals(this.resourceCharacteristic, logicalResource.resourceCharacteristic) && + Objects.equals(this.resourceRelationship, logicalResource.resourceRelationship) && + Objects.equals(this.resourceSpecification, logicalResource.resourceSpecification) && + Objects.equals(this.resourceStatus, logicalResource.resourceStatus) && + Objects.equals(this.usageState, logicalResource.usageState) && + Objects.equals(this.baseType, logicalResource.baseType) && + Objects.equals(this.schemaLocation, logicalResource.schemaLocation) && + Objects.equals(this.type, logicalResource.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, category, description, endOperatingDate, name, resourceVersion, startOperatingDate, value, activationFeature, administrativeState, attachment, note, operationalState, place, relatedParty, resourceCharacteristic, resourceRelationship, resourceSpecification, resourceStatus, usageState, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LogicalResource {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" endOperatingDate: ").append(toIndentedString(endOperatingDate)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" resourceVersion: ").append(toIndentedString(resourceVersion)).append("\n"); + sb.append(" startOperatingDate: ").append(toIndentedString(startOperatingDate)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" activationFeature: ").append(toIndentedString(activationFeature)).append("\n"); + sb.append(" administrativeState: ").append(toIndentedString(administrativeState)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" note: ").append(toIndentedString(note)).append("\n"); + sb.append(" operationalState: ").append(toIndentedString(operationalState)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" resourceCharacteristic: ").append(toIndentedString(resourceCharacteristic)).append("\n"); + sb.append(" resourceRelationship: ").append(toIndentedString(resourceRelationship)).append("\n"); + sb.append(" resourceSpecification: ").append(toIndentedString(resourceSpecification)).append("\n"); + sb.append(" resourceStatus: ").append(toIndentedString(resourceStatus)).append("\n"); + sb.append(" usageState: ").append(toIndentedString(usageState)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/PhysicalResource.java b/src/main/java/org/etsi/osl/tmf/ri639/model/PhysicalResource.java new file mode 100644 index 0000000..d940c29 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/PhysicalResource.java @@ -0,0 +1,274 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; + +/** + * Physical resource is a type of resource that describes the common set of + * attributes shared by all concrete physical resources (e.g. EQUIPMENT) in the + * inventory. + */ +@Schema(description = "Physical resource is a type of resource that describes the common set of attributes shared by all concrete physical resources (e.g. EQUIPMENT) in the inventory.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@Entity(name = "RIPhysicalRes") +public class PhysicalResource extends Resource { + + private OffsetDateTime manufactureDate = null; + + @JsonProperty("powerState") + private String powerState = null; + + @JsonProperty("serialNumber") + private String serialNumber = null; + + @JsonProperty("versionNumber") + private String versionNumber = null; + + public PhysicalResource manufactureDate(OffsetDateTime manufactureDate) { + this.manufactureDate = manufactureDate; + return this; + } + + /** + * This is a string attribute that defines the date of manufacture of this item + * in the fixed format \"dd/mm/yyyy\". This is an optional attribute. + * + * @return manufactureDate + **/ + @Schema(description = "This is a string attribute that defines the date of manufacture of this item in the fixed format \"dd/mm/yyyy\". This is an optional attribute.") + + @Valid + public OffsetDateTime getManufactureDate() { + return manufactureDate; + } + + public void setManufactureDate(OffsetDateTime manufactureDate) { + this.manufactureDate = manufactureDate; + } + + @JsonProperty("manufactureDate") + public String getManufactureDateStr() { + if (this.manufactureDate != null) { + return this.manufactureDate.toString(); + } else { + return null; + } + } + + public void setManufactureDate(String endDate) { + if (endDate != null) { + this.manufactureDate = OffsetDateTime.parse(endDate); + } + } + + public PhysicalResource powerState(String powerState) { + this.powerState = powerState; + return this; + } + + /** + * This defines the current power status of the hardware item. Values include: + * 0: Unknown 1: Not Applicable 2: No Power Applied 3: Full Power Applied 4: + * Power Save - Normal 5: Power Save - Degraded 6: Power Save - Standby 7: Power + * Save - Critical 8: Power Save - Low Power Mode 9: Power Save - Unknown 10: + * Power Cycle 11: Power Warning 12: Power Off + * + * @return powerState + **/ + @Schema(description = "This defines the current power status of the hardware item. Values include: 0: Unknown 1: Not Applicable 2: No Power Applied 3: Full Power Applied 4: Power Save - Normal 5: Power Save - Degraded 6: Power Save - Standby 7: Power Save - Critical 8: Power Save - Low Power Mode 9: Power Save - Unknown 10: Power Cycle 11: Power Warning 12: Power Off") + + public String getPowerState() { + return powerState; + } + + public void setPowerState(String powerState) { + this.powerState = powerState; + } + + public PhysicalResource resourceVersion(String resourceVersion) { + this.resourceVersion = resourceVersion; + return this; + } + + /** + * A field that identifies the specific version of an instance of a resource. + * + * @return resourceVersion + **/ + @Schema(description = "A field that identifies the specific version of an instance of a resource.") + + public String getResourceVersion() { + return resourceVersion; + } + + public void setResourceVersion(String resourceVersion) { + this.resourceVersion = resourceVersion; + } + + public PhysicalResource serialNumber(String serialNumber) { + this.serialNumber = serialNumber; + return this; + } + + /** + * This is a string that represents a manufacturer-allocated number used to + * identify different instances of the same hardware item. The ModelNumber and + * PartNumber attributes are used to identify different types of hardware items. + * This is a REQUIRED attribute. + * + * @return serialNumber + **/ + @Schema(description = "This is a string that represents a manufacturer-allocated number used to identify different instances of the same hardware item. The ModelNumber and PartNumber attributes are used to identify different types of hardware items. This is a REQUIRED attribute.") + + public String getSerialNumber() { + return serialNumber; + } + + public void setSerialNumber(String serialNumber) { + this.serialNumber = serialNumber; + } + + public PhysicalResource startOperatingDate(OffsetDateTime startOperatingDate) { + this.startOperatingDate = startOperatingDate; + return this; + } + + /** + * A date time( DateTime). The date from which the resource is operating + * + * @return startOperatingDate + **/ + @Schema(description = "A date time( DateTime). The date from which the resource is operating") + + @Valid + public OffsetDateTime getStartOperatingDate() { + return startOperatingDate; + } + + public void setStartOperatingDate(OffsetDateTime startOperatingDate) { + this.startOperatingDate = startOperatingDate; + } + + public PhysicalResource versionNumber(String versionNumber) { + this.versionNumber = versionNumber; + return this; + } + + /** + * This is a string that identifies the version of this physical resource. This + * is an optional attribute. + * + * @return versionNumber + **/ + @Schema(description = "This is a string that identifies the version of this physical resource. This is an optional attribute.") + + public String getVersionNumber() { + return versionNumber; + } + + public void setVersionNumber(String versionNumber) { + this.versionNumber = versionNumber; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PhysicalResource physicalResource = (PhysicalResource) o; + return Objects.equals(this.id, physicalResource.id) && Objects.equals(this.href, physicalResource.href) + && Objects.equals(this.category, physicalResource.category) + && Objects.equals(this.description, physicalResource.description) + && Objects.equals(this.endOperatingDate, physicalResource.endOperatingDate) + && Objects.equals(this.manufactureDate, physicalResource.manufactureDate) + && Objects.equals(this.name, physicalResource.name) + && Objects.equals(this.powerState, physicalResource.powerState) + && Objects.equals(this.resourceVersion, physicalResource.resourceVersion) + && Objects.equals(this.serialNumber, physicalResource.serialNumber) + && Objects.equals(this.startOperatingDate, physicalResource.startOperatingDate) + && Objects.equals(this.versionNumber, physicalResource.versionNumber) + && Objects.equals(this.activationFeature, physicalResource.activationFeature) + && Objects.equals(this.administrativeState, physicalResource.administrativeState) + && Objects.equals(this.attachment, physicalResource.attachment) + && Objects.equals(this.note, physicalResource.note) + && Objects.equals(this.operationalState, physicalResource.operationalState) + && Objects.equals(this.place, physicalResource.place) + && Objects.equals(this.relatedParty, physicalResource.relatedParty) + && Objects.equals(this.resourceCharacteristic, physicalResource.resourceCharacteristic) + && Objects.equals(this.resourceRelationship, physicalResource.resourceRelationship) + && Objects.equals(this.resourceSpecification, physicalResource.resourceSpecification) + && Objects.equals(this.resourceStatus, physicalResource.resourceStatus) + && Objects.equals(this.usageState, physicalResource.usageState) + && Objects.equals(this.baseType, physicalResource.baseType) + && Objects.equals(this.schemaLocation, physicalResource.schemaLocation) + && Objects.equals(this.type, physicalResource.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, category, description, endOperatingDate, manufactureDate, name, powerState, + resourceVersion, serialNumber, startOperatingDate, versionNumber, activationFeature, + administrativeState, attachment, note, operationalState, place, relatedParty, resourceCharacteristic, + resourceRelationship, resourceSpecification, resourceStatus, usageState, baseType, schemaLocation, + type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PhysicalResource {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" endOperatingDate: ").append(toIndentedString(endOperatingDate)).append("\n"); + sb.append(" manufactureDate: ").append(toIndentedString(manufactureDate)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" powerState: ").append(toIndentedString(powerState)).append("\n"); + sb.append(" resourceVersion: ").append(toIndentedString(resourceVersion)).append("\n"); + sb.append(" serialNumber: ").append(toIndentedString(serialNumber)).append("\n"); + sb.append(" startOperatingDate: ").append(toIndentedString(startOperatingDate)).append("\n"); + sb.append(" versionNumber: ").append(toIndentedString(versionNumber)).append("\n"); + sb.append(" activationFeature: ").append(toIndentedString(activationFeature)).append("\n"); + sb.append(" administrativeState: ").append(toIndentedString(administrativeState)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" note: ").append(toIndentedString(note)).append("\n"); + sb.append(" operationalState: ").append(toIndentedString(operationalState)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" resourceCharacteristic: ").append(toIndentedString(resourceCharacteristic)).append("\n"); + sb.append(" resourceRelationship: ").append(toIndentedString(resourceRelationship)).append("\n"); + sb.append(" resourceSpecification: ").append(toIndentedString(resourceSpecification)).append("\n"); + sb.append(" resourceStatus: ").append(toIndentedString(resourceStatus)).append("\n"); + sb.append(" usageState: ").append(toIndentedString(usageState)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/Place.java b/src/main/java/org/etsi/osl/tmf/ri639/model/Place.java new file mode 100644 index 0000000..3f37bbf --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/Place.java @@ -0,0 +1,198 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Place reference. Place defines the places where the products are sold or delivered. + */ +@Schema(description = "Place reference. Place defines the places where the products are sold or delivered.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +public class Place { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public Place id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the place + * @return id + **/ + @Schema(description = "Unique identifier of the place") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Place href(String href) { + this.href = href; + return this; + } + + /** + * Unique reference of the place + * @return href + **/ + @Schema(description = "Unique reference of the place") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public Place name(String name) { + this.name = name; + return this; + } + + /** + * A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home] + * @return name + **/ + @Schema(description = "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Place _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public Place _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public Place _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class Extensible name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class Extensible name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Place place = (Place) o; + return Objects.equals(this.id, place.id) && + Objects.equals(this.href, place.href) && + Objects.equals(this.name, place.name) && + Objects.equals(this._atBaseType, place._atBaseType) && + Objects.equals(this._atSchemaLocation, place._atSchemaLocation) && + Objects.equals(this._atType, place._atType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Place {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/RelatedPlaceRefOrValue.java b/src/main/java/org/etsi/osl/tmf/ri639/model/RelatedPlaceRefOrValue.java new file mode 100644 index 0000000..ca02224 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/RelatedPlaceRefOrValue.java @@ -0,0 +1,198 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * Related Entity reference. A related place defines a place described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the place entity and not the RelatedPlaceRefOrValue class itself + */ +@Schema(description = "Related Entity reference. A related place defines a place described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the place entity and not the RelatedPlaceRefOrValue class itself") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@Entity(name = "RIRelPlaceRefVal") +public class RelatedPlaceRefOrValue extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + + @JsonProperty("role") + private String role = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public RelatedPlaceRefOrValue id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the place + * @return id + **/ + @Schema(description = "Unique identifier of the place") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + + public RelatedPlaceRefOrValue role(String role) { + this.role = role; + return this; + } + + /** + * Get role + * @return role + **/ + @Schema(description = "") + @NotNull + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public RelatedPlaceRefOrValue _atBaseType(String _atBaseType) { + this.baseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String _atBaseType) { + this.baseType = _atBaseType; + } + + public RelatedPlaceRefOrValue _atSchemaLocation(String _atSchemaLocation) { + this.schemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this.schemaLocation = _atSchemaLocation; + } + + public RelatedPlaceRefOrValue _atType(String _atType) { + this.type = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class Extensible name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class Extensible name") + + public String getAtType() { + return type; + } + + public void setAtType(String _atType) { + this.type = _atType; + } + + public RelatedPlaceRefOrValue _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RelatedPlaceRefOrValue relatedPlaceRefOrValue = (RelatedPlaceRefOrValue) o; + return Objects.equals(this.id, relatedPlaceRefOrValue.id) && + Objects.equals(this.href, relatedPlaceRefOrValue.href) && + Objects.equals(this.name, relatedPlaceRefOrValue.name) && + Objects.equals(this.role, relatedPlaceRefOrValue.role) && + Objects.equals(this.baseType, relatedPlaceRefOrValue.baseType) && + Objects.equals(this.schemaLocation, relatedPlaceRefOrValue.schemaLocation) && + Objects.equals(this.type, relatedPlaceRefOrValue.type) && + Objects.equals(this._atReferredType, relatedPlaceRefOrValue._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, role, baseType, schemaLocation, type, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RelatedPlaceRefOrValue {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/Resource.java b/src/main/java/org/etsi/osl/tmf/ri639/model/Resource.java new file mode 100644 index 0000000..597d779 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/Resource.java @@ -0,0 +1,680 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.Lob; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Resource is an abstract entity that describes the common set of attributes + * shared by all concrete resources (e.g. TPE, EQUIPMENT) in the inventory. + */ +@Schema(description = "Resource is an abstract entity that describes the common set of attributes shared by all concrete resources (e.g. TPE, EQUIPMENT) in the inventory.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@Entity(name = "RIResource") +public class Resource extends BaseRootNamedEntity { + @JsonProperty("id") + protected String id = null; + + @JsonProperty("category") + protected String category = null; + + + @Lob + @Column(name = "LDESCRIPTION", columnDefinition = "LONGTEXT") + @JsonProperty("description") + protected String description = null; + + protected OffsetDateTime endOperatingDate = null; + + @JsonProperty("resourceVersion") + protected String resourceVersion = null; + + protected OffsetDateTime startOperatingDate = null; + + @JsonProperty("activationFeature") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + protected Set activationFeature = new HashSet<>(); + + @JsonProperty("administrativeState") + protected ResourceAdministrativeStateType administrativeState = null; + + @JsonProperty("attachment") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + protected Set attachment = new HashSet<>(); + + @JsonProperty("note") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + protected Set note = new HashSet<>(); + + @JsonProperty("operationalState") + protected ResourceOperationalStateType operationalState = null; + + @JsonProperty("place") + @OneToOne(cascade = CascadeType.ALL) + protected RelatedPlaceRefOrValue place = null; + + @JsonProperty("relatedParty") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + protected Set relatedParty = new HashSet<>(); + + @JsonProperty("resourceCharacteristic") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + protected Set resourceCharacteristic = new HashSet<>(); + + @JsonProperty("resourceRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + protected Set resourceRelationship = new HashSet<>(); + + @JsonProperty("resourceSpecification") + @OneToOne( cascade = {CascadeType.ALL} ) + @JoinColumn(name = "resSpecRef", referencedColumnName = "uuid") + protected ResourceSpecificationRef resourceSpecification = null; + + @JsonProperty("resourceStatus") + protected ResourceStatusType resourceStatus = ResourceStatusType.UNKNOWN; + + @JsonProperty("usageState") + protected ResourceUsageStateType usageState = ResourceUsageStateType.IDLE; + + + + + /** + * Identifier of an instance of the resource. Required to be unique within the + * resource type. Used in URIs as the identifier for specific instances of a + * type. + * + * @return id + **/ + @Schema(description = "Identifier of an instance of the resource. Required to be unique within the resource type. Used in URIs as the identifier for specific instances of a type.") + @NotNull + public String getId() { + id = uuid; + return uuid; + } + + /** + * The URI for the object itself. + * + * @return href + **/ + @Schema(description = "The URI for the object itself.") + @NotNull + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public Resource category(String category) { + this.category = category; + return this; + } + + /** + * Category of the concrete resource. e.g Gold, Silver for MSISDN concrete + * resource + * + * @return category + **/ + @Schema(description = "Category of the concrete resource. e.g Gold, Silver for MSISDN concrete resource") + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public Resource description(String description) { + this.description = description; + return this; + } + + /** + * free-text description of the resource + * + * @return description + **/ + @Schema(description = "free-text description of the resource") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + + @JsonProperty("endOperatingDate") + public String getEndOperatingDateStr() { + if ( this.endOperatingDate != null ) { + return this.endOperatingDate.toString(); + } else { + return null; + } + } + + public void setEndOperatingDate(String endDate) { + if ( endDate!=null ) { + this.endOperatingDate = OffsetDateTime.parse( endDate ); + } + } + + public Resource endOperatingDate(OffsetDateTime endOperatingDate) { + this.endOperatingDate = endOperatingDate; + return this; + } + + /** + * A date time( DateTime). The date till the resource is operating + * + * @return endOperatingDate + **/ + @Schema(description = "A date time( DateTime). The date till the resource is operating") + + @Valid + public OffsetDateTime getEndOperatingDate() { + return endOperatingDate; + } + + public void setEndOperatingDate(OffsetDateTime endOperatingDate) { + this.endOperatingDate = endOperatingDate; + } + + public Resource name(String name) { + this.name = name; + return this; + } + + /** + * A string used to give a name to the resource + * + * @return name + **/ + @Schema(description = "A string used to give a name to the resource") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Resource resourceVersion(String resourceVersion) { + this.resourceVersion = resourceVersion; + return this; + } + + /** + * A field that identifies the specific version of an instance of a resource. + * + * @return resourceVersion + **/ + @Schema(description = "A field that identifies the specific version of an instance of a resource.") + + public String getResourceVersion() { + return resourceVersion; + } + + public void setResourceVersion(String resourceVersion) { + this.resourceVersion = resourceVersion; + } + + public Resource startOperatingDate(OffsetDateTime startOperatingDate) { + this.startOperatingDate = startOperatingDate; + return this; + } + + /** + * A date time( DateTime). The date from which the resource is operating + * + * @return startOperatingDate + **/ + @Schema(description = "A date time( DateTime). The date from which the resource is operating") + + + @JsonProperty("startOperatingDate") + public String getStartOperatingDateStr() { + if ( this.startOperatingDate != null ) { + return this.startOperatingDate.toString(); + } else { + return null; + } + } + + public void setStartOperatingDate(String startOperatingDate) { + if ( startOperatingDate!=null ) { + this.startOperatingDate = OffsetDateTime.parse( startOperatingDate ); + } + } + + @Valid + public OffsetDateTime getStartOperatingDate() { + return startOperatingDate; + } + + public void setStartOperatingDate(OffsetDateTime startOperatingDate) { + this.startOperatingDate = startOperatingDate; + } + + public Resource activationFeature( Set activationFeature) { + this.activationFeature = activationFeature; + return this; + } + + public Resource addActivationFeatureItem(Feature activationFeatureItem) { + if (this.activationFeature == null) { + this.activationFeature = new HashSet<>(); + } + this.activationFeature.add(activationFeatureItem); + return this; + } + + /** + * Configuration features + * + * @return activationFeature + **/ + @Schema(description = "Configuration features") + @Valid + public Set getActivationFeature() { + return activationFeature; + } + + public void setActivationFeature(Set activationFeature) { + this.activationFeature = activationFeature; + } + + public Resource administrativeState(ResourceAdministrativeStateType administrativeState) { + this.administrativeState = administrativeState; + return this; + } + + /** + * Get administrativeState + * + * @return administrativeState + **/ + @Schema(description = "") + + @Valid + public ResourceAdministrativeStateType getAdministrativeState() { + return administrativeState; + } + + public void setAdministrativeState(ResourceAdministrativeStateType administrativeState) { + this.administrativeState = administrativeState; + } + + public Resource attachment( Set attachment) { + this.attachment = attachment; + return this; + } + + public Resource addAttachmentItem(AttachmentRefOrValue attachmentItem) { + if (this.attachment == null) { + this.attachment = new HashSet<>(); + } + this.attachment.add(attachmentItem); + return this; + } + + /** + * Get attachment + * + * @return attachment + **/ + @Schema(description = "") + @Valid + public Set getAttachment() { + return attachment; + } + + public void setAttachment(Set attachment) { + this.attachment = attachment; + } + + public Resource note(Set note) { + this.note = note; + return this; + } + + public Resource addNoteItem(Note noteItem) { + if (this.note == null) { + this.note = new HashSet<>(); + } + this.note.add(noteItem); + return this; + } + + /** + * Get note + * + * @return note + **/ + @Schema(description = "") + @Valid + public Set getNote() { + return note; + } + + public void setNote(Set note) { + this.note = note; + } + + public Resource operationalState(ResourceOperationalStateType operationalState) { + this.operationalState = operationalState; + return this; + } + + /** + * Get operationalState + * + * @return operationalState + **/ + @Schema(description = "") + + @Valid + public ResourceOperationalStateType getOperationalState() { + return operationalState; + } + + public void setOperationalState(ResourceOperationalStateType operationalState) { + this.operationalState = operationalState; + } + + public Resource place(RelatedPlaceRefOrValue place) { + this.place = place; + return this; + } + + /** + * Get place + * + * @return place + **/ + @Schema(description = "") + + @Valid + public RelatedPlaceRefOrValue getPlace() { + return place; + } + + public void setPlace(RelatedPlaceRefOrValue place) { + this.place = place; + } + + public Resource relatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public Resource addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new HashSet<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * + * @return relatedParty + **/ + @Schema(description = "") + @Valid + public Set getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + } + + public Resource resourceCharacteristic(Set resourceCharacteristic) { + this.resourceCharacteristic = resourceCharacteristic; + return this; + } + + public Resource addResourceCharacteristicItem(Characteristic resourceCharacteristicItem) { + if (this.resourceCharacteristic == null) { + this.resourceCharacteristic = new HashSet<>(); + } + this.resourceCharacteristic.add(resourceCharacteristicItem); + return this; + } + + /** + * Get resourceCharacteristic + * + * @return resourceCharacteristic + **/ + @Schema(description = "") + @Valid + public Set getResourceCharacteristic() { + return resourceCharacteristic; + } + + public void setResourceCharacteristic(Set resourceCharacteristic) { + this.resourceCharacteristic = resourceCharacteristic; + } + + public Resource resourceRelationship(Set resourceRelationship) { + this.resourceRelationship = resourceRelationship; + return this; + } + + public Resource addResourceRelationshipItem(ResourceRelationship resourceRelationshipItem) { + if (this.resourceRelationship == null) { + this.resourceRelationship = new HashSet<>(); + } + this.resourceRelationship.add(resourceRelationshipItem); + return this; + } + + /** + * Get resourceRelationship + * + * @return resourceRelationship + **/ + @Schema(description = "") + @Valid + public Set getResourceRelationship() { + return resourceRelationship; + } + + public void setResourceRelationship(Set resourceRelationship) { + this.resourceRelationship = resourceRelationship; + } + + public Resource resourceSpecification(ResourceSpecificationRef resourceSpecification) { + this.resourceSpecification = resourceSpecification; + return this; + } + + /** + * Get resourceSpecification + * + * @return resourceSpecification + **/ + @Schema(description = "") + + @Valid + public ResourceSpecificationRef getResourceSpecification() { + return resourceSpecification; + } + + public void setResourceSpecification(ResourceSpecificationRef resourceSpecification) { + this.resourceSpecification = resourceSpecification; + } + + public Resource resourceStatus(ResourceStatusType resourceStatus) { + this.resourceStatus = resourceStatus; + return this; + } + + /** + * Get resourceStatus + * + * @return resourceStatus + **/ + @Schema(description = "") + + @Valid + public ResourceStatusType getResourceStatus() { + return resourceStatus; + } + + public void setResourceStatus(ResourceStatusType resourceStatus) { + this.resourceStatus = resourceStatus; + } + + public Resource usageState(ResourceUsageStateType usageState) { + this.usageState = usageState; + return this; + } + + /** + * Get usageState + * + * @return usageState + **/ + @Schema(description = "") + + @Valid + public ResourceUsageStateType getUsageState() { + return usageState; + } + + public void setUsageState(ResourceUsageStateType usageState) { + this.usageState = usageState; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Resource resource = (Resource) o; + return Objects.equals(this.id, resource.id) && Objects.equals(this.href, resource.href) + && Objects.equals(this.category, resource.category) + && Objects.equals(this.description, resource.description) + && Objects.equals(this.endOperatingDate, resource.endOperatingDate) + && Objects.equals(this.name, resource.name) + && Objects.equals(this.resourceVersion, resource.resourceVersion) + && Objects.equals(this.startOperatingDate, resource.startOperatingDate) + && Objects.equals(this.activationFeature, resource.activationFeature) + && Objects.equals(this.administrativeState, resource.administrativeState) + && Objects.equals(this.attachment, resource.attachment) && Objects.equals(this.note, resource.note) + && Objects.equals(this.operationalState, resource.operationalState) + && Objects.equals(this.place, resource.place) + && Objects.equals(this.relatedParty, resource.relatedParty) + && Objects.equals(this.resourceCharacteristic, resource.resourceCharacteristic) + && Objects.equals(this.resourceRelationship, resource.resourceRelationship) + && Objects.equals(this.resourceSpecification, resource.resourceSpecification) + && Objects.equals(this.resourceStatus, resource.resourceStatus) + && Objects.equals(this.usageState, resource.usageState) + && Objects.equals(this.baseType, resource.baseType) + && Objects.equals(this.schemaLocation, resource.schemaLocation) + && Objects.equals(this.type, resource.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, category, description, endOperatingDate, name, resourceVersion, + startOperatingDate, activationFeature, administrativeState, attachment, note, operationalState, place, + relatedParty, resourceCharacteristic, resourceRelationship, resourceSpecification, resourceStatus, + usageState, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Resource {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" endOperatingDate: ").append(toIndentedString(endOperatingDate)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" resourceVersion: ").append(toIndentedString(resourceVersion)).append("\n"); + sb.append(" startOperatingDate: ").append(toIndentedString(startOperatingDate)).append("\n"); + sb.append(" activationFeature: ").append(toIndentedString(activationFeature)).append("\n"); + sb.append(" administrativeState: ").append(toIndentedString(administrativeState)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" note: ").append(toIndentedString(note)).append("\n"); + sb.append(" operationalState: ").append(toIndentedString(operationalState)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" resourceCharacteristic: ").append(toIndentedString(resourceCharacteristic)).append("\n"); + sb.append(" resourceRelationship: ").append(toIndentedString(resourceRelationship)).append("\n"); + sb.append(" resourceSpecification: ").append(toIndentedString(resourceSpecification)).append("\n"); + sb.append(" resourceStatus: ").append(toIndentedString(resourceStatus)).append("\n"); + sb.append(" usageState: ").append(toIndentedString(usageState)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public Characteristic getResourceCharacteristicByName(String aName) { + for (Characteristic c : this.resourceCharacteristic) { + if ( c.getName().equals( aName )) { + return c; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceAdministrativeStateType.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceAdministrativeStateType.java new file mode 100644 index 0000000..d0d213c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceAdministrativeStateType.java @@ -0,0 +1,35 @@ +package org.etsi.osl.tmf.ri639.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * ResourceAdministrativeStateType enumerations + */ +public enum ResourceAdministrativeStateType { + LOCKED("locked"), + UNLOCKED("unlocked"), + SHUTDOWN("shutdown"); + + private String value; + + ResourceAdministrativeStateType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ResourceAdministrativeStateType fromValue(String text) { + for (ResourceAdministrativeStateType b : ResourceAdministrativeStateType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceAttributeValueChangeEvent.java new file mode 100644 index 0000000..1c2dfd3 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceAttributeValueChangeEvent.java @@ -0,0 +1,336 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.time.OffsetDateTime; +import java.util.Objects; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", + date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +public class ResourceAttributeValueChangeEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("event") + private ResourceAttributeValueChangeEventPayload event = null; + + public ResourceAttributeValueChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceAttributeValueChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceAttributeValueChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceAttributeValueChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceAttributeValueChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceAttributeValueChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceAttributeValueChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceAttributeValueChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceAttributeValueChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ResourceAttributeValueChangeEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ResourceAttributeValueChangeEvent event(ResourceAttributeValueChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceAttributeValueChangeEventPayload getEvent() { + if (event == null) { + this.event = new ResourceAttributeValueChangeEventPayload(); + } + return event; + } + + public void setEvent(ResourceAttributeValueChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceAttributeValueChangeEvent resourceAttributeValueChangeEvent = + (ResourceAttributeValueChangeEvent) o; + return Objects.equals(this.eventId, resourceAttributeValueChangeEvent.eventId) + && Objects.equals(this.eventTime, resourceAttributeValueChangeEvent.eventTime) + && Objects.equals(this.eventType, resourceAttributeValueChangeEvent.eventType) + && Objects.equals(this.correlationId, resourceAttributeValueChangeEvent.correlationId) + && Objects.equals(this.domain, resourceAttributeValueChangeEvent.domain) + && Objects.equals(this.title, resourceAttributeValueChangeEvent.title) + && Objects.equals(this.description, resourceAttributeValueChangeEvent.description) + && Objects.equals(this.priority, resourceAttributeValueChangeEvent.priority) + && Objects.equals(this.timeOcurred, resourceAttributeValueChangeEvent.timeOcurred) + && Objects.equals(this.fieldPath, resourceAttributeValueChangeEvent.fieldPath) + && Objects.equals(this.event, resourceAttributeValueChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, correlationId, domain, title, description, + priority, timeOcurred, fieldPath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceAttributeValueChangeEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceAttributeValueChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceAttributeValueChangeEventPayload.java new file mode 100644 index 0000000..8633744 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceAttributeValueChangeEventPayload.java @@ -0,0 +1,80 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +public class ResourceAttributeValueChangeEventPayload { + @JsonProperty("resource") + private Resource resource = null; + + public ResourceAttributeValueChangeEventPayload resource(Resource resource) { + this.resource = resource; + return this; + } + + /** + * Get resource + * @return resource + **/ + @Schema(description = "") + + @Valid + public Resource getResource() { + return resource; + } + + public void setResource(Resource resource) { + this.resource = resource; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceAttributeValueChangeEventPayload resourceAttributeValueChangeEventPayload = (ResourceAttributeValueChangeEventPayload) o; + return Objects.equals(this.resource, resourceAttributeValueChangeEventPayload.resource); + } + + @Override + public int hashCode() { + return Objects.hash(resource); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceAttributeValueChangeEventPayload {\n"); + + sb.append(" resource: ").append(toIndentedString(resource)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceAttributeValueChangeNotification.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceAttributeValueChangeNotification.java new file mode 100644 index 0000000..0e47ffc --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceAttributeValueChangeNotification.java @@ -0,0 +1,116 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +public class ResourceAttributeValueChangeNotification extends Notification { + + + @JsonProperty("event") + private ResourceAttributeValueChangeEvent event = null; + + public ResourceAttributeValueChangeNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + + + public ResourceAttributeValueChangeNotification event( ResourceAttributeValueChangeEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ResourceAttributeValueChangeEvent getEvent() { + return event; + } + + public void setEvent(ResourceAttributeValueChangeEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceAttributeValueChangeNotification serviceCreateNotification = (ResourceAttributeValueChangeNotification) o; + return Objects.equals(this.eventId, serviceCreateNotification.eventId) && + Objects.equals(this.eventTime, serviceCreateNotification.eventTime) && + Objects.equals(this.eventType, serviceCreateNotification.eventType) && + Objects.equals(this.fieldPath, serviceCreateNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceCreateNotification.resourcePath) && + Objects.equals(this.event, serviceCreateNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCreateNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceCreate.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceCreate.java new file mode 100644 index 0000000..9923a52 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceCreate.java @@ -0,0 +1,18 @@ +package org.etsi.osl.tmf.ri639.model; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Resource is an abstract entity that describes the common set of attributes shared by all concrete resources (e.g. TPE, EQUIPMENT) in the inventory. Skipped properties: id,href + */ +@Schema(description = "Resource is an abstract entity that describes the common set of attributes shared by all concrete resources (e.g. TPE, EQUIPMENT) in the inventory. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +public class ResourceCreate extends ResourceUpdate { + + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceCreateEvent.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceCreateEvent.java new file mode 100644 index 0000000..984b049 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceCreateEvent.java @@ -0,0 +1,312 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +public class ResourceCreateEvent { + @JsonProperty("event") + private ResourceCreateEventPayload event = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + public ResourceCreateEvent event(ResourceCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceCreateEventPayload getEvent() { + if ( event == null ) { + this.event = new ResourceCreateEventPayload(); + } + return event; + } + + public void setEvent(ResourceCreateEventPayload event) { + this.event = event; + } + + public ResourceCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCreateEvent resourceCreateEvent = (ResourceCreateEvent) o; + return Objects.equals(this.event, resourceCreateEvent.event) + && Objects.equals(this.eventId, resourceCreateEvent.eventId) + && Objects.equals(this.eventTime, resourceCreateEvent.eventTime) + && Objects.equals(this.eventType, resourceCreateEvent.eventType) + && Objects.equals(this.correlationId, resourceCreateEvent.correlationId) + && Objects.equals(this.domain, resourceCreateEvent.domain) + && Objects.equals(this.title, resourceCreateEvent.title) + && Objects.equals(this.description, resourceCreateEvent.description) + && Objects.equals(this.priority, resourceCreateEvent.priority) + && Objects.equals(this.timeOcurred, resourceCreateEvent.timeOcurred); + } + + @Override + public int hashCode() { + return Objects.hash(event, eventId, eventTime, eventType, correlationId, domain, title, description, priority, + timeOcurred); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCreateEvent {\n"); + + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceCreateEventPayload.java new file mode 100644 index 0000000..07ff058 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceCreateEventPayload.java @@ -0,0 +1,80 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +public class ResourceCreateEventPayload { + @JsonProperty("resource") + private Resource resource = null; + + public ResourceCreateEventPayload resource(Resource resource) { + this.resource = resource; + return this; + } + + /** + * Get resource + * @return resource + **/ + @Schema(description = "") + + @Valid + public Resource getResource() { + return resource; + } + + public void setResource(Resource resource) { + this.resource = resource; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCreateEventPayload resourceCreateEventPayload = (ResourceCreateEventPayload) o; + return Objects.equals(this.resource, resourceCreateEventPayload.resource); + } + + @Override + public int hashCode() { + return Objects.hash(resource); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCreateEventPayload {\n"); + + sb.append(" resource: ").append(toIndentedString(resource)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceCreateNotification.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceCreateNotification.java new file mode 100644 index 0000000..dca63e9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceCreateNotification.java @@ -0,0 +1,120 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class ResourceCreateNotification extends Notification { + + + @JsonProperty("event") + private ResourceCreateEvent event = null; + + public ResourceCreateNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + + + public ResourceCreateNotification event( ResourceCreateEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ResourceCreateEvent getEvent() { + return event; + } + + public void setEvent(ResourceCreateEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCreateNotification serviceCreateNotification = (ResourceCreateNotification) o; + return Objects.equals(this.eventId, serviceCreateNotification.eventId) && + Objects.equals(this.eventTime, serviceCreateNotification.eventTime) && + Objects.equals(this.eventType, serviceCreateNotification.eventType) && + Objects.equals(this.fieldPath, serviceCreateNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceCreateNotification.resourcePath) && + Objects.equals(this.event, serviceCreateNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCreateNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceDeleteEvent.java new file mode 100644 index 0000000..92f750d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceDeleteEvent.java @@ -0,0 +1,299 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +public class ResourceDeleteEvent { + @JsonProperty("event") + private ResourceDeleteEventPayload event = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + public ResourceDeleteEvent event(ResourceDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(ResourceDeleteEventPayload event) { + this.event = event; + } + + public ResourceDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceDeleteEvent resourceDeleteEvent = (ResourceDeleteEvent) o; + return Objects.equals(this.event, resourceDeleteEvent.event) && + Objects.equals(this.eventId, resourceDeleteEvent.eventId) && + Objects.equals(this.eventTime, resourceDeleteEvent.eventTime) && + Objects.equals(this.eventType, resourceDeleteEvent.eventType) && + Objects.equals(this.correlationId, resourceDeleteEvent.correlationId) && + Objects.equals(this.domain, resourceDeleteEvent.domain) && + Objects.equals(this.title, resourceDeleteEvent.title) && + Objects.equals(this.description, resourceDeleteEvent.description) && + Objects.equals(this.priority, resourceDeleteEvent.priority) && + Objects.equals(this.timeOcurred, resourceDeleteEvent.timeOcurred); + } + + @Override + public int hashCode() { + return Objects.hash(event, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceDeleteEvent {\n"); + + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceDeleteEventPayload.java new file mode 100644 index 0000000..97cfc05 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceDeleteEventPayload.java @@ -0,0 +1,81 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.core.io.Resource; +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +public class ResourceDeleteEventPayload { + @JsonProperty("resource") + private Resource resource = null; + + public ResourceDeleteEventPayload resource(Resource resource) { + this.resource = resource; + return this; + } + + /** + * Get resource + * @return resource + **/ + @Schema(description = "") + + @Valid + public Resource getResource() { + return resource; + } + + public void setResource(Resource resource) { + this.resource = resource; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceDeleteEventPayload resourceDeleteEventPayload = (ResourceDeleteEventPayload) o; + return Objects.equals(this.resource, resourceDeleteEventPayload.resource); + } + + @Override + public int hashCode() { + return Objects.hash(resource); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceDeleteEventPayload {\n"); + + sb.append(" resource: ").append(toIndentedString(resource)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceOperationalStateType.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceOperationalStateType.java new file mode 100644 index 0000000..5c9ac61 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceOperationalStateType.java @@ -0,0 +1,34 @@ +package org.etsi.osl.tmf.ri639.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * ResourceOperationalStateType enumerations + */ +public enum ResourceOperationalStateType { + ENABLE("enable"), + DISABLE("disable"); + + private String value; + + ResourceOperationalStateType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ResourceOperationalStateType fromValue(String text) { + for (ResourceOperationalStateType b : ResourceOperationalStateType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceRefOrValue.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceRefOrValue.java new file mode 100644 index 0000000..8ad14bc --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceRefOrValue.java @@ -0,0 +1,33 @@ +package org.etsi.osl.tmf.ri639.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * Resource is an abstract entity that describes the common set of attributes shared by all concrete resources. The polymorphic attributes @type, @schemaLocation & @referredType are related to the Resource entity and not the related ResourceRefOrValue class itself + */ +@Schema(description = "Resource is an abstract entity that describes the common set of attributes shared by all concrete resources. The polymorphic attributes @type, @schemaLocation & @referredType are related to the Resource entity and not the related ResourceRefOrValue class itself") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@Entity(name = "RIResourceRefOrVal") +@JsonIgnoreProperties( {"uuid"} ) +public class ResourceRefOrValue extends Resource { + + public void setId(@NotNull String id) { + this.id = id; + + } + + public String getId() { + if ( id == null) { + return super.getId(); + } + return this.id; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceRelationship.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceRelationship.java new file mode 100644 index 0000000..efbd509 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceRelationship.java @@ -0,0 +1,147 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.service.ResourceRef; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Linked resources to the one instantiate, such as [bundled] if the resource is + * a bundle and you want to describe the bundled resources inside this bundle; + * [reliesOn] if the resource needs another already owned resource to rely on + * (e.g. an option on an already owned mobile access resource) [targets] or + * [isTargeted] (depending on the way of expressing the link) for any other kind + * of links that may be useful + */ +@Schema(description = "Linked resources to the one instantiate, such as [bundled] if the resource is a bundle and you want to describe the bundled resources inside this bundle; [reliesOn] if the resource needs another already owned resource to rely on (e.g. an option on an already owned mobile access resource) [targets] or [isTargeted] (depending on the way of expressing the link) for any other kind of links that may be useful") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +@Entity(name = "RIResourceRel") +public class ResourceRelationship extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("resource") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "rsrc_rsrcref_uuid", referencedColumnName = "uuid") + private ResourceRef resource = null; + + /** + * unique identifier + * + * @return id + **/ + @Schema(description = "unique identifier") + public String getId() { + id = uuid; + return uuid; + } + + public ResourceRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * Type of the resource relationship, such as [bundled] if the resource is a + * bundle and you want to describe the bundled resources inside this bundle; + * [reliesOn] if the resource needs another already owned resource to rely on + * (eg: an option on an already owned mobile access resource) [targets] or + * [isTargeted] (depending on the way of expressing the link) for any other kind + * of links that may be useful + * + * @return relationshipType + **/ + @Schema(example = "bundled", required = true, description = "Type of the resource relationship, such as [bundled] if the resource is a bundle and you want to describe the bundled resources inside this bundle; [reliesOn] if the resource needs another already owned resource to rely on (eg: an option on an already owned mobile access resource) [targets] or [isTargeted] (depending on the way of expressing the link) for any other kind of links that may be useful") + @NotNull + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public ResourceRelationship resource( ResourceRef resource) { + this.resource = resource; + return this; + } + + /** + * Get resource + * + * @return resource + **/ + @Schema(description = "") + @NotNull + + @Valid + public ResourceRef getResource() { + return resource; + } + + public void setResource(ResourceRef resource) { + this.resource = resource; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceRelationship resourceRelationship = (ResourceRelationship) o; + return Objects.equals(this.id, resourceRelationship.id) && Objects.equals(this.href, resourceRelationship.href) + && Objects.equals(this.relationshipType, resourceRelationship.relationshipType) + && Objects.equals(this.resource, resourceRelationship.resource) + && Objects.equals(this.baseType, resourceRelationship.baseType) + && Objects.equals(this.schemaLocation, resourceRelationship.schemaLocation) + && Objects.equals(this.type, resourceRelationship.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, relationshipType, resource, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceRelationship {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" resource: ").append(toIndentedString(resource)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceStateChangeEvent.java new file mode 100644 index 0000000..cff716a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceStateChangeEvent.java @@ -0,0 +1,299 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.time.OffsetDateTime; +import java.util.Objects; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +public class ResourceStateChangeEvent { + @JsonProperty("event") + private ResourceStateChangeEventPayload event = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + public ResourceStateChangeEvent event(ResourceStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceStateChangeEventPayload getEvent() { + if (event == null) { + this.event = new ResourceStateChangeEventPayload(); + } + return event; + } + + public void setEvent(ResourceStateChangeEventPayload event) { + this.event = event; + } + + public ResourceStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceStateChangeEvent resourceStateChangeEvent = (ResourceStateChangeEvent) o; + return Objects.equals(this.event, resourceStateChangeEvent.event) && + Objects.equals(this.eventId, resourceStateChangeEvent.eventId) && + Objects.equals(this.eventTime, resourceStateChangeEvent.eventTime) && + Objects.equals(this.eventType, resourceStateChangeEvent.eventType) && + Objects.equals(this.correlationId, resourceStateChangeEvent.correlationId) && + Objects.equals(this.domain, resourceStateChangeEvent.domain) && + Objects.equals(this.title, resourceStateChangeEvent.title) && + Objects.equals(this.description, resourceStateChangeEvent.description) && + Objects.equals(this.priority, resourceStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, resourceStateChangeEvent.timeOcurred); + } + + @Override + public int hashCode() { + return Objects.hash(event, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceStateChangeEvent {\n"); + + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceStateChangeEventPayload.java new file mode 100644 index 0000000..359e3e6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceStateChangeEventPayload.java @@ -0,0 +1,80 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +public class ResourceStateChangeEventPayload { + @JsonProperty("resource") + private Resource resource = null; + + public ResourceStateChangeEventPayload resource(Resource resource) { + this.resource = resource; + return this; + } + + /** + * Get resource + * @return resource + **/ + @Schema(description = "") + + @Valid + public Resource getResource() { + return resource; + } + + public void setResource(Resource resource) { + this.resource = resource; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceStateChangeEventPayload resourceStateChangeEventPayload = (ResourceStateChangeEventPayload) o; + return Objects.equals(this.resource, resourceStateChangeEventPayload.resource); + } + + @Override + public int hashCode() { + return Objects.hash(resource); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceStateChangeEventPayload {\n"); + + sb.append(" resource: ").append(toIndentedString(resource)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceStateChangeNotification.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceStateChangeNotification.java new file mode 100644 index 0000000..e54b0f5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceStateChangeNotification.java @@ -0,0 +1,116 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.ri639.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +public class ResourceStateChangeNotification extends Notification { + + + @JsonProperty("event") + private ResourceStateChangeEvent event = null; + + public ResourceStateChangeNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + + + public ResourceStateChangeNotification event( ResourceStateChangeEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ResourceStateChangeEvent getEvent() { + return event; + } + + public void setEvent(ResourceStateChangeEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceStateChangeNotification serviceCreateNotification = (ResourceStateChangeNotification) o; + return Objects.equals(this.eventId, serviceCreateNotification.eventId) && + Objects.equals(this.eventTime, serviceCreateNotification.eventTime) && + Objects.equals(this.eventType, serviceCreateNotification.eventType) && + Objects.equals(this.fieldPath, serviceCreateNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceCreateNotification.resourcePath) && + Objects.equals(this.event, serviceCreateNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCreateNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceStatusType.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceStatusType.java new file mode 100644 index 0000000..70de7ed --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceStatusType.java @@ -0,0 +1,38 @@ +package org.etsi.osl.tmf.ri639.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * ResourceStatusType enumerations + */ +public enum ResourceStatusType { + STANDBY("standby"), + ALARM("alarm"), + AVAILABLE("available"), + RESERVED("reserved"), + UNKNOWN("unknown"), + SUSPENDED("suspended"); + + private String value; + + ResourceStatusType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ResourceStatusType fromValue(String text) { + for (ResourceStatusType b : ResourceStatusType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceUpdate.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceUpdate.java new file mode 100644 index 0000000..9686f32 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceUpdate.java @@ -0,0 +1,710 @@ +package org.etsi.osl.tmf.ri639.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Resource is an abstract entity that describes the common set of attributes + * shared by all concrete resources (e.g. TPE, EQUIPMENT) in the inventory. + * Skipped properties: id,href + */ +@Schema(description = "Resource is an abstract entity that describes the common set of attributes shared by all concrete resources (e.g. TPE, EQUIPMENT) in the inventory. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-07-08T09:52:18.013684600+03:00[Europe/Athens]") +public class ResourceUpdate { + @JsonProperty("category") + protected String category = null; + + @JsonProperty("description") + protected String description = null; + + protected OffsetDateTime endOperatingDate = null; + + @JsonProperty("name") + protected String name = null; + + @JsonProperty("resourceVersion") + protected String resourceVersion = null; + + protected OffsetDateTime startOperatingDate = null; + + @JsonProperty("activationFeature") + @Valid + protected List activationFeature = null; + + @JsonProperty("administrativeState") + protected ResourceAdministrativeStateType administrativeState = null; + + @JsonProperty("attachment") + @Valid + protected List attachment = null; + + @JsonProperty("note") + @Valid + protected List note = null; + + @JsonProperty("operationalState") + protected ResourceOperationalStateType operationalState = null; + + @JsonProperty("place") + protected RelatedPlaceRefOrValue place = null; + + @JsonProperty("relatedParty") + @Valid + protected List relatedParty = null; + + @JsonProperty("resourceCharacteristic") + @Valid + protected List resourceCharacteristic = null; + + @JsonProperty("resourceRelationship") + @Valid + protected List resourceRelationship = null; + + @JsonProperty("resourceSpecification") + protected ResourceSpecificationRef resourceSpecification = null; + + @JsonProperty("resourceStatus") + protected ResourceStatusType resourceStatus = null; + + @JsonProperty("usageState") + protected ResourceUsageStateType usageState = null; + + @JsonProperty("@baseType") + protected String _atBaseType = null; + + @JsonProperty("@schemaLocation") + protected String _atSchemaLocation = null; + + @JsonProperty("@type") + protected String _atType = null; + + public ResourceUpdate category(String category) { + this.category = category; + return this; + } + + /** + * Category of the concrete resource. e.g Gold, Silver for MSISDN concrete + * resource + * + * @return category + **/ + @Schema(description = "Category of the concrete resource. e.g Gold, Silver for MSISDN concrete resource") + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public ResourceUpdate description(String description) { + this.description = description; + return this; + } + + /** + * free-text description of the resource + * + * @return description + **/ + @Schema(description = "free-text description of the resource") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceUpdate endOperatingDate(OffsetDateTime endOperatingDate) { + this.endOperatingDate = endOperatingDate; + return this; + } + + /** + * A date time( DateTime). The date till the resource is operating + * + * @return endOperatingDate + **/ + @Schema(description = "A date time( DateTime). The date till the resource is operating") + + @Valid + public OffsetDateTime getEndOperatingDate() { + return endOperatingDate; + } + + public void setEndOperatingDate(OffsetDateTime endOperatingDate) { + this.endOperatingDate = endOperatingDate; + } + + @JsonProperty("endOperatingDate") + @Valid + public String getEndOperatingDateStr() { + + if (this.endOperatingDate != null) { + return this.endOperatingDate.toString(); + } else { + return null; + } + } + + + public void setEndOperatingDate(String endOperatingDate) { + if (endOperatingDate != null) { + this.endOperatingDate = OffsetDateTime.parse(endOperatingDate); + + } + } + + + public ResourceUpdate name(String name) { + this.name = name; + return this; + } + + /** + * A string used to give a name to the resource + * + * @return name + **/ + @Schema(description = "A string used to give a name to the resource") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ResourceUpdate resourceVersion(String resourceVersion) { + this.resourceVersion = resourceVersion; + return this; + } + + /** + * A field that identifies the specific version of an instance of a resource. + * + * @return resourceVersion + **/ + @Schema(description = "A field that identifies the specific version of an instance of a resource.") + + public String getResourceVersion() { + return resourceVersion; + } + + public void setResourceVersion(String resourceVersion) { + this.resourceVersion = resourceVersion; + } + + public ResourceUpdate startOperatingDate(OffsetDateTime startOperatingDate) { + this.startOperatingDate = startOperatingDate; + return this; + } + + /** + * A date time( DateTime). The date from which the resource is operating + * + * @return startOperatingDate + **/ + @Schema(description = "A date time( DateTime). The date from which the resource is operating") + + @Valid + public OffsetDateTime getStartOperatingDate() { + return startOperatingDate; + } + + + @JsonProperty("startOperatingDate") + public String getStartOperatingDateStr() { + if (this.startOperatingDate != null) { + return this.startOperatingDate.toString(); + } else { + return null; + } + } + + + + public void setStartOperatingDate(OffsetDateTime startOperatingDate) { + this.startOperatingDate = startOperatingDate; + } + + + public void setStartOperatingDate(String startOperatingDate) { + if (startOperatingDate != null) { + this.startOperatingDate = OffsetDateTime.parse(startOperatingDate); + + } + } + + public ResourceUpdate activationFeature(List activationFeature) { + this.activationFeature = activationFeature; + return this; + } + + public ResourceUpdate addActivationFeatureItem(Feature activationFeatureItem) { + if (this.activationFeature == null) { + this.activationFeature = new ArrayList<>(); + } + this.activationFeature.add(activationFeatureItem); + return this; + } + + /** + * Configuration features + * + * @return activationFeature + **/ + @Schema(description = "Configuration features") + @Valid + public List getActivationFeature() { + return activationFeature; + } + + public void setActivationFeature(List activationFeature) { + this.activationFeature = activationFeature; + } + + public ResourceUpdate administrativeState(ResourceAdministrativeStateType administrativeState) { + this.administrativeState = administrativeState; + return this; + } + + /** + * Get administrativeState + * + * @return administrativeState + **/ + @Schema(description = "") + + @Valid + public ResourceAdministrativeStateType getAdministrativeState() { + return administrativeState; + } + + public void setAdministrativeState(ResourceAdministrativeStateType administrativeState) { + this.administrativeState = administrativeState; + } + + public ResourceUpdate attachment(List attachment) { + this.attachment = attachment; + return this; + } + + public ResourceUpdate addAttachmentItem(AttachmentRefOrValue attachmentItem) { + if (this.attachment == null) { + this.attachment = new ArrayList<>(); + } + this.attachment.add(attachmentItem); + return this; + } + + /** + * Get attachment + * + * @return attachment + **/ + @Schema(description = "") + @Valid + public List getAttachment() { + return attachment; + } + + public void setAttachment(List attachment) { + this.attachment = attachment; + } + + public ResourceUpdate note(List note) { + this.note = note; + return this; + } + + public ResourceUpdate addNoteItem(Note noteItem) { + if (this.note == null) { + this.note = new ArrayList<>(); + } + this.note.add(noteItem); + return this; + } + + /** + * Get note + * + * @return note + **/ + @Schema(description = "") + @Valid + public List getNote() { + return note; + } + + public void setNote(List note) { + this.note = note; + } + + public ResourceUpdate operationalState(ResourceOperationalStateType operationalState) { + this.operationalState = operationalState; + return this; + } + + /** + * Get operationalState + * + * @return operationalState + **/ + @Schema(description = "") + + @Valid + public ResourceOperationalStateType getOperationalState() { + return operationalState; + } + + public void setOperationalState(ResourceOperationalStateType operationalState) { + this.operationalState = operationalState; + } + + public ResourceUpdate place(RelatedPlaceRefOrValue place) { + this.place = place; + return this; + } + + /** + * Get place + * + * @return place + **/ + @Schema(description = "") + + @Valid + public RelatedPlaceRefOrValue getPlace() { + return place; + } + + public void setPlace(RelatedPlaceRefOrValue place) { + this.place = place; + } + + public ResourceUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ResourceUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * + * @return relatedParty + **/ + @Schema(description = "") + @Valid + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public ResourceUpdate resourceCharacteristic(List resourceCharacteristic) { + this.resourceCharacteristic = resourceCharacteristic; + return this; + } + + public ResourceUpdate addResourceCharacteristicItem(Characteristic resourceCharacteristicItem) { + if (this.resourceCharacteristic == null) { + this.resourceCharacteristic = new ArrayList<>(); + } + this.resourceCharacteristic.add(resourceCharacteristicItem); + return this; + } + + + public ResourceUpdate addResourceCharacteristicItemShort(String aname, + String aValue, + String valueType) { + + Characteristic resCharacteristicItem = new Characteristic(); + resCharacteristicItem.setName( aname ); + + Any val = new Any(); + val.setValue( aValue ); + val.setAlias( null ); + + resCharacteristicItem.setValue( val ); + + this.addResourceCharacteristicItem( resCharacteristicItem ); + return this; + } + + /** + * Get resourceCharacteristic + * + * @return resourceCharacteristic + **/ + @Schema(description = "") + @Valid + public List getResourceCharacteristic() { + return resourceCharacteristic; + } + + public void setResourceCharacteristic(List resourceCharacteristic) { + this.resourceCharacteristic = resourceCharacteristic; + } + + public ResourceUpdate resourceRelationship(List resourceRelationship) { + this.resourceRelationship = resourceRelationship; + return this; + } + + public ResourceUpdate addResourceRelationshipItem(ResourceRelationship resourceRelationshipItem) { + if (this.resourceRelationship == null) { + this.resourceRelationship = new ArrayList<>(); + } + this.resourceRelationship.add(resourceRelationshipItem); + return this; + } + + /** + * Get resourceRelationship + * + * @return resourceRelationship + **/ + @Schema(description = "") + @Valid + public List getResourceRelationship() { + return resourceRelationship; + } + + public void setResourceRelationship(List resourceRelationship) { + this.resourceRelationship = resourceRelationship; + } + + public ResourceUpdate resourceSpecification(ResourceSpecificationRef resourceSpecification) { + this.resourceSpecification = resourceSpecification; + return this; + } + + /** + * Get resourceSpecification + * + * @return resourceSpecification + **/ + @Schema(description = "") + + @Valid + public ResourceSpecificationRef getResourceSpecification() { + return resourceSpecification; + } + + public void setResourceSpecification(ResourceSpecificationRef resourceSpecification) { + this.resourceSpecification = resourceSpecification; + } + + public ResourceUpdate resourceStatus(ResourceStatusType resourceStatus) { + this.resourceStatus = resourceStatus; + return this; + } + + /** + * Get resourceStatus + * + * @return resourceStatus + **/ + @Schema(description = "") + + @Valid + public ResourceStatusType getResourceStatus() { + return resourceStatus; + } + + public void setResourceStatus(ResourceStatusType resourceStatus) { + this.resourceStatus = resourceStatus; + } + + public ResourceUpdate usageState(ResourceUsageStateType usageState) { + this.usageState = usageState; + return this; + } + + /** + * Get usageState + * + * @return usageState + **/ + @Schema(description = "") + + @Valid + public ResourceUsageStateType getUsageState() { + return usageState; + } + + public void setUsageState(ResourceUsageStateType usageState) { + this.usageState = usageState; + } + + public ResourceUpdate _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public ResourceUpdate _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public ResourceUpdate _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class Extensible name + * + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class Extensible name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceUpdate resourceUpdate = (ResourceUpdate) o; + return Objects.equals(this.category, resourceUpdate.category) + && Objects.equals(this.description, resourceUpdate.description) + && Objects.equals(this.endOperatingDate, resourceUpdate.endOperatingDate) + && Objects.equals(this.name, resourceUpdate.name) + && Objects.equals(this.resourceVersion, resourceUpdate.resourceVersion) + && Objects.equals(this.startOperatingDate, resourceUpdate.startOperatingDate) + && Objects.equals(this.activationFeature, resourceUpdate.activationFeature) + && Objects.equals(this.administrativeState, resourceUpdate.administrativeState) + && Objects.equals(this.attachment, resourceUpdate.attachment) + && Objects.equals(this.note, resourceUpdate.note) + && Objects.equals(this.operationalState, resourceUpdate.operationalState) + && Objects.equals(this.place, resourceUpdate.place) + && Objects.equals(this.relatedParty, resourceUpdate.relatedParty) + && Objects.equals(this.resourceCharacteristic, resourceUpdate.resourceCharacteristic) + && Objects.equals(this.resourceRelationship, resourceUpdate.resourceRelationship) + && Objects.equals(this.resourceSpecification, resourceUpdate.resourceSpecification) + && Objects.equals(this.resourceStatus, resourceUpdate.resourceStatus) + && Objects.equals(this.usageState, resourceUpdate.usageState) + && Objects.equals(this._atBaseType, resourceUpdate._atBaseType) + && Objects.equals(this._atSchemaLocation, resourceUpdate._atSchemaLocation) + && Objects.equals(this._atType, resourceUpdate._atType); + } + + @Override + public int hashCode() { + return Objects.hash(category, description, endOperatingDate, name, resourceVersion, startOperatingDate, + activationFeature, administrativeState, attachment, note, operationalState, place, relatedParty, + resourceCharacteristic, resourceRelationship, resourceSpecification, resourceStatus, usageState, + _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceUpdate {\n"); + + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" endOperatingDate: ").append(toIndentedString(endOperatingDate)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" resourceVersion: ").append(toIndentedString(resourceVersion)).append("\n"); + sb.append(" startOperatingDate: ").append(toIndentedString(startOperatingDate)).append("\n"); + sb.append(" activationFeature: ").append(toIndentedString(activationFeature)).append("\n"); + sb.append(" administrativeState: ").append(toIndentedString(administrativeState)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" note: ").append(toIndentedString(note)).append("\n"); + sb.append(" operationalState: ").append(toIndentedString(operationalState)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" resourceCharacteristic: ").append(toIndentedString(resourceCharacteristic)).append("\n"); + sb.append(" resourceRelationship: ").append(toIndentedString(resourceRelationship)).append("\n"); + sb.append(" resourceSpecification: ").append(toIndentedString(resourceSpecification)).append("\n"); + sb.append(" resourceStatus: ").append(toIndentedString(resourceStatus)).append("\n"); + sb.append(" usageState: ").append(toIndentedString(usageState)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + protected String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceUsageStateType.java b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceUsageStateType.java new file mode 100644 index 0000000..bdf43f6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/model/ResourceUsageStateType.java @@ -0,0 +1,33 @@ +package org.etsi.osl.tmf.ri639.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * ResourceUsageStateType enumerations + */ +public enum ResourceUsageStateType { + IDLE("idle"), ACTIVE("active"), BUSY("busy"); + + private String value; + + ResourceUsageStateType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ResourceUsageStateType fromValue(String text) { + for (ResourceUsageStateType b : ResourceUsageStateType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/repo/ResourceRepository.java b/src/main/java/org/etsi/osl/tmf/ri639/repo/ResourceRepository.java new file mode 100644 index 0000000..86de40b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/repo/ResourceRepository.java @@ -0,0 +1,60 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.ri639.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.ri639.model.Resource; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + + +@Repository +public interface ResourceRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + @Query("SELECT srv FROM RIResource srv JOIN FETCH srv.relatedParty rp WHERE rp.name = ?1") + Iterable findByRolename(String name); + + + @Query("SELECT srv FROM RIResource srv WHERE srv.resourceStatus = org.etsi.osl.tmf.ri639.model.ResourceStatusType.AVAILABLE AND " + + "srv.endOperatingDate < CURRENT_TIMESTAMP") + List findActiveToTerminate(); + + @Query("SELECT srv FROM RIResource srv " + + "JOIN FETCH srv.resourceCharacteristic char " + + "JOIN FETCH char.value val " + + "WHERE (srv.resourceStatus = org.etsi.osl.tmf.ri639.model.ResourceStatusType.AVAILABLE OR " + + " srv.resourceStatus = org.etsi.osl.tmf.ri639.model.ResourceStatusType.RESERVED OR " + + " srv.resourceStatus = org.etsi.osl.tmf.ri639.model.ResourceStatusType.STANDBY) AND " + + "char.name = 'externalPartnerServiceId'" + ) + + List findActiveAndReservedResourcesOfPartners(); + + + List findByNameAndResourceVersion(String aname, String aversion); + List findByNameAndCategoryAndResourceVersion(String aname, String acategory, String aversion); +} diff --git a/src/main/java/org/etsi/osl/tmf/ri639/reposervices/ResourceRepoService.java b/src/main/java/org/etsi/osl/tmf/ri639/reposervices/ResourceRepoService.java new file mode 100644 index 0000000..08800a8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ri639/reposervices/ResourceRepoService.java @@ -0,0 +1,598 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.ri639.reposervices; + +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.UserPartRoleType; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceSpecificationRepoService; +import org.etsi.osl.tmf.ri639.api.ResourceApiRouteBuilderEvents; +import org.etsi.osl.tmf.ri639.model.Characteristic; +import org.etsi.osl.tmf.ri639.model.Feature; +import org.etsi.osl.tmf.ri639.model.LogicalResource; +import org.etsi.osl.tmf.ri639.model.PhysicalResource; +import org.etsi.osl.tmf.ri639.model.Resource; +import org.etsi.osl.tmf.ri639.model.ResourceAttributeValueChangeEvent; +import org.etsi.osl.tmf.ri639.model.ResourceAttributeValueChangeNotification; +import org.etsi.osl.tmf.ri639.model.ResourceCreate; +import org.etsi.osl.tmf.ri639.model.ResourceCreateEvent; +import org.etsi.osl.tmf.ri639.model.ResourceCreateNotification; +import org.etsi.osl.tmf.ri639.model.ResourceRelationship; +import org.etsi.osl.tmf.ri639.model.ResourceStateChangeEvent; +import org.etsi.osl.tmf.ri639.model.ResourceStateChangeNotification; +import org.etsi.osl.tmf.ri639.model.ResourceUpdate; +import org.etsi.osl.tmf.ri639.repo.ResourceRepository; +import org.etsi.osl.tmf.sim638.model.Service; +import org.hibernate.Hibernate; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.transform.ResultTransformer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + + + +@org.springframework.stereotype.Service +public class ResourceRepoService { + + private static final transient Log logger = + LogFactory.getLog(ResourceRepoService.class.getName()); + + @Autowired + ObjectMapper objectMapper; + + @Autowired + ResourceRepository resourceRepo; + + @Autowired + ResourceSpecificationRepoService resourceSpecRepoService; + + private SessionFactory sessionFactory; + + @Autowired + ResourceApiRouteBuilderEvents resourceApiRouteBuilder; + + @Autowired + public ResourceRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + public List findAll() { + + return (List) this.resourceRepo.findAll(); + } + + public List findAll(@Valid String fields, Map allParams) + throws UnsupportedEncodingException { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + + try { + String sql = "SELECT " + "srv.uuid as uuid," + "srv.startOperatingDate as startOperatingDate," + + "srv.name as name," + "srv.category as category," + + "srv.resourceStatus as resourceStatus," + "srv.type as type"; + + if (fields != null) { + String[] field = fields.split(","); + for (String f : field) { + sql += ", srv." + f + " as " + f; + } + + } + // sql += " FROM RIResource RILogicalRes RIPhysicalRes srv "; + sql += " FROM RIResource srv "; + + if (allParams.size() > 0) { + sql += " WHERE "; + for (String pname : allParams.keySet()) { + sql += " " + pname + " LIKE "; + String pval = URLDecoder.decode(allParams.get(pname), StandardCharsets.UTF_8.toString()); + sql += "'" + pval + "'"; + } + + } + + sql += " ORDER BY srv.startOperatingDate DESC"; + + List mapaEntity = + session.createQuery(sql).setResultTransformer(new ResultTransformer() { + + @Override + public Object transformTuple(Object[] tuple, String[] aliases) { + Map result = new LinkedHashMap(tuple.length); + for (int i = 0; i < tuple.length; i++) { + String alias = aliases[i]; + if (alias.equals("uuid")) { + result.put("id", tuple[i]); + } + if (alias.equals("type")) { + alias = "@type"; + } + if (alias.equals("relatedParty_name")) { + if (result.get("relatedParty") == null) { + result.put("relatedParty", new ArrayList()); + } + ArrayList rpList = (ArrayList) result.get("relatedParty"); + LinkedHashMap rp = new LinkedHashMap(); + rp.put("name", tuple[i]); + rp.put("role", "REQUESTER"); + rpList.add(rp); + } + + if (alias != null) { + result.put(alias, tuple[i]); + } + } + + return result; + } + + @Override + public List transformList(List collection) { + return collection; + } + }).list(); + + + + return mapaEntity; + + + + } finally { + tx.commit(); + session.close(); + } + + } + + + public List findAll(String name, UserPartRoleType requester) { + + return (List) this.resourceRepo.findByRolename(name); + } + + + public Resource addResource(@Valid ResourceCreate resource) { + logger.info("Will add Resource: " + resource.getName()); + + Resource s; + + if (resource.getAtType() != null + && resource.getAtType().toLowerCase().contains("physicalresource")) { + s = new PhysicalResource(); + } else { + s = new LogicalResource(); + } + + if (resource.getAtType() != null) { + s.setType(resource.getAtType()); + } + s.setName(resource.getName()); + s.setCategory(resource.getCategory()); + s.setDescription(resource.getDescription()); + + if ( resource.getStartOperatingDate() == null ) { + s.setStartOperatingDate(OffsetDateTime.now(ZoneOffset.UTC)); + } else { + s.setStartOperatingDate(resource.getStartOperatingDate()); + } + s.setEndOperatingDate(resource.getEndOperatingDate()); + s.setUsageState(resource.getUsageState()); + s.setResourceStatus(resource.getResourceStatus()); + s.setResourceVersion(resource.getResourceVersion()); + s.setOperationalState(resource.getOperationalState()); + s.setAdministrativeState(resource.getAdministrativeState()); + + + + ResourceSpecificationRef thespecRef = new ResourceSpecificationRef(); + thespecRef.setId(resource.getResourceSpecification().getId()); + thespecRef.setName(resource.getResourceSpecification().getName()); + // resCreate.setResourceSpecification( thespecRef ); + s.setResourceSpecification(thespecRef); + + + if (resource.getPlace() != null) { + s.setPlace(resource.getPlace()); + } + + if (resource.getNote() != null) { + s.getNote().addAll(resource.getNote()); + } + + if (resource.getRelatedParty() != null) { + s.getRelatedParty().addAll(resource.getRelatedParty()); + } + + if (resource.getResourceCharacteristic() != null) { + s.getResourceCharacteristic().addAll(resource.getResourceCharacteristic()); + } + + if (resource.getResourceRelationship() != null) { + s.getResourceRelationship().addAll(resource.getResourceRelationship()); + } + if (resource.getAttachment() != null) { + s.getAttachment().addAll(resource.getAttachment()); + } + if (resource.getActivationFeature() != null) { + s.getActivationFeature().addAll(resource.getActivationFeature()); + } + + Note noteItem = new Note(); + noteItem.setText("Resource status: " + s.getResourceStatus()); + noteItem.setAuthor("API"); + noteItem.setDate(OffsetDateTime.now(ZoneOffset.UTC)); + s.addNoteItem(noteItem); + + s = this.resourceRepo.save(s); + + raiseResourceCreateNotification(s); + return s; + } + + + + @Transactional + public Resource findByUuid(String id) { + Optional optionalCat = this.resourceRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + @Transactional + public Resource updateResource(String id, @Valid ResourceUpdate resourceUpd, + boolean propagateToSO) { + Resource resource = this.getResourceEager(id); + + if (resource == null) { + + logger.error("Resource cannot be found in registry, UUID: " + id); + return null; + } + + logger.info("Will update Resource: " + resource.getName()); + // logger.info("Will update service details: " + s.toString() ); + + // ObjectMapper mapper = new ObjectMapper(); + // String originaServiceAsJson = null; + // try { + // originaServiceAsJson = mapper.writeValueAsString( resource ); + // } catch (JsonProcessingException e) { + // logger.error("cannot umarshall service: " + resource.getName() ); + // e.printStackTrace(); + // } + + + if (resourceUpd.getResourceRelationship() != null) { + // resource.getResourceRelationship().addAll( resourceUpd.getResourceRelationship() ); + // new LinkedHashSet( list ) + resource.setResourceRelationship( + new LinkedHashSet(resourceUpd.getResourceRelationship())); + } + + + if (resourceUpd.getAtType() != null) { + resource.setType(resourceUpd.getAtType()); + } + + if (resourceUpd.getName() != null) { + resource.setName(resourceUpd.getName()); + } + + if (resourceUpd.getCategory() != null) { + resource.setCategory(resourceUpd.getCategory()); + } + if (resourceUpd.getDescription() != null) { + resource.setDescription(resourceUpd.getDescription()); + } + if (resourceUpd.getStartOperatingDate() != null) { + resource.setStartOperatingDate(resourceUpd.getStartOperatingDate()); + } + if (resourceUpd.getEndOperatingDate() != null) { + resource.setEndOperatingDate(resourceUpd.getEndOperatingDate()); + } + + if (resourceUpd.getUsageState() != null) { + resource.setUsageState(resourceUpd.getUsageState()); + } + + boolean resourceStateChanged = false; + if (resourceUpd.getResourceStatus() != null) { + if (resourceUpd.getResourceStatus().equals(resource.getResourceStatus())) { + resourceStateChanged = true; + } + resource.setResourceStatus(resourceUpd.getResourceStatus()); + + } + + if (resourceUpd.getResourceVersion() != null) { + resource.setResourceVersion(resourceUpd.getResourceVersion()); + } + if (resourceUpd.getOperationalState() != null) { + resource.setOperationalState(resourceUpd.getOperationalState()); + } + if (resourceUpd.getAdministrativeState() != null) { + resource.setAdministrativeState(resourceUpd.getAdministrativeState()); + } + + + if (resourceUpd.getResourceSpecification() != null) { + resource.setResourceSpecification(resourceUpd.getResourceSpecification()); + } + + if (resourceUpd.getPlace() != null) { + resource.setPlace(resourceUpd.getPlace()); + } + + + /** + * the following need to be modified for deleting items from lists. + */ + + if (resourceUpd.getNote() != null) { + for (Note n : resourceUpd.getNote()) { + if (n.getUuid() == null) { + resource.addNoteItem(n); + } + } + } + + if (resourceUpd.getRelatedParty() != null) { + for (RelatedParty n : resourceUpd.getRelatedParty()) { + if (n.getUuid() == null) { + resource.addRelatedPartyItem(n); + } + } + } + + boolean resourceCharacteristicChanged = false; + String charsChanged=""; + if (resourceUpd.getResourceCharacteristic() != null) { + for (Characteristic n : resourceUpd.getResourceCharacteristic()) { + + if (resource.getResourceCharacteristicByName(n.getName()) != null) { + + Characteristic origChar = resource.getResourceCharacteristicByName(n.getName()); + if ((origChar != null) && (origChar.getValue() != null) && (origChar.getValue().getValue() != null)) { + if (!origChar.getValue().getValue().equals(n.getValue().getValue())) { + resourceCharacteristicChanged = true; + charsChanged = charsChanged + n.getName() + ","; + } + } + + resource.getResourceCharacteristicByName(n.getName()) + .setValue(new Any(n.getValue().getValue(), n.getValue().getAlias())); + } else { + resource.addResourceCharacteristicItem(n); + resourceCharacteristicChanged = true; + charsChanged = charsChanged + n.getName() + ","; + } + } + } + + if (resourceCharacteristicChanged) { + Note n = new Note(); + n.setText("Resource characteristics changed : " + charsChanged); + n.setAuthor( "RI6398-API" ); + n.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() ); + resource.addNoteItem( n ); + + } + + if (resourceStateChanged) { + Note n = new Note(); + n.setText("Resource resourceStateChanged changed to " + resource.getResourceStatus().toString() ); + n.setAuthor( "RI6398-API" ); + n.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() ); + resource.addNoteItem( n ); + + } + + + if (resourceUpd.getActivationFeature() != null) { + for (Feature n : resourceUpd.getActivationFeature()) { + if (n.getId() != null) { + // we need to update this ? + } else { + resource.getActivationFeature().add(n); + } + + } + } + + + resource = this.resourceRepo.save(resource); + if (resourceCharacteristicChanged) { + raiseResourceAttributeValueChangeEventNotification(resource); + } else if (resourceStateChanged) { + raiseResourceStateChangeEventNotification(resource); + } + return resource; + } + + public String getResourceEagerAsString(String id) throws JsonProcessingException { + Resource s = this.getResourceEager(id); + ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new Hibernate5JakartaModule()); + String res = mapper.writeValueAsString(s); + + return res; + } + + public Resource getResourceEager(String id) { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + Resource s = null; + try { + s = (Resource) session.get(Resource.class, id); + if (s == null) { + return this.findByUuid(id);// last resort + } + + Hibernate.initialize(s.getRelatedParty()); + Hibernate.initialize(s.getNote()); + Hibernate.initialize(s.getResourceCharacteristic()); + Hibernate.initialize(s.getResourceSpecification()); + Hibernate.initialize(s.getResourceRelationship()); + Hibernate.initialize(s.getAttachment()); + Hibernate.initialize(s.getActivationFeature()); + + + tx.commit(); + } finally { + session.close(); + } + + return s; + } + + + @Transactional + private void raiseResourceCreateNotification(Resource so) { + ResourceCreateNotification n = new ResourceCreateNotification(); + ResourceCreateEvent event = new ResourceCreateEvent(); + event.getEvent().setResource(so); + n.setEvent(event); + resourceApiRouteBuilder.publishEvent(n, so.getId()); + + } + + @Transactional + private void raiseResourceAttributeValueChangeEventNotification(Resource so) { + ResourceAttributeValueChangeNotification n = new ResourceAttributeValueChangeNotification(); + ResourceAttributeValueChangeEvent event = new ResourceAttributeValueChangeEvent(); + event.getEvent().setResource(so); + n.setEvent(event); + resourceApiRouteBuilder.publishEvent(n, so.getId()); + + } + + + + @Transactional + private void raiseResourceStateChangeEventNotification(Resource so) { + ResourceStateChangeNotification n = new ResourceStateChangeNotification(); + ResourceStateChangeEvent event = new ResourceStateChangeEvent(); + event.getEvent().setResource(so); + n.setEvent(event); + resourceApiRouteBuilder.publishEvent(n, so.getId()); + + } + + @Transactional + public List findAllActiveResourcesToTerminate() { + + List result = new ArrayList<>(); + List resourcs = this.resourceRepo.findActiveToTerminate(); + for (Resource r : resourcs) { + result.add(r.getId()); + } + + return result; + } + + /** + * @return UUIDs of Services and put them in a List + */ + @Transactional + public List findAllActiveAndReservedResourcesOfPartners() { + + List result = new ArrayList<>(); + List srvs = this.resourceRepo.findActiveAndReservedResourcesOfPartners(); + for (Resource r : srvs) { + result.add(r.getId()); + } + + return result; + } + + public Void deleteByUuid(String id) { + Optional optionalCat = this.resourceRepo.findByUuid(id); + Resource s = optionalCat.get(); + if (s == null) { + return null; + } + + + this.resourceRepo.delete(s); + return null; + } + + + @Transactional + public Resource addOrUpdateResourceByNameCategoryVersion(String aName, String aCategory, + String aVersion, ResourceCreate aesourceCreate) { + + List resources = + this.resourceRepo.findByNameAndCategoryAndResourceVersion(aName, aCategory, aVersion); + Resource result = null; + + if (resources.size() > 0) { + // perform update to the first one + String resID = resources.get(0).getUuid(); + result = this.updateResource(resID, aesourceCreate, false); + + + + } else { + result = this.addResource(aesourceCreate); + } + + ObjectMapper mapper = new ObjectMapper(); + try { + String originaServiceAsJson = mapper.writeValueAsString(result); + logger.debug(originaServiceAsJson); + } catch (JsonProcessingException e) { + logger.error("cannot umarshall service: " + result.getName()); + e.printStackTrace(); + } + + return result; + } + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/api/ApiException.java b/src/main/java/org/etsi/osl/tmf/ro652/api/ApiException.java new file mode 100644 index 0000000..332f735 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/api/ApiException.java @@ -0,0 +1,10 @@ +package org.etsi.osl.tmf.ro652.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/api/ApiOriginFilter.java b/src/main/java/org/etsi/osl/tmf/ro652/api/ApiOriginFilter.java new file mode 100644 index 0000000..a368e1d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/api/ApiOriginFilter.java @@ -0,0 +1,31 @@ +package org.etsi.osl.tmf.ro652.api; + +import java.io.IOException; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ApiOriginFilter implements jakarta.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/api/ApiResponseMessage.java b/src/main/java/org/etsi/osl/tmf/ro652/api/ApiResponseMessage.java new file mode 100644 index 0000000..b3279a6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/api/ApiResponseMessage.java @@ -0,0 +1,69 @@ +package org.etsi.osl.tmf.ro652.api; + +import jakarta.xml.bind.annotation.XmlTransient; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +@jakarta.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/api/CancelResourceOrderApi.java b/src/main/java/org/etsi/osl/tmf/ro652/api/CancelResourceOrderApi.java new file mode 100644 index 0000000..876396c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/api/CancelResourceOrderApi.java @@ -0,0 +1,144 @@ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.ro652.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.ro652.model.CancelResourceOrder; +import org.etsi.osl.tmf.ro652.model.CancelResourceOrderCreate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +@Tag(name = "cancelResourceOrder", description = "the cancelResourceOrder API") +public interface CancelResourceOrderApi { + + Logger log = LoggerFactory.getLogger(CancelResourceOrderApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a CancelResourceOrder", operationId = "createCancelResourceOrder", description = "This operation creates a CancelResourceOrder entity.", tags={ "cancelResourceOrder", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/cancelResourceOrder", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createCancelResourceOrder(@Parameter(description = "The CancelResourceOrder to be created" ,required=true ) @Valid @RequestBody CancelResourceOrderCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"requestedCancellationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"resourceOrder\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"cancellationReason\" : \"cancellationReason\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"effectiveCancellationDate\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}", CancelResourceOrder.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CancelResourceOrderApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find CancelResourceOrder objects", operationId = "listCancelResourceOrder", description = "This operation list or find CancelResourceOrder entities" , tags={ "cancelResourceOrder", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/cancelResourceOrder", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listCancelResourceOrder(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"requestedCancellationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"resourceOrder\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"cancellationReason\" : \"cancellationReason\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"effectiveCancellationDate\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}, {\r\n \"requestedCancellationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"resourceOrder\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"cancellationReason\" : \"cancellationReason\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"effectiveCancellationDate\" : \"2000-01-23T04:56:07.000+00:00\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CancelResourceOrderApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a CancelResourceOrder by ID", operationId = "retrieveCancelResourceOrder", description = "This operation retrieves a CancelResourceOrder entity. Attribute selection is enabled for all first level attributes.", tags={ "cancelResourceOrder", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/cancelResourceOrder/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveCancelResourceOrder(@Parameter(description = "Identifier of the CancelResourceOrder",required=true) @PathVariable("id") String id +,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"requestedCancellationDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"resourceOrder\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"cancellationReason\" : \"cancellationReason\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"acknowledged\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"effectiveCancellationDate\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}", CancelResourceOrder.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default CancelResourceOrderApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/api/CancelResourceOrderApiController.java b/src/main/java/org/etsi/osl/tmf/ro652/api/CancelResourceOrderApiController.java new file mode 100644 index 0000000..6c01d6b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/api/CancelResourceOrderApiController.java @@ -0,0 +1,34 @@ +package org.etsi.osl.tmf.ro652.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +@Controller +public class CancelResourceOrderApiController implements CancelResourceOrderApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public CancelResourceOrderApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/ro652/api/HubApi.java new file mode 100644 index 0000000..651ec4d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/api/HubApi.java @@ -0,0 +1,100 @@ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.ro652.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.ro652.model.EventSubscription; +import org.etsi.osl.tmf.ro652.model.EventSubscriptionInput; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +@Tag(name = "hub", description = "the hub API") +public interface HubApi { + + Logger log = LoggerFactory.getLogger(HubApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Register a listener", operationId = "registerListener", description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Subscribed" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Unregister a listener", operationId = "unregisterListener", description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method not allowed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/ro652/api/HubApiController.java new file mode 100644 index 0000000..cbba137 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/api/HubApiController.java @@ -0,0 +1,37 @@ +package org.etsi.osl.tmf.ro652.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") + +@Controller("HubApiController652") +@RequestMapping("/resourceOrderingManagement/v4/") +public class HubApiController implements HubApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public HubApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/api/ListenerApi.java b/src/main/java/org/etsi/osl/tmf/ro652/api/ListenerApi.java new file mode 100644 index 0000000..f6e1bde --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/api/ListenerApi.java @@ -0,0 +1,308 @@ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.ro652.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.ro652.model.CancelResourceOrderCreateEvent; +import org.etsi.osl.tmf.ro652.model.CancelResourceOrderInformationRequiredEvent; +import org.etsi.osl.tmf.ro652.model.CancelResourceOrderStateChangeEvent; +import org.etsi.osl.tmf.ro652.model.EventSubscription; +import org.etsi.osl.tmf.ro652.model.ResourceOrderAttributeValueChangeEvent; +import org.etsi.osl.tmf.ro652.model.ResourceOrderCreateEvent; +import org.etsi.osl.tmf.ro652.model.ResourceOrderDeleteEvent; +import org.etsi.osl.tmf.ro652.model.ResourceOrderInformationRequiredEvent; +import org.etsi.osl.tmf.ro652.model.ResourceOrderStateChangeEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +@Tag(name = "listener", description = "the listener API") +public interface ListenerApi { + + Logger log = LoggerFactory.getLogger(ListenerApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Client listener for entity CancelResourceOrderCreateEvent", operationId = "listenToCancelResourceOrderCreateEvent", description = "Example of a client listener for receiving the notification CancelResourceOrderCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/cancelResourceOrderCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToCancelResourceOrderCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody CancelResourceOrderCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity CancelResourceOrderInformationRequiredEvent", operationId = "listenToCancelResourceOrderInformationRequiredEvent", description = "Example of a client listener for receiving the notification CancelResourceOrderInformationRequiredEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/cancelResourceOrderInformationRequiredEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToCancelResourceOrderInformationRequiredEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody CancelResourceOrderInformationRequiredEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity CancelResourceOrderStateChangeEvent", operationId = "listenToCancelResourceOrderStateChangeEvent", description = "Example of a client listener for receiving the notification CancelResourceOrderStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/cancelResourceOrderStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToCancelResourceOrderStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody CancelResourceOrderStateChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceOrderAttributeValueChangeEvent", operationId = "listenToResourceOrderAttributeValueChangeEvent", description = "Example of a client listener for receiving the notification ResourceOrderAttributeValueChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceOrderAttributeValueChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceOrderAttributeValueChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceOrderAttributeValueChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceOrderCreateEvent", operationId = "listenToResourceOrderCreateEvent", description = "Example of a client listener for receiving the notification ResourceOrderCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceOrderCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceOrderCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceOrderCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceOrderDeleteEvent", operationId = "listenToResourceOrderDeleteEvent", description = "Example of a client listener for receiving the notification ResourceOrderDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceOrderDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceOrderDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceOrderDeleteEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceOrderInformationRequiredEvent", operationId = "listenToResourceOrderInformationRequiredEvent", description = "Example of a client listener for receiving the notification ResourceOrderInformationRequiredEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceOrderInformationRequiredEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceOrderInformationRequiredEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceOrderInformationRequiredEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ResourceOrderStateChangeEvent", operationId = "listenToResourceOrderStateChangeEvent", description = "Example of a client listener for receiving the notification ResourceOrderStateChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/resourceOrderStateChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToResourceOrderStateChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ResourceOrderStateChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/api/ListenerApiController.java b/src/main/java/org/etsi/osl/tmf/ro652/api/ListenerApiController.java new file mode 100644 index 0000000..6bca170 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/api/ListenerApiController.java @@ -0,0 +1,37 @@ +package org.etsi.osl.tmf.ro652.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") + +@Controller("ListenerApiController652") +@RequestMapping("/resourceOrderingManagement/v4/") +public class ListenerApiController implements ListenerApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ListenerApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/api/NotFoundException.java b/src/main/java/org/etsi/osl/tmf/ro652/api/NotFoundException.java new file mode 100644 index 0000000..f7e193f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/api/NotFoundException.java @@ -0,0 +1,10 @@ +package org.etsi.osl.tmf.ro652.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class NotFoundException extends ApiException { + private int code; + public NotFoundException (int code, String msg) { + super(code, msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/api/ResourceOrderApi.java b/src/main/java/org/etsi/osl/tmf/ro652/api/ResourceOrderApi.java new file mode 100644 index 0000000..f871ca5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/api/ResourceOrderApi.java @@ -0,0 +1,207 @@ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.ro652.api; + +import java.io.IOException; +import java.security.Principal; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.ro652.model.ResourceOrder; +import org.etsi.osl.tmf.ro652.model.ResourceOrderCreate; +import org.etsi.osl.tmf.ro652.model.ResourceOrderUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +@Tag(name = "resourceOrder", description = "the resourceOrder API") +public interface ResourceOrderApi { + + Logger log = LoggerFactory.getLogger(ResourceOrderApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a ResourceOrder", operationId = "createResourceOrder", description = "This operation creates a ResourceOrder entity." , tags = { + "resourceOrder", }) + @ApiResponses(value = { @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceOrder", produces = { "application/json;charset=utf-8" }, consumes = { + "application/json;charset=utf-8" }, method = RequestMethod.POST) + default ResponseEntity createResourceOrder( + Principal principal, + @Parameter(description = "The ResourceOrder to be created", required = true) @Valid @RequestBody ResourceOrderCreate roCreate) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue( + "{\r\n \"orderType\" : \"orderType\",\r\n \"note\" : [ {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"orderItem\" : [ {\r\n \"quantity\" : 6,\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"administrativeState\" : \"locked\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"operationalState\" : \"enable\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"action\" : \"action\",\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"orderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"quantity\" : 6,\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"administrativeState\" : \"locked\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"operationalState\" : \"enable\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"action\" : \"action\",\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"orderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"externalId\" : \"externalId\",\r\n \"priority\" : 0,\r\n \"relatedParty\" : [ null, null ],\r\n \"requestedStartDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"externalReference\" : [ {\r\n \"owner\" : \"owner\",\r\n \"@baseType\" : \"@baseType\",\r\n \"entityType\" : \"entityType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"owner\" : \"owner\",\r\n \"@baseType\" : \"@baseType\",\r\n \"entityType\" : \"entityType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"expectedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"startDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"requestedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}", + ResourceOrder.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default ResourceOrderApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "Deletes a ResourceOrder", operationId = "deleteResourceOrder", description = "This operation deletes a ResourceOrder entity.", tags = { + "resourceOrder", }) + @ApiResponses(value = { @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceOrder/{id}", produces = { + "application/json;charset=utf-8" }, method = RequestMethod.DELETE) + default ResponseEntity deleteResourceOrder( + @Parameter(description = "Identifier of the ResourceOrder", required = true) @PathVariable("id") String id) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default ResourceOrderApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "List or find ResourceOrder objects", operationId = "listResourceOrder", description = "This operation list or find ResourceOrder entities" , tags = { + "resourceOrder", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceOrder", produces = { + "application/json;charset=utf-8" }, method = RequestMethod.GET) + default ResponseEntity> listResourceOrder( + @Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue( + "[ {\r\n \"orderType\" : \"orderType\",\r\n \"note\" : [ {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"orderItem\" : [ {\r\n \"quantity\" : 6,\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"administrativeState\" : \"locked\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"operationalState\" : \"enable\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"action\" : \"action\",\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"orderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"quantity\" : 6,\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"administrativeState\" : \"locked\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"operationalState\" : \"enable\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"action\" : \"action\",\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"orderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"externalId\" : \"externalId\",\r\n \"priority\" : 0,\r\n \"relatedParty\" : [ null, null ],\r\n \"requestedStartDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"externalReference\" : [ {\r\n \"owner\" : \"owner\",\r\n \"@baseType\" : \"@baseType\",\r\n \"entityType\" : \"entityType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"owner\" : \"owner\",\r\n \"@baseType\" : \"@baseType\",\r\n \"entityType\" : \"entityType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"expectedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"startDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"requestedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}, {\r\n \"orderType\" : \"orderType\",\r\n \"note\" : [ {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"orderItem\" : [ {\r\n \"quantity\" : 6,\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"administrativeState\" : \"locked\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"operationalState\" : \"enable\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"action\" : \"action\",\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"orderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"quantity\" : 6,\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"administrativeState\" : \"locked\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"operationalState\" : \"enable\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"action\" : \"action\",\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"orderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"externalId\" : \"externalId\",\r\n \"priority\" : 0,\r\n \"relatedParty\" : [ null, null ],\r\n \"requestedStartDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"externalReference\" : [ {\r\n \"owner\" : \"owner\",\r\n \"@baseType\" : \"@baseType\",\r\n \"entityType\" : \"entityType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"owner\" : \"owner\",\r\n \"@baseType\" : \"@baseType\",\r\n \"entityType\" : \"entityType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"expectedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"startDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"requestedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\"\r\n} ]", + List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default ResourceOrderApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "Updates partially a ResourceOrder", operationId = "patchResourceOrder", description = "This operation updates partially a ResourceOrder entity." , tags = { + "resourceOrder", }) + @ApiResponses(value = { @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceOrder/{id}", produces = { "application/json;charset=utf-8" }, consumes = { + "application/json;charset=utf-8" }, method = RequestMethod.PATCH) + default ResponseEntity patchResourceOrder( + @Parameter(description = "The ResourceOrder to be updated", required = true) @Valid @RequestBody ResourceOrderUpdate body, + @Parameter(description = "Identifier of the ResourceOrder", required = true) @PathVariable("id") String id) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue( + "{\r\n \"orderType\" : \"orderType\",\r\n \"note\" : [ {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"orderItem\" : [ {\r\n \"quantity\" : 6,\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"administrativeState\" : \"locked\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"operationalState\" : \"enable\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"action\" : \"action\",\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"orderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"quantity\" : 6,\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"administrativeState\" : \"locked\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"operationalState\" : \"enable\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"action\" : \"action\",\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"orderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"externalId\" : \"externalId\",\r\n \"priority\" : 0,\r\n \"relatedParty\" : [ null, null ],\r\n \"requestedStartDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"externalReference\" : [ {\r\n \"owner\" : \"owner\",\r\n \"@baseType\" : \"@baseType\",\r\n \"entityType\" : \"entityType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"owner\" : \"owner\",\r\n \"@baseType\" : \"@baseType\",\r\n \"entityType\" : \"entityType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"expectedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"startDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"requestedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}", + ResourceOrder.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default ResourceOrderApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "Retrieves a ResourceOrder by ID", operationId = "retrieveResourceOrder", description = "This operation retrieves a ResourceOrder entity. Attribute selection is enabled for all first level attributes." , tags = { + "resourceOrder", }) + @ApiResponses(value = { @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourceOrder/{id}", produces = { + "application/json;charset=utf-8" }, method = RequestMethod.GET) + default ResponseEntity retrieveResourceOrder( + @Parameter(description = "Identifier of the ResourceOrder", required = true) @PathVariable("id") String id, + @Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue( + "{\r\n \"orderType\" : \"orderType\",\r\n \"note\" : [ {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"author\" : \"author\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"text\" : \"text\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"orderItem\" : [ {\r\n \"quantity\" : 6,\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"administrativeState\" : \"locked\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"operationalState\" : \"enable\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"action\" : \"action\",\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"orderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"quantity\" : 6,\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : {\r\n \"note\" : [ null, null ],\r\n \"@referredType\" : \"@referredType\",\r\n \"endOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"resourceVersion\" : \"resourceVersion\",\r\n \"resourceSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"description\" : \"description\",\r\n \"resourceCharacteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"resourceStatus\" : \"standby\",\r\n \"usageState\" : \"idle\",\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"attachmentType\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"mimeType\" : \"mimeType\",\r\n \"url\" : \"url\",\r\n \"isRef\" : true,\r\n \"size\" : {\r\n \"amount\" : 1.4658129,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"administrativeState\" : \"locked\",\r\n \"name\" : \"name\",\r\n \"resourceRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceRelationshipCharacteristic\" : [ null, null ]\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"startOperatingDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"operationalState\" : \"enable\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"action\" : \"action\",\r\n \"appointment\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"orderItemRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"orderItem\" : {\r\n \"itemId\" : \"itemId\",\r\n \"resourceOrderHref\" : \"resourceOrderHref\",\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"resourceOrderId\" : \"resourceOrderId\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"externalId\" : \"externalId\",\r\n \"priority\" : 0,\r\n \"relatedParty\" : [ null, null ],\r\n \"requestedStartDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"externalReference\" : [ {\r\n \"owner\" : \"owner\",\r\n \"@baseType\" : \"@baseType\",\r\n \"entityType\" : \"entityType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"owner\" : \"owner\",\r\n \"@baseType\" : \"@baseType\",\r\n \"entityType\" : \"entityType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"expectedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"category\" : \"category\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"orderDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"startDate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"requestedCompletionDate\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}", + ResourceOrder.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default ResourceOrderApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/api/ResourceOrderApiController.java b/src/main/java/org/etsi/osl/tmf/ro652/api/ResourceOrderApiController.java new file mode 100644 index 0000000..3c1c64e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/api/ResourceOrderApiController.java @@ -0,0 +1,115 @@ +package org.etsi.osl.tmf.ro652.api; + +import java.security.Principal; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.common.model.UserPartRoleType; +import org.etsi.osl.tmf.ro652.model.ResourceOrder; +import org.etsi.osl.tmf.ro652.model.ResourceOrderCreate; +import org.etsi.osl.tmf.ro652.reposervices.ResourceOrderRepoService; +import org.etsi.osl.tmf.util.AddUserAsOwnerToRelatedParties; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.oauth2.jwt.Jwt; +import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +@Controller +@RequestMapping("/resourceOrderingManagement/v4/") +public class ResourceOrderApiController implements ResourceOrderApi { + + private static final Logger log = LoggerFactory.getLogger( ResourceOrderApiController.class); + + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + + @Autowired + ResourceOrderRepoService resourceOrderRepoService; + + @org.springframework.beans.factory.annotation.Autowired + public ResourceOrderApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity createResourceOrder(Principal principal, @Valid ResourceOrderCreate roCreate) { + + + try { + //Object attr = request.getSession().getAttribute("SPRING_SECURITY_CONTEXT"); + //SecurityContextHolder.setContext( (SecurityContext) attr ); + + + log.info("authentication= " + principal.toString()); + String extInfo = null; + try { + + + if ( principal instanceof JwtAuthenticationToken) { + + JwtAuthenticationToken pr = ( JwtAuthenticationToken ) principal; + + Jwt lp = (Jwt) pr.getPrincipal(); + extInfo = lp.getClaimAsString("email"); + log.debug("extInfo= " + extInfo); + + roCreate.setRelatedParty(AddUserAsOwnerToRelatedParties.addUser( + principal.getName(), + //user.getId()+"", + principal.getName(), + UserPartRoleType.REQUESTER, + extInfo, + roCreate.getRelatedParty())); + } + else if ( principal instanceof UsernamePasswordAuthenticationToken ) { + roCreate.setRelatedParty(AddUserAsOwnerToRelatedParties.addUser( + principal.getName(), + //user.getId()+"", + principal.getName(), + UserPartRoleType.REQUESTER, + extInfo, + roCreate.getRelatedParty())); + } + + + }finally { + + } + + ResourceOrder c = resourceOrderRepoService.addResourceOrder( roCreate ); + + return new ResponseEntity(c, HttpStatus.OK); + + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/AppointmentRef.java b/src/main/java/org/etsi/osl/tmf/ro652/model/AppointmentRef.java new file mode 100644 index 0000000..e601a2e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/AppointmentRef.java @@ -0,0 +1,224 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Refers an appointment, such as a Customer presentation or internal meeting or site visit + */ +@Schema(description = "Refers an appointment, such as a Customer presentation or internal meeting or site visit") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class AppointmentRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public AppointmentRef id(String id) { + this.id = id; + return this; + } + + /** + * The identifier of the referred appointment + * @return id + **/ + @Schema(description = "The identifier of the referred appointment") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AppointmentRef href(String href) { + this.href = href; + return this; + } + + /** + * The reference of the appointment + * @return href + **/ + @Schema(description = "The reference of the appointment") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public AppointmentRef description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory text regarding the appointment made with a party + * @return description + **/ + @Schema(description = "An explanatory text regarding the appointment made with a party") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public AppointmentRef _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public AppointmentRef _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public AppointmentRef _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + public AppointmentRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AppointmentRef appointmentRef = (AppointmentRef) o; + return Objects.equals(this.id, appointmentRef.id) && + Objects.equals(this.href, appointmentRef.href) && + Objects.equals(this.description, appointmentRef.description) && + Objects.equals(this._atBaseType, appointmentRef._atBaseType) && + Objects.equals(this._atSchemaLocation, appointmentRef._atSchemaLocation) && + Objects.equals(this._atType, appointmentRef._atType) && + Objects.equals(this._atReferredType, appointmentRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, description, _atBaseType, _atSchemaLocation, _atType, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AppointmentRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/CancelOrder.java b/src/main/java/org/etsi/osl/tmf/ro652/model/CancelOrder.java new file mode 100644 index 0000000..04672ef --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/CancelOrder.java @@ -0,0 +1,275 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * A Order cancel is a type of task which can be used to place a request to cancel an order + */ +@Schema(description = "A Order cancel is a type of task which can be used to place a request to cancel an order") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class CancelOrder { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("cancellationReason") + private String cancellationReason = null; + + @JsonProperty("effectiveCancellationDate") + private OffsetDateTime effectiveCancellationDate = null; + + @JsonProperty("requestedCancellationDate") + private OffsetDateTime requestedCancellationDate = null; + + @JsonProperty("state") + private TaskStateType state = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public CancelOrder id(String id) { + this.id = id; + return this; + } + + /** + * id of the cancellation request (this is not an order id) + * @return id + **/ + @Schema(description = "id of the cancellation request (this is not an order id)") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CancelOrder href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink to access the cancellation request + * @return href + **/ + @Schema(description = "Hyperlink to access the cancellation request") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CancelOrder cancellationReason(String cancellationReason) { + this.cancellationReason = cancellationReason; + return this; + } + + /** + * Reason why the order is cancelled. + * @return cancellationReason + **/ + @Schema(description = "Reason why the order is cancelled.") + + public String getCancellationReason() { + return cancellationReason; + } + + public void setCancellationReason(String cancellationReason) { + this.cancellationReason = cancellationReason; + } + + public CancelOrder effectiveCancellationDate(OffsetDateTime effectiveCancellationDate) { + this.effectiveCancellationDate = effectiveCancellationDate; + return this; + } + + /** + * Date when the order is cancelled. + * @return effectiveCancellationDate + **/ + @Schema(description = "Date when the order is cancelled.") + + @Valid + public OffsetDateTime getEffectiveCancellationDate() { + return effectiveCancellationDate; + } + + public void setEffectiveCancellationDate(OffsetDateTime effectiveCancellationDate) { + this.effectiveCancellationDate = effectiveCancellationDate; + } + + public CancelOrder requestedCancellationDate(OffsetDateTime requestedCancellationDate) { + this.requestedCancellationDate = requestedCancellationDate; + return this; + } + + /** + * Date when the submitter wants the order to be cancelled + * @return requestedCancellationDate + **/ + @Schema(description = "Date when the submitter wants the order to be cancelled") + + @Valid + public OffsetDateTime getRequestedCancellationDate() { + return requestedCancellationDate; + } + + public void setRequestedCancellationDate(OffsetDateTime requestedCancellationDate) { + this.requestedCancellationDate = requestedCancellationDate; + } + + public CancelOrder state(TaskStateType state) { + this.state = state; + return this; + } + + /** + * Get state + * @return state + **/ + @Schema(description = "") + + @Valid + public TaskStateType getState() { + return state; + } + + public void setState(TaskStateType state) { + this.state = state; + } + + public CancelOrder _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public CancelOrder _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public CancelOrder _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CancelOrder cancelOrder = (CancelOrder) o; + return Objects.equals(this.id, cancelOrder.id) && + Objects.equals(this.href, cancelOrder.href) && + Objects.equals(this.cancellationReason, cancelOrder.cancellationReason) && + Objects.equals(this.effectiveCancellationDate, cancelOrder.effectiveCancellationDate) && + Objects.equals(this.requestedCancellationDate, cancelOrder.requestedCancellationDate) && + Objects.equals(this.state, cancelOrder.state) && + Objects.equals(this._atBaseType, cancelOrder._atBaseType) && + Objects.equals(this._atSchemaLocation, cancelOrder._atSchemaLocation) && + Objects.equals(this._atType, cancelOrder._atType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, cancellationReason, effectiveCancellationDate, requestedCancellationDate, state, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CancelOrder {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" cancellationReason: ").append(toIndentedString(cancellationReason)).append("\n"); + sb.append(" effectiveCancellationDate: ").append(toIndentedString(effectiveCancellationDate)).append("\n"); + sb.append(" requestedCancellationDate: ").append(toIndentedString(requestedCancellationDate)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrder.java b/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrder.java new file mode 100644 index 0000000..74e9baa --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrder.java @@ -0,0 +1,302 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Request for cancellation an existing resource order + */ +@Schema(description = "Request for cancellation an existing resource order") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class CancelResourceOrder { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("cancellationReason") + private String cancellationReason = null; + + @JsonProperty("effectiveCancellationDate") + private OffsetDateTime effectiveCancellationDate = null; + + @JsonProperty("requestedCancellationDate") + private OffsetDateTime requestedCancellationDate = null; + + @JsonProperty("resourceOrder") + private ResourceOrderRef resourceOrder = null; + + @JsonProperty("state") + private TaskStateType state = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public CancelResourceOrder id(String id) { + this.id = id; + return this; + } + + /** + * id of the cancellation request (this is not an order id) + * @return id + **/ + @Schema(description = "id of the cancellation request (this is not an order id)") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CancelResourceOrder href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink to access the cancellation request + * @return href + **/ + @Schema(description = "Hyperlink to access the cancellation request") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CancelResourceOrder cancellationReason(String cancellationReason) { + this.cancellationReason = cancellationReason; + return this; + } + + /** + * Reason why the order is cancelled. + * @return cancellationReason + **/ + @Schema(description = "Reason why the order is cancelled.") + + public String getCancellationReason() { + return cancellationReason; + } + + public void setCancellationReason(String cancellationReason) { + this.cancellationReason = cancellationReason; + } + + public CancelResourceOrder effectiveCancellationDate(OffsetDateTime effectiveCancellationDate) { + this.effectiveCancellationDate = effectiveCancellationDate; + return this; + } + + /** + * Date when the order is cancelled. + * @return effectiveCancellationDate + **/ + @Schema(description = "Date when the order is cancelled.") + + @Valid + public OffsetDateTime getEffectiveCancellationDate() { + return effectiveCancellationDate; + } + + public void setEffectiveCancellationDate(OffsetDateTime effectiveCancellationDate) { + this.effectiveCancellationDate = effectiveCancellationDate; + } + + public CancelResourceOrder requestedCancellationDate(OffsetDateTime requestedCancellationDate) { + this.requestedCancellationDate = requestedCancellationDate; + return this; + } + + /** + * Date when the submitter wants the order to be cancelled + * @return requestedCancellationDate + **/ + @Schema(description = "Date when the submitter wants the order to be cancelled") + + @Valid + public OffsetDateTime getRequestedCancellationDate() { + return requestedCancellationDate; + } + + public void setRequestedCancellationDate(OffsetDateTime requestedCancellationDate) { + this.requestedCancellationDate = requestedCancellationDate; + } + + public CancelResourceOrder resourceOrder(ResourceOrderRef resourceOrder) { + this.resourceOrder = resourceOrder; + return this; + } + + /** + * Get resourceOrder + * @return resourceOrder + **/ + @Schema(description = "") + @NotNull + + @Valid + public ResourceOrderRef getResourceOrder() { + return resourceOrder; + } + + public void setResourceOrder(ResourceOrderRef resourceOrder) { + this.resourceOrder = resourceOrder; + } + + public CancelResourceOrder state(TaskStateType state) { + this.state = state; + return this; + } + + /** + * Get state + * @return state + **/ + @Schema(description = "") + + @Valid + public TaskStateType getState() { + return state; + } + + public void setState(TaskStateType state) { + this.state = state; + } + + public CancelResourceOrder _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public CancelResourceOrder _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public CancelResourceOrder _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CancelResourceOrder cancelResourceOrder = (CancelResourceOrder) o; + return Objects.equals(this.id, cancelResourceOrder.id) && + Objects.equals(this.href, cancelResourceOrder.href) && + Objects.equals(this.cancellationReason, cancelResourceOrder.cancellationReason) && + Objects.equals(this.effectiveCancellationDate, cancelResourceOrder.effectiveCancellationDate) && + Objects.equals(this.requestedCancellationDate, cancelResourceOrder.requestedCancellationDate) && + Objects.equals(this.resourceOrder, cancelResourceOrder.resourceOrder) && + Objects.equals(this.state, cancelResourceOrder.state) && + Objects.equals(this._atBaseType, cancelResourceOrder._atBaseType) && + Objects.equals(this._atSchemaLocation, cancelResourceOrder._atSchemaLocation) && + Objects.equals(this._atType, cancelResourceOrder._atType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, cancellationReason, effectiveCancellationDate, requestedCancellationDate, resourceOrder, state, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CancelResourceOrder {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" cancellationReason: ").append(toIndentedString(cancellationReason)).append("\n"); + sb.append(" effectiveCancellationDate: ").append(toIndentedString(effectiveCancellationDate)).append("\n"); + sb.append(" requestedCancellationDate: ").append(toIndentedString(requestedCancellationDate)).append("\n"); + sb.append(" resourceOrder: ").append(toIndentedString(resourceOrder)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderCreate.java b/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderCreate.java new file mode 100644 index 0000000..b990db1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderCreate.java @@ -0,0 +1,204 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Request for cancellation an existing resource order Skipped properties: id,href,state,effectiveCancellationDate + */ +@Schema(description = "Request for cancellation an existing resource order Skipped properties: id,href,state,effectiveCancellationDate") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class CancelResourceOrderCreate { + @JsonProperty("cancellationReason") + private String cancellationReason = null; + + @JsonProperty("requestedCancellationDate") + private OffsetDateTime requestedCancellationDate = null; + + @JsonProperty("resourceOrder") + private ResourceOrderRef resourceOrder = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public CancelResourceOrderCreate cancellationReason(String cancellationReason) { + this.cancellationReason = cancellationReason; + return this; + } + + /** + * Reason why the order is cancelled. + * @return cancellationReason + **/ + @Schema(description = "Reason why the order is cancelled.") + + public String getCancellationReason() { + return cancellationReason; + } + + public void setCancellationReason(String cancellationReason) { + this.cancellationReason = cancellationReason; + } + + public CancelResourceOrderCreate requestedCancellationDate(OffsetDateTime requestedCancellationDate) { + this.requestedCancellationDate = requestedCancellationDate; + return this; + } + + /** + * Date when the submitter wants the order to be cancelled + * @return requestedCancellationDate + **/ + @Schema(description = "Date when the submitter wants the order to be cancelled") + + @Valid + public OffsetDateTime getRequestedCancellationDate() { + return requestedCancellationDate; + } + + public void setRequestedCancellationDate(OffsetDateTime requestedCancellationDate) { + this.requestedCancellationDate = requestedCancellationDate; + } + + public CancelResourceOrderCreate resourceOrder(ResourceOrderRef resourceOrder) { + this.resourceOrder = resourceOrder; + return this; + } + + /** + * Get resourceOrder + * @return resourceOrder + **/ + @Schema(description = "") + @NotNull + + @Valid + public ResourceOrderRef getResourceOrder() { + return resourceOrder; + } + + public void setResourceOrder(ResourceOrderRef resourceOrder) { + this.resourceOrder = resourceOrder; + } + + public CancelResourceOrderCreate _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public CancelResourceOrderCreate _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public CancelResourceOrderCreate _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CancelResourceOrderCreate cancelResourceOrderCreate = (CancelResourceOrderCreate) o; + return Objects.equals(this.cancellationReason, cancelResourceOrderCreate.cancellationReason) && + Objects.equals(this.requestedCancellationDate, cancelResourceOrderCreate.requestedCancellationDate) && + Objects.equals(this.resourceOrder, cancelResourceOrderCreate.resourceOrder) && + Objects.equals(this._atBaseType, cancelResourceOrderCreate._atBaseType) && + Objects.equals(this._atSchemaLocation, cancelResourceOrderCreate._atSchemaLocation) && + Objects.equals(this._atType, cancelResourceOrderCreate._atType); + } + + @Override + public int hashCode() { + return Objects.hash(cancellationReason, requestedCancellationDate, resourceOrder, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CancelResourceOrderCreate {\n"); + + sb.append(" cancellationReason: ").append(toIndentedString(cancellationReason)).append("\n"); + sb.append(" requestedCancellationDate: ").append(toIndentedString(requestedCancellationDate)).append("\n"); + sb.append(" resourceOrder: ").append(toIndentedString(resourceOrder)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderCreateEvent.java b/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderCreateEvent.java new file mode 100644 index 0000000..cac68f4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderCreateEvent.java @@ -0,0 +1,347 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class CancelResourceOrderCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private CancelResourceOrderCreateEventPayload event = null; + + public CancelResourceOrderCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CancelResourceOrderCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CancelResourceOrderCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public CancelResourceOrderCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public CancelResourceOrderCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public CancelResourceOrderCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public CancelResourceOrderCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public CancelResourceOrderCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public CancelResourceOrderCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CancelResourceOrderCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public CancelResourceOrderCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public CancelResourceOrderCreateEvent event(CancelResourceOrderCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public CancelResourceOrderCreateEventPayload getEvent() { + return event; + } + + public void setEvent(CancelResourceOrderCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CancelResourceOrderCreateEvent cancelResourceOrderCreateEvent = (CancelResourceOrderCreateEvent) o; + return Objects.equals(this.id, cancelResourceOrderCreateEvent.id) && + Objects.equals(this.href, cancelResourceOrderCreateEvent.href) && + Objects.equals(this.eventId, cancelResourceOrderCreateEvent.eventId) && + Objects.equals(this.eventTime, cancelResourceOrderCreateEvent.eventTime) && + Objects.equals(this.eventType, cancelResourceOrderCreateEvent.eventType) && + Objects.equals(this.correlationId, cancelResourceOrderCreateEvent.correlationId) && + Objects.equals(this.domain, cancelResourceOrderCreateEvent.domain) && + Objects.equals(this.title, cancelResourceOrderCreateEvent.title) && + Objects.equals(this.description, cancelResourceOrderCreateEvent.description) && + Objects.equals(this.priority, cancelResourceOrderCreateEvent.priority) && + Objects.equals(this.timeOcurred, cancelResourceOrderCreateEvent.timeOcurred) && + Objects.equals(this.event, cancelResourceOrderCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CancelResourceOrderCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderCreateEventPayload.java new file mode 100644 index 0000000..26ca17b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderCreateEventPayload.java @@ -0,0 +1,80 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class CancelResourceOrderCreateEventPayload { + @JsonProperty("cancelResourceOrder") + private CancelResourceOrder cancelResourceOrder = null; + + public CancelResourceOrderCreateEventPayload cancelResourceOrder(CancelResourceOrder cancelResourceOrder) { + this.cancelResourceOrder = cancelResourceOrder; + return this; + } + + /** + * Get cancelResourceOrder + * @return cancelResourceOrder + **/ + @Schema(description = "") + + @Valid + public CancelResourceOrder getCancelResourceOrder() { + return cancelResourceOrder; + } + + public void setCancelResourceOrder(CancelResourceOrder cancelResourceOrder) { + this.cancelResourceOrder = cancelResourceOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CancelResourceOrderCreateEventPayload cancelResourceOrderCreateEventPayload = (CancelResourceOrderCreateEventPayload) o; + return Objects.equals(this.cancelResourceOrder, cancelResourceOrderCreateEventPayload.cancelResourceOrder); + } + + @Override + public int hashCode() { + return Objects.hash(cancelResourceOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CancelResourceOrderCreateEventPayload {\n"); + + sb.append(" cancelResourceOrder: ").append(toIndentedString(cancelResourceOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderInformationRequiredEvent.java b/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderInformationRequiredEvent.java new file mode 100644 index 0000000..f2a1c2a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderInformationRequiredEvent.java @@ -0,0 +1,323 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class CancelResourceOrderInformationRequiredEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("event") + private CancelResourceOrderInformationRequiredEventPayload event = null; + + public CancelResourceOrderInformationRequiredEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public CancelResourceOrderInformationRequiredEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public CancelResourceOrderInformationRequiredEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public CancelResourceOrderInformationRequiredEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public CancelResourceOrderInformationRequiredEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public CancelResourceOrderInformationRequiredEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public CancelResourceOrderInformationRequiredEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CancelResourceOrderInformationRequiredEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public CancelResourceOrderInformationRequiredEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public CancelResourceOrderInformationRequiredEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public CancelResourceOrderInformationRequiredEvent event(CancelResourceOrderInformationRequiredEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public CancelResourceOrderInformationRequiredEventPayload getEvent() { + return event; + } + + public void setEvent(CancelResourceOrderInformationRequiredEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CancelResourceOrderInformationRequiredEvent cancelResourceOrderInformationRequiredEvent = (CancelResourceOrderInformationRequiredEvent) o; + return Objects.equals(this.eventId, cancelResourceOrderInformationRequiredEvent.eventId) && + Objects.equals(this.eventTime, cancelResourceOrderInformationRequiredEvent.eventTime) && + Objects.equals(this.eventType, cancelResourceOrderInformationRequiredEvent.eventType) && + Objects.equals(this.correlationId, cancelResourceOrderInformationRequiredEvent.correlationId) && + Objects.equals(this.domain, cancelResourceOrderInformationRequiredEvent.domain) && + Objects.equals(this.title, cancelResourceOrderInformationRequiredEvent.title) && + Objects.equals(this.description, cancelResourceOrderInformationRequiredEvent.description) && + Objects.equals(this.priority, cancelResourceOrderInformationRequiredEvent.priority) && + Objects.equals(this.timeOcurred, cancelResourceOrderInformationRequiredEvent.timeOcurred) && + Objects.equals(this.fieldPath, cancelResourceOrderInformationRequiredEvent.fieldPath) && + Objects.equals(this.event, cancelResourceOrderInformationRequiredEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, fieldPath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CancelResourceOrderInformationRequiredEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderInformationRequiredEventPayload.java b/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderInformationRequiredEventPayload.java new file mode 100644 index 0000000..4cf9124 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderInformationRequiredEventPayload.java @@ -0,0 +1,80 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class CancelResourceOrderInformationRequiredEventPayload { + @JsonProperty("cancelResourceOrder") + private CancelResourceOrder cancelResourceOrder = null; + + public CancelResourceOrderInformationRequiredEventPayload cancelResourceOrder(CancelResourceOrder cancelResourceOrder) { + this.cancelResourceOrder = cancelResourceOrder; + return this; + } + + /** + * Get cancelResourceOrder + * @return cancelResourceOrder + **/ + @Schema(description = "") + + @Valid + public CancelResourceOrder getCancelResourceOrder() { + return cancelResourceOrder; + } + + public void setCancelResourceOrder(CancelResourceOrder cancelResourceOrder) { + this.cancelResourceOrder = cancelResourceOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CancelResourceOrderInformationRequiredEventPayload cancelResourceOrderInformationRequiredEventPayload = (CancelResourceOrderInformationRequiredEventPayload) o; + return Objects.equals(this.cancelResourceOrder, cancelResourceOrderInformationRequiredEventPayload.cancelResourceOrder); + } + + @Override + public int hashCode() { + return Objects.hash(cancelResourceOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CancelResourceOrderInformationRequiredEventPayload {\n"); + + sb.append(" cancelResourceOrder: ").append(toIndentedString(cancelResourceOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderStateChangeEvent.java new file mode 100644 index 0000000..cb62a1e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderStateChangeEvent.java @@ -0,0 +1,347 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class CancelResourceOrderStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private CancelResourceOrderStateChangeEventPayload event = null; + + public CancelResourceOrderStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CancelResourceOrderStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public CancelResourceOrderStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public CancelResourceOrderStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public CancelResourceOrderStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public CancelResourceOrderStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public CancelResourceOrderStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public CancelResourceOrderStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public CancelResourceOrderStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CancelResourceOrderStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public CancelResourceOrderStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public CancelResourceOrderStateChangeEvent event(CancelResourceOrderStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public CancelResourceOrderStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(CancelResourceOrderStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CancelResourceOrderStateChangeEvent cancelResourceOrderStateChangeEvent = (CancelResourceOrderStateChangeEvent) o; + return Objects.equals(this.id, cancelResourceOrderStateChangeEvent.id) && + Objects.equals(this.href, cancelResourceOrderStateChangeEvent.href) && + Objects.equals(this.eventId, cancelResourceOrderStateChangeEvent.eventId) && + Objects.equals(this.eventTime, cancelResourceOrderStateChangeEvent.eventTime) && + Objects.equals(this.eventType, cancelResourceOrderStateChangeEvent.eventType) && + Objects.equals(this.correlationId, cancelResourceOrderStateChangeEvent.correlationId) && + Objects.equals(this.domain, cancelResourceOrderStateChangeEvent.domain) && + Objects.equals(this.title, cancelResourceOrderStateChangeEvent.title) && + Objects.equals(this.description, cancelResourceOrderStateChangeEvent.description) && + Objects.equals(this.priority, cancelResourceOrderStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, cancelResourceOrderStateChangeEvent.timeOcurred) && + Objects.equals(this.event, cancelResourceOrderStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CancelResourceOrderStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderStateChangeEventPayload.java new file mode 100644 index 0000000..4defc2b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/CancelResourceOrderStateChangeEventPayload.java @@ -0,0 +1,80 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class CancelResourceOrderStateChangeEventPayload { + @JsonProperty("cancelResourceOrder") + private CancelResourceOrder cancelResourceOrder = null; + + public CancelResourceOrderStateChangeEventPayload cancelResourceOrder(CancelResourceOrder cancelResourceOrder) { + this.cancelResourceOrder = cancelResourceOrder; + return this; + } + + /** + * Get cancelResourceOrder + * @return cancelResourceOrder + **/ + @Schema(description = "") + + @Valid + public CancelResourceOrder getCancelResourceOrder() { + return cancelResourceOrder; + } + + public void setCancelResourceOrder(CancelResourceOrder cancelResourceOrder) { + this.cancelResourceOrder = cancelResourceOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CancelResourceOrderStateChangeEventPayload cancelResourceOrderStateChangeEventPayload = (CancelResourceOrderStateChangeEventPayload) o; + return Objects.equals(this.cancelResourceOrder, cancelResourceOrderStateChangeEventPayload.cancelResourceOrder); + } + + @Override + public int hashCode() { + return Objects.hash(cancelResourceOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CancelResourceOrderStateChangeEventPayload {\n"); + + sb.append(" cancelResourceOrder: ").append(toIndentedString(cancelResourceOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/CharacteristicRelationship.java b/src/main/java/org/etsi/osl/tmf/ro652/model/CharacteristicRelationship.java new file mode 100644 index 0000000..ac85cb0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/CharacteristicRelationship.java @@ -0,0 +1,174 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Another Characteristic that is related to the current Characteristic; + */ +@Schema(description = "Another Characteristic that is related to the current Characteristic;") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class CharacteristicRelationship { + @JsonProperty("id") + private String id = null; + + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public CharacteristicRelationship id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the characteristic + * @return id + **/ + @Schema(description = "Unique identifier of the characteristic") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CharacteristicRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * The type of relationship + * @return relationshipType + **/ + @Schema(description = "The type of relationship") + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public CharacteristicRelationship _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public CharacteristicRelationship _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public CharacteristicRelationship _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CharacteristicRelationship characteristicRelationship = (CharacteristicRelationship) o; + return Objects.equals(this.id, characteristicRelationship.id) && + Objects.equals(this.relationshipType, characteristicRelationship.relationshipType) && + Objects.equals(this._atBaseType, characteristicRelationship._atBaseType) && + Objects.equals(this._atSchemaLocation, characteristicRelationship._atSchemaLocation) && + Objects.equals(this._atType, characteristicRelationship._atType); + } + + @Override + public int hashCode() { + return Objects.hash(id, relationshipType, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CharacteristicRelationship {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/EntityRef.java b/src/main/java/org/etsi/osl/tmf/ro652/model/EntityRef.java new file mode 100644 index 0000000..bff7bd2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/EntityRef.java @@ -0,0 +1,224 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Entity reference schema to be use for all entityRef class. + */ +@Schema(description = "Entity reference schema to be use for all entityRef class.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class EntityRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public EntityRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a related entity. + * @return id + **/ + @Schema(description = "Unique identifier of a related entity.") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EntityRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the related entity. + * @return href + **/ + @Schema(description = "Reference of the related entity.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public EntityRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public EntityRef _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public EntityRef _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public EntityRef _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + public EntityRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntityRef entityRef = (EntityRef) o; + return Objects.equals(this.id, entityRef.id) && + Objects.equals(this.href, entityRef.href) && + Objects.equals(this.name, entityRef.name) && + Objects.equals(this._atBaseType, entityRef._atBaseType) && + Objects.equals(this._atSchemaLocation, entityRef._atSchemaLocation) && + Objects.equals(this._atType, entityRef._atType) && + Objects.equals(this._atReferredType, entityRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, _atBaseType, _atSchemaLocation, _atType, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntityRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/ro652/model/EventSubscription.java new file mode 100644 index 0000000..92c132d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/EventSubscription.java @@ -0,0 +1,129 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class EventSubscription { + @JsonProperty("id") + private String id = null; + + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscription id(String id) { + this.id = id; + return this; + } + + /** + * Id of the listener + * @return id + **/ + @Schema(description = "Id of the listener") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EventSubscription callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscription query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscription eventSubscription = (EventSubscription) o; + return Objects.equals(this.id, eventSubscription.id) && + Objects.equals(this.callback, eventSubscription.callback) && + Objects.equals(this.query, eventSubscription.query); + } + + @Override + public int hashCode() { + return Objects.hash(id, callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscription {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/EventSubscriptionInput.java b/src/main/java/org/etsi/osl/tmf/ro652/model/EventSubscriptionInput.java new file mode 100644 index 0000000..000dd04 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/EventSubscriptionInput.java @@ -0,0 +1,104 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class EventSubscriptionInput { + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscriptionInput callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscriptionInput query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscriptionInput eventSubscriptionInput = (EventSubscriptionInput) o; + return Objects.equals(this.callback, eventSubscriptionInput.callback) && + Objects.equals(this.query, eventSubscriptionInput.query); + } + + @Override + public int hashCode() { + return Objects.hash(callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscriptionInput {\n"); + + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ExternalId.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ExternalId.java new file mode 100644 index 0000000..454c1ba --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ExternalId.java @@ -0,0 +1,202 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * An identification of an entity that is owned by or originates in a software system different from the current system, for example a ProductOrder handed off from a commerce platform into an order handling system. The structure identifies the system itself, the nature of the entity within the system (e.g. class name) and the unique ID of the entity within the system. It is anticipated that multiple external IDs can be held for a single entity, e.g. if the entity passed through multiple systems on the way to the current system. In this case the consumer is expected to sequence the IDs in the array in reverse order of provenance, i.e. most recent system first in the list. + */ +@Schema(description = "An identification of an entity that is owned by or originates in a software system different from the current system, for example a ProductOrder handed off from a commerce platform into an order handling system. The structure identifies the system itself, the nature of the entity within the system (e.g. class name) and the unique ID of the entity within the system. It is anticipated that multiple external IDs can be held for a single entity, e.g. if the entity passed through multiple systems on the way to the current system. In this case the consumer is expected to sequence the IDs in the array in reverse order of provenance, i.e. most recent system first in the list.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ExternalId { + @JsonProperty("id") + private String id = null; + + @JsonProperty("entityType") + private String entityType = null; + + @JsonProperty("owner") + private String owner = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public ExternalId id(String id) { + this.id = id; + return this; + } + + /** + * ID of the entity within the external system. + * @return id + **/ + @Schema(description = "ID of the entity within the external system.") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ExternalId entityType(String entityType) { + this.entityType = entityType; + return this; + } + + /** + * Type of the entity within the external system + * @return entityType + **/ + @Schema(description = "Type of the entity within the external system") + @NotNull + + public String getEntityType() { + return entityType; + } + + public void setEntityType(String entityType) { + this.entityType = entityType; + } + + public ExternalId owner(String owner) { + this.owner = owner; + return this; + } + + /** + * Name of the external system that owns the entity. + * @return owner + **/ + @Schema(description = "Name of the external system that owns the entity.") + @NotNull + + public String getOwner() { + return owner; + } + + public void setOwner(String owner) { + this.owner = owner; + } + + public ExternalId _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public ExternalId _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public ExternalId _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExternalId externalId = (ExternalId) o; + return Objects.equals(this.id, externalId.id) && + Objects.equals(this.entityType, externalId.entityType) && + Objects.equals(this.owner, externalId.owner) && + Objects.equals(this._atBaseType, externalId._atBaseType) && + Objects.equals(this._atSchemaLocation, externalId._atSchemaLocation) && + Objects.equals(this._atType, externalId._atType); + } + + @Override + public int hashCode() { + return Objects.hash(id, entityType, owner, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ExternalId {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" entityType: ").append(toIndentedString(entityType)).append("\n"); + sb.append(" owner: ").append(toIndentedString(owner)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/Quantity.java b/src/main/java/org/etsi/osl/tmf/ro652/model/Quantity.java new file mode 100644 index 0000000..4b6899d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/Quantity.java @@ -0,0 +1,102 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * An amount in a given unit + */ +@Schema(description = "An amount in a given unit") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class Quantity { + @JsonProperty("amount") + private Float amount = 1.0f; + + @JsonProperty("units") + private String units = null; + + public Quantity amount(Float amount) { + this.amount = amount; + return this; + } + + /** + * Numeric value in a given unit + * @return amount + **/ + @Schema(description = "Numeric value in a given unit") + + public Float getAmount() { + return amount; + } + + public void setAmount(Float amount) { + this.amount = amount; + } + + public Quantity units(String units) { + this.units = units; + return this; + } + + /** + * Unit + * @return units + **/ + @Schema(description = "Unit") + + public String getUnits() { + return units; + } + + public void setUnits(String units) { + this.units = units; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Quantity quantity = (Quantity) o; + return Objects.equals(this.amount, quantity.amount) && + Objects.equals(this.units, quantity.units); + } + + @Override + public int hashCode() { + return Objects.hash(amount, units); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Quantity {\n"); + + sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append(" units: ").append(toIndentedString(units)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/RelatedPlaceRefOrValue.java b/src/main/java/org/etsi/osl/tmf/ro652/model/RelatedPlaceRefOrValue.java new file mode 100644 index 0000000..d9369f4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/RelatedPlaceRefOrValue.java @@ -0,0 +1,248 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Related Entity reference. A related place defines a place described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the place entity and not the RelatedPlaceRefOrValue class itself + */ +@Schema(description = "Related Entity reference. A related place defines a place described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the place entity and not the RelatedPlaceRefOrValue class itself") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class RelatedPlaceRefOrValue { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("role") + private String role = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public RelatedPlaceRefOrValue id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the place + * @return id + **/ + @Schema(description = "Unique identifier of the place") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public RelatedPlaceRefOrValue href(String href) { + this.href = href; + return this; + } + + /** + * Unique reference of the place + * @return href + **/ + @Schema(description = "Unique reference of the place") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public RelatedPlaceRefOrValue name(String name) { + this.name = name; + return this; + } + + /** + * A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home] + * @return name + **/ + @Schema(description = "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public RelatedPlaceRefOrValue role(String role) { + this.role = role; + return this; + } + + /** + * Get role + * @return role + **/ + @Schema(description = "") + @NotNull + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public RelatedPlaceRefOrValue _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public RelatedPlaceRefOrValue _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public RelatedPlaceRefOrValue _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + public RelatedPlaceRefOrValue _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RelatedPlaceRefOrValue relatedPlaceRefOrValue = (RelatedPlaceRefOrValue) o; + return Objects.equals(this.id, relatedPlaceRefOrValue.id) && + Objects.equals(this.href, relatedPlaceRefOrValue.href) && + Objects.equals(this.name, relatedPlaceRefOrValue.name) && + Objects.equals(this.role, relatedPlaceRefOrValue.role) && + Objects.equals(this._atBaseType, relatedPlaceRefOrValue._atBaseType) && + Objects.equals(this._atSchemaLocation, relatedPlaceRefOrValue._atSchemaLocation) && + Objects.equals(this._atType, relatedPlaceRefOrValue._atType) && + Objects.equals(this._atReferredType, relatedPlaceRefOrValue._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, role, _atBaseType, _atSchemaLocation, _atType, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RelatedPlaceRefOrValue {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOperationalStateType.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOperationalStateType.java new file mode 100644 index 0000000..d2e4822 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOperationalStateType.java @@ -0,0 +1,34 @@ +package org.etsi.osl.tmf.ro652.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * ResourceOperationalStateType enumerations + */ +public enum ResourceOperationalStateType { + ENABLE("enable"), + DISABLE("disable"); + + private String value; + + ResourceOperationalStateType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ResourceOperationalStateType fromValue(String text) { + for (ResourceOperationalStateType b : ResourceOperationalStateType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrder.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrder.java new file mode 100644 index 0000000..80e632c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrder.java @@ -0,0 +1,756 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * A Resource Order is a request to provision a set of Resources (logical and + * physical) triggered by the request to provision a Service through a Service + * Order + */ +@Schema(description = "A Resource Order is a request to provision a set of Resources (logical and physical) triggered by the request to provision a Service through a Service Order") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ResourceOrder { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("category") + private String category = null; + + private OffsetDateTime completionDate = null; + + private OffsetDateTime expectedCompletionDate = null; + + private OffsetDateTime requestedCompletionDate = null; + + private OffsetDateTime requestedStartDate = null; + + private OffsetDateTime startDate = null; + + + @JsonProperty("description") + private String description = null; + + + @JsonProperty("externalId") + private String externalId = null; + + @JsonProperty("name") + private String name = null; + + private OffsetDateTime orderDate = null; + + @JsonProperty("orderType") + private String orderType = null; + + @JsonProperty("priority") + private Integer priority = null; + + + @JsonProperty("state") + private String state = null; + + @JsonProperty("externalReference") + @Valid + private Set externalReference = new HashSet<>(); + + @JsonProperty("note") + @Valid + private Set note = new HashSet<>(); + + @JsonProperty("orderItem") + @Valid + private Set orderItem = new HashSet<>(); + + @JsonProperty("relatedParty") + @Valid + private Set relatedParty = new HashSet<>(); + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public ResourceOrder id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of an instance of the Resource Order. Required to be unique within + * the resource type. Used in URIs as the identifier for specific instances of a + * type. + * + * @return id + **/ + @Schema(description = "Identifier of an instance of the Resource Order. Required to be unique within the resource type. Used in URIs as the identifier for specific instances of a type.") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceOrder href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink to access the order + * + * @return href + **/ + @Schema(description = "Hyperlink to access the order") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceOrder category(String category) { + this.category = category; + return this; + } + + /** + * Used to categorize the order from a business perspective that can be useful + * for the OM system. + * + * @return category + **/ + @Schema(description = "Used to categorize the order from a business perspective that can be useful for the OM system.") + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public ResourceOrder completionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Effective delivery date amended by the provider + * + * @return completionDate + **/ + @Schema(description = "Effective delivery date amended by the provider") + + @Valid + @JsonProperty("completionDate") + public String getCompletionDateString() { + if ( this.completionDate == null) { + return null; + } + return this.completionDate.toString(); + } + + public OffsetDateTime getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + } + + + public void setCompletionDate(String completionDate) { + if (completionDate!=null) { + this.completionDate = OffsetDateTime.parse( completionDate ); + } + } + + + public ResourceOrder description(String description) { + this.description = description; + return this; + } + + /** + * free-text description of the Resource Order + * + * @return description + **/ + @Schema(description = "free-text description of the Resource Order") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + + public ResourceOrder expectedCompletionDate(OffsetDateTime expectedCompletionDate) { + this.expectedCompletionDate = expectedCompletionDate; + return this; + } + + /** + * Expected delivery date amended by the provider + * + * @return expectedCompletionDate + **/ + @Schema(description = "Expected delivery date amended by the provider") + + @Valid + + @JsonProperty("expectedCompletionDate") + public String getExpectedCompletionDateString() { + + if ( this.expectedCompletionDate == null) { + return null; + } + return this.expectedCompletionDate.toString(); + } + + public OffsetDateTime getExpectedCompletionDate() { + return expectedCompletionDate; + } + + public void setExpectedCompletionDate(OffsetDateTime expectedCompletionDate) { + this.expectedCompletionDate = expectedCompletionDate; + } + + public void setExpectedCompletionDate(String expectedCompletionDate) { + if (expectedCompletionDate!=null) { + this.expectedCompletionDate = OffsetDateTime.parse( expectedCompletionDate ); + + } + } + + + public ResourceOrder externalId(String externalId) { + this.externalId = externalId; + return this; + } + + /** + * DEPRECATED: Use externalReference Instead. ID given by the consumer (to + * facilitate searches afterwards) + * + * @return externalId + **/ + @Schema(description = "DEPRECATED: Use externalReference Instead. ID given by the consumer (to facilitate searches afterwards)") + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public ResourceOrder name(String name) { + this.name = name; + return this; + } + + /** + * A string used to give a name to the Resource Order + * + * @return name + **/ + @Schema(description = "A string used to give a name to the Resource Order") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + + public ResourceOrder orderDate(OffsetDateTime orderDate) { + this.orderDate = orderDate; + return this; + } + + /** + * Get orderDate + * + * @return orderDate + **/ + @Schema(description = "") + + @Valid + @JsonProperty("orderDate") + public String getOrderDateString() { + if ( this.orderDate == null) { + return null; + } + return this.orderDate.toString(); + } + + public OffsetDateTime getOrderDate() { + return orderDate; + } + + public void setOrderDate(OffsetDateTime orderDate) { + this.orderDate = orderDate; + } + + public void setOrderDate(String orderDate) { + + if (orderDate!=null) { + this.orderDate = OffsetDateTime.parse( orderDate ); + + } + } + + public ResourceOrder orderType(String orderType) { + this.orderType = orderType; + return this; + } + + /** + * Name of the Resource Order type + * + * @return orderType + **/ + @Schema(description = "Name of the Resource Order type") + + public String getOrderType() { + return orderType; + } + + public void setOrderType(String orderType) { + this.orderType = orderType; + } + + public ResourceOrder priority(Integer priority) { + this.priority = priority; + return this; + } + + /** + * A way that can be used by consumers to prioritize orders in OM system (from 0 + * to 4 : 0 is the highest priority, and 4 the lowest) + * + * @return priority + **/ + @Schema(description = "A way that can be used by consumers to prioritize orders in OM system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)") + + public Integer getPriority() { + return priority; + } + + public void setPriority(Integer priority) { + this.priority = priority; + } + + public ResourceOrder requestedCompletionDate(OffsetDateTime requestedCompletionDate) { + this.requestedCompletionDate = requestedCompletionDate; + return this; + } + + /** + * Requested delivery date from the requestor perspective + * + * @return requestedCompletionDate + **/ + @Schema(description = "Requested delivery date from the requestor perspective") + + @Valid + public OffsetDateTime getRequestedCompletionDate() { + return requestedCompletionDate; + } + + public void setRequestedCompletionDate(OffsetDateTime requestedCompletionDate) { + this.requestedCompletionDate = requestedCompletionDate; + } + + public void setRequestedCompletionDate(String requestedCompletionDate) { + + if (requestedCompletionDate!=null) { + this.requestedCompletionDate = OffsetDateTime.parse( requestedCompletionDate ); + + } + } + + /** + * Requested delivery date from the requestors perspective + * + * @return requestedCompletionDate + **/ + @Schema(description = "Requested delivery date from the requestors perspective") + + @Valid + + @JsonProperty("requestedCompletionDate") + public String getRequestedCompletionDateString() { + + if ( this.requestedCompletionDate == null) { + return null; + } + return this.requestedCompletionDate.toString(); + } + + /** + * Order start date wished by the requestor + * + * @return requestedStartDate + **/ + @Schema(description = "Order start date wished by the requestor") + + @Valid + @JsonProperty("requestedStartDate") + public String getRequestedStartDateString() { + + if ( this.requestedStartDate == null) { + return null; + } + return this.requestedStartDate.toString(); + } + + public OffsetDateTime getRequestedStartDate() { + return requestedStartDate; + } + + public void setRequestedStartDate(OffsetDateTime requestedStartDate) { + this.requestedStartDate = requestedStartDate; + } + + public ResourceOrder requestedStartDate(OffsetDateTime requestedStartDate) { + this.requestedStartDate = requestedStartDate; + return this; + } + + public void setRequestedStartDate(String requestedStartDate) { + + if (requestedStartDate!=null) { + this.requestedStartDate = OffsetDateTime.parse( requestedStartDate ); + + } + } + + public ResourceOrder startDate(OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + /** + * Date when the order was started for processing + * + * @return startDate + **/ + @Schema(description = "Date when the order was started for processing") + + @Valid + @JsonProperty("startDate") + public String getStartDateString() { + if ( this.startDate == null) { + return null; + } + return this.startDate.toString(); + } + + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; + } + + public void setStartDate(String requestedStartDate) { + if (requestedStartDate!=null) { + this.startDate = OffsetDateTime.parse( requestedStartDate ); + } + } + + + public ResourceOrder state(String state) { + this.state = state; + return this; + } + + /** + * The life cycle state of the resource. + * + * @return state + **/ + @Schema(description = "The life cycle state of the resource.") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public ResourceOrder externalReference(Set externalReference) { + this.externalReference = externalReference; + return this; + } + + public ResourceOrder addExternalReferenceItem(ExternalId externalReferenceItem) { + + this.externalReference.add(externalReferenceItem); + return this; + } + + /** + * Get externalReference + * + * @return externalReference + **/ + @Schema(description = "") + @Valid + public Set getExternalReference() { + return externalReference; + } + + public void setExternalReference(Set externalReference) { + this.externalReference = externalReference; + } + + public ResourceOrder note(Set note) { + this.note = note; + return this; + } + + public ResourceOrder addNoteItem(Note noteItem) { + + this.note.add(noteItem); + return this; + } + + /** + * Get note + * + * @return note + **/ + @Schema(description = "") + @Valid + public Set getNote() { + return note; + } + + public void setNote(Set note) { + this.note = note; + } + + public ResourceOrder orderItem(Set orderItem) { + this.orderItem = orderItem; + return this; + } + + public ResourceOrder addOrderItemItem(ResourceOrderItem orderItemItem) { + + this.orderItem.add(orderItemItem); + return this; + } + + /** + * Get orderItem + * + * @return orderItem + **/ + @Schema(description = "") + @Valid + public Set getOrderItem() { + return orderItem; + } + + public void setOrderItem(Set orderItem) { + this.orderItem = orderItem; + } + + public ResourceOrder relatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ResourceOrder addRelatedPartyItem(RelatedParty relatedPartyItem) { + + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * + * @return relatedParty + **/ + @Schema(description = "") + @Valid + public Set getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + } + + public ResourceOrder _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public ResourceOrder _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public ResourceOrder _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceOrder resourceOrder = (ResourceOrder) o; + return Objects.equals(this.id, resourceOrder.id) && Objects.equals(this.href, resourceOrder.href) + && Objects.equals(this.category, resourceOrder.category) + && Objects.equals(this.completionDate, resourceOrder.completionDate) + && Objects.equals(this.description, resourceOrder.description) + && Objects.equals(this.expectedCompletionDate, resourceOrder.expectedCompletionDate) + && Objects.equals(this.externalId, resourceOrder.externalId) + && Objects.equals(this.name, resourceOrder.name) + && Objects.equals(this.orderDate, resourceOrder.orderDate) + && Objects.equals(this.orderType, resourceOrder.orderType) + && Objects.equals(this.priority, resourceOrder.priority) + && Objects.equals(this.requestedCompletionDate, resourceOrder.requestedCompletionDate) + && Objects.equals(this.requestedStartDate, resourceOrder.requestedStartDate) + && Objects.equals(this.startDate, resourceOrder.startDate) + && Objects.equals(this.state, resourceOrder.state) + && Objects.equals(this.externalReference, resourceOrder.externalReference) + && Objects.equals(this.note, resourceOrder.note) + && Objects.equals(this.orderItem, resourceOrder.orderItem) + && Objects.equals(this.relatedParty, resourceOrder.relatedParty) + && Objects.equals(this._atBaseType, resourceOrder._atBaseType) + && Objects.equals(this._atSchemaLocation, resourceOrder._atSchemaLocation) + && Objects.equals(this._atType, resourceOrder._atType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, category, completionDate, description, expectedCompletionDate, externalId, name, + orderDate, orderType, priority, requestedCompletionDate, requestedStartDate, startDate, state, + externalReference, note, orderItem, relatedParty, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceOrder {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" expectedCompletionDate: ").append(toIndentedString(expectedCompletionDate)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" orderDate: ").append(toIndentedString(orderDate)).append("\n"); + sb.append(" orderType: ").append(toIndentedString(orderType)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" requestedCompletionDate: ").append(toIndentedString(requestedCompletionDate)).append("\n"); + sb.append(" requestedStartDate: ").append(toIndentedString(requestedStartDate)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" externalReference: ").append(toIndentedString(externalReference)).append("\n"); + sb.append(" note: ").append(toIndentedString(note)).append("\n"); + sb.append(" orderItem: ").append(toIndentedString(orderItem)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderAttributeValueChangeEvent.java new file mode 100644 index 0000000..acc8d43 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderAttributeValueChangeEvent.java @@ -0,0 +1,323 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ResourceOrderAttributeValueChangeEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("event") + private ResourceOrderAttributeValueChangeEventPayload event = null; + + public ResourceOrderAttributeValueChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceOrderAttributeValueChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceOrderAttributeValueChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceOrderAttributeValueChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceOrderAttributeValueChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceOrderAttributeValueChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceOrderAttributeValueChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceOrderAttributeValueChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceOrderAttributeValueChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ResourceOrderAttributeValueChangeEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ResourceOrderAttributeValueChangeEvent event(ResourceOrderAttributeValueChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceOrderAttributeValueChangeEventPayload getEvent() { + return event; + } + + public void setEvent(ResourceOrderAttributeValueChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceOrderAttributeValueChangeEvent resourceOrderAttributeValueChangeEvent = (ResourceOrderAttributeValueChangeEvent) o; + return Objects.equals(this.eventId, resourceOrderAttributeValueChangeEvent.eventId) && + Objects.equals(this.eventTime, resourceOrderAttributeValueChangeEvent.eventTime) && + Objects.equals(this.eventType, resourceOrderAttributeValueChangeEvent.eventType) && + Objects.equals(this.correlationId, resourceOrderAttributeValueChangeEvent.correlationId) && + Objects.equals(this.domain, resourceOrderAttributeValueChangeEvent.domain) && + Objects.equals(this.title, resourceOrderAttributeValueChangeEvent.title) && + Objects.equals(this.description, resourceOrderAttributeValueChangeEvent.description) && + Objects.equals(this.priority, resourceOrderAttributeValueChangeEvent.priority) && + Objects.equals(this.timeOcurred, resourceOrderAttributeValueChangeEvent.timeOcurred) && + Objects.equals(this.fieldPath, resourceOrderAttributeValueChangeEvent.fieldPath) && + Objects.equals(this.event, resourceOrderAttributeValueChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, fieldPath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceOrderAttributeValueChangeEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderAttributeValueChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderAttributeValueChangeEventPayload.java new file mode 100644 index 0000000..b8c5340 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderAttributeValueChangeEventPayload.java @@ -0,0 +1,80 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ResourceOrderAttributeValueChangeEventPayload { + @JsonProperty("resourceOrder") + private ResourceOrder resourceOrder = null; + + public ResourceOrderAttributeValueChangeEventPayload resourceOrder(ResourceOrder resourceOrder) { + this.resourceOrder = resourceOrder; + return this; + } + + /** + * Get resourceOrder + * @return resourceOrder + **/ + @Schema(description = "") + + @Valid + public ResourceOrder getResourceOrder() { + return resourceOrder; + } + + public void setResourceOrder(ResourceOrder resourceOrder) { + this.resourceOrder = resourceOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceOrderAttributeValueChangeEventPayload resourceOrderAttributeValueChangeEventPayload = (ResourceOrderAttributeValueChangeEventPayload) o; + return Objects.equals(this.resourceOrder, resourceOrderAttributeValueChangeEventPayload.resourceOrder); + } + + @Override + public int hashCode() { + return Objects.hash(resourceOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceOrderAttributeValueChangeEventPayload {\n"); + + sb.append(" resourceOrder: ").append(toIndentedString(resourceOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderCreate.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderCreate.java new file mode 100644 index 0000000..2849a43 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderCreate.java @@ -0,0 +1,664 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * A Resource Order is a request to provision a set of Resources (logical and + * physical) triggered by the request to provision a Service through a Service + * Order Skipped properties: id,href + */ +@Schema(description = "A Resource Order is a request to provision a set of Resources (logical and physical) triggered by the request to provision a Service through a Service Order Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ResourceOrderCreate { + @JsonProperty("category") + private String category = null; + + @JsonProperty("completionDate") + private OffsetDateTime completionDate = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("expectedCompletionDate") + private OffsetDateTime expectedCompletionDate = null; + + @JsonProperty("externalId") + private String externalId = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("orderDate") + private OffsetDateTime orderDate = null; + + @JsonProperty("orderType") + private String orderType = null; + + @JsonProperty("priority") + private Integer priority = null; + + private OffsetDateTime requestedCompletionDate = null; + + private OffsetDateTime requestedStartDate = null; + + @JsonProperty("startDate") + private OffsetDateTime startDate = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("externalReference") + @Valid + private List externalReference = null; + + @JsonProperty("note") + @Valid + private List note = null; + + @JsonProperty("orderItem") + @Valid + private List orderItem = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public ResourceOrderCreate category(String category) { + this.category = category; + return this; + } + + /** + * Used to categorize the order from a business perspective that can be useful + * for the OM system. + * + * @return category + **/ + @Schema(description = "Used to categorize the order from a business perspective that can be useful for the OM system.") + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public ResourceOrderCreate completionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Date when the order was completed + * + * @return completionDate + **/ + @Schema(description = "Date when the order was completed") + + @Valid + public OffsetDateTime getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + } + + public ResourceOrderCreate description(String description) { + this.description = description; + return this; + } + + /** + * free-text description of the Resource Order + * + * @return description + **/ + @Schema(description = "free-text description of the Resource Order") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceOrderCreate expectedCompletionDate(OffsetDateTime expectedCompletionDate) { + this.expectedCompletionDate = expectedCompletionDate; + return this; + } + + /** + * Date when the order was completed + * + * @return expectedCompletionDate + **/ + @Schema(description = "Date when the order was completed") + + @Valid + public OffsetDateTime getExpectedCompletionDate() { + return expectedCompletionDate; + } + + public void setExpectedCompletionDate(OffsetDateTime expectedCompletionDate) { + this.expectedCompletionDate = expectedCompletionDate; + } + + public ResourceOrderCreate externalId(String externalId) { + this.externalId = externalId; + return this; + } + + /** + * DEPRECATED: Use externalReference Instead. ID given by the consumer (to + * facilitate searches afterwards) + * + * @return externalId + **/ + @Schema(description = "DEPRECATED: Use externalReference Instead. ID given by the consumer (to facilitate searches afterwards)") + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public ResourceOrderCreate name(String name) { + this.name = name; + return this; + } + + /** + * A string used to give a name to the Resource Order + * + * @return name + **/ + @Schema(description = "A string used to give a name to the Resource Order") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ResourceOrderCreate orderDate(OffsetDateTime orderDate) { + this.orderDate = orderDate; + return this; + } + + /** + * Date when the order was created + * + * @return orderDate + **/ + @Schema(description = "Date when the order was created") + + @Valid + public OffsetDateTime getOrderDate() { + return orderDate; + } + + public void setOrderDate(OffsetDateTime orderDate) { + this.orderDate = orderDate; + } + + public ResourceOrderCreate orderType(String orderType) { + this.orderType = orderType; + return this; + } + + /** + * Name of the Resource Order type + * + * @return orderType + **/ + @Schema(description = "Name of the Resource Order type") + + public String getOrderType() { + return orderType; + } + + public void setOrderType(String orderType) { + this.orderType = orderType; + } + + public ResourceOrderCreate priority(Integer priority) { + this.priority = priority; + return this; + } + + /** + * A way that can be used by consumers to prioritize orders in OM system (from 0 + * to 4 : 0 is the highest priority, and 4 the lowest) + * + * @return priority + **/ + @Schema(description = "A way that can be used by consumers to prioritize orders in OM system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)") + + public Integer getPriority() { + return priority; + } + + public void setPriority(Integer priority) { + this.priority = priority; + } + + public ResourceOrderCreate requestedCompletionDate(OffsetDateTime requestedCompletionDate) { + this.requestedCompletionDate = requestedCompletionDate; + return this; + } + + public ResourceOrderCreate requestedCompletionDate(String requestedCompletionDate) { + + if (requestedCompletionDate!=null) { + this.requestedCompletionDate = OffsetDateTime.parse( requestedCompletionDate ); + + } + return this; + } + + /** + * Requested delivery date from the requestor perspective + * + * @return requestedCompletionDate + **/ + @Schema(description = "Requested delivery date from the requestor perspective") + + @Valid + public OffsetDateTime getRequestedCompletionDate() { + return requestedCompletionDate; + } + + + @JsonProperty("requestedCompletionDate") + public String getRequestedCompletionDateStr() { + if ( requestedCompletionDate != null) { + return requestedCompletionDate.toString(); + } else { + return null; + } + } + + + public void setRequestedCompletionDate(OffsetDateTime requestedCompletionDate) { + this.requestedCompletionDate = requestedCompletionDate; + } + + + + public void setRequestedCompletionDate(String requestedCompletionDate) { + + if (requestedCompletionDate!=null) { + this.requestedCompletionDate = OffsetDateTime.parse( requestedCompletionDate ); + + } + } + + public ResourceOrderCreate requestedStartDate(OffsetDateTime requestedStartDate) { + this.requestedStartDate = requestedStartDate; + return this; + } + + public ResourceOrderCreate requestedStartDate(String requestedStartDate) { + + if (requestedStartDate!=null) { + this.requestedStartDate = OffsetDateTime.parse( requestedStartDate ); + + } + return this; + } + + + /** + * Order start date wished by the requestor + * + * @return requestedStartDate + **/ + @Schema(description = "Order start date wished by the requestor") + + @Valid + public OffsetDateTime getRequestedStartDate() { + return requestedStartDate; + } + + @JsonProperty("requestedStartDate") + public String getRequestedStartDateStr() { + + if ( requestedStartDate != null) { + return requestedStartDate.toString(); + } + + return null; + } + + public void setRequestedStartDate(OffsetDateTime requestedStartDate) { + this.requestedStartDate = requestedStartDate; + } + + + public void setRequestedStartDate(String requestedStartDate) { + + if (requestedStartDate!=null) { + this.requestedStartDate = OffsetDateTime.parse( requestedStartDate ); + + } + } + + public ResourceOrderCreate startDate(OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Date when the order was actually started + * + * @return startDate + **/ + @Schema(description = "Date when the order was actually started") + + @Valid + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; + } + + public ResourceOrderCreate state(String state) { + this.state = state; + return this; + } + + /** + * The life cycle state of the resource. + * + * @return state + **/ + @Schema(description = "The life cycle state of the resource.") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public ResourceOrderCreate externalReference(List externalReference) { + this.externalReference = externalReference; + return this; + } + + public ResourceOrderCreate addExternalReferenceItem(ExternalId externalReferenceItem) { + if (this.externalReference == null) { + this.externalReference = new ArrayList<>(); + } + this.externalReference.add(externalReferenceItem); + return this; + } + + /** + * Get externalReference + * + * @return externalReference + **/ + @Schema(description = "") + @Valid + public List getExternalReference() { + return externalReference; + } + + public void setExternalReference(List externalReference) { + this.externalReference = externalReference; + } + + public ResourceOrderCreate note(List note) { + this.note = note; + return this; + } + + public ResourceOrderCreate addNoteItem(Note noteItem) { + if (this.note == null) { + this.note = new ArrayList<>(); + } + this.note.add(noteItem); + return this; + } + + /** + * Get note + * + * @return note + **/ + @Schema(description = "") + @Valid + public List getNote() { + return note; + } + + public void setNote(List note) { + this.note = note; + } + + public ResourceOrderCreate orderItem(List orderItem) { + this.orderItem = orderItem; + return this; + } + + public ResourceOrderCreate addOrderItemItem(ResourceOrderItem orderItemItem) { + if (this.orderItem == null) { + this.orderItem = new ArrayList<>(); + } + this.orderItem.add(orderItemItem); + return this; + } + + /** + * Get orderItem + * + * @return orderItem + **/ + @Schema(description = "") + @Valid + public List getOrderItem() { + return orderItem; + } + + public void setOrderItem(List orderItem) { + this.orderItem = orderItem; + } + + public ResourceOrderCreate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ResourceOrderCreate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * + * @return relatedParty + **/ + @Schema(description = "") + @Valid + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public ResourceOrderCreate _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public ResourceOrderCreate _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public ResourceOrderCreate _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceOrderCreate resourceOrderCreate = (ResourceOrderCreate) o; + return Objects.equals(this.category, resourceOrderCreate.category) + && Objects.equals(this.completionDate, resourceOrderCreate.completionDate) + && Objects.equals(this.description, resourceOrderCreate.description) + && Objects.equals(this.expectedCompletionDate, resourceOrderCreate.expectedCompletionDate) + && Objects.equals(this.externalId, resourceOrderCreate.externalId) + && Objects.equals(this.name, resourceOrderCreate.name) + && Objects.equals(this.orderDate, resourceOrderCreate.orderDate) + && Objects.equals(this.orderType, resourceOrderCreate.orderType) + && Objects.equals(this.priority, resourceOrderCreate.priority) + && Objects.equals(this.requestedCompletionDate, resourceOrderCreate.requestedCompletionDate) + && Objects.equals(this.requestedStartDate, resourceOrderCreate.requestedStartDate) + && Objects.equals(this.startDate, resourceOrderCreate.startDate) + && Objects.equals(this.state, resourceOrderCreate.state) + && Objects.equals(this.externalReference, resourceOrderCreate.externalReference) + && Objects.equals(this.note, resourceOrderCreate.note) + && Objects.equals(this.orderItem, resourceOrderCreate.orderItem) + && Objects.equals(this.relatedParty, resourceOrderCreate.relatedParty) + && Objects.equals(this._atBaseType, resourceOrderCreate._atBaseType) + && Objects.equals(this._atSchemaLocation, resourceOrderCreate._atSchemaLocation) + && Objects.equals(this._atType, resourceOrderCreate._atType); + } + + @Override + public int hashCode() { + return Objects.hash(category, completionDate, description, expectedCompletionDate, externalId, name, orderDate, + orderType, priority, requestedCompletionDate, requestedStartDate, startDate, state, externalReference, + note, orderItem, relatedParty, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceOrderCreate {\n"); + + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" expectedCompletionDate: ").append(toIndentedString(expectedCompletionDate)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" orderDate: ").append(toIndentedString(orderDate)).append("\n"); + sb.append(" orderType: ").append(toIndentedString(orderType)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" requestedCompletionDate: ").append(toIndentedString(requestedCompletionDate)).append("\n"); + sb.append(" requestedStartDate: ").append(toIndentedString(requestedStartDate)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" externalReference: ").append(toIndentedString(externalReference)).append("\n"); + sb.append(" note: ").append(toIndentedString(note)).append("\n"); + sb.append(" orderItem: ").append(toIndentedString(orderItem)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderCreateEvent.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderCreateEvent.java new file mode 100644 index 0000000..fd501cf --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderCreateEvent.java @@ -0,0 +1,347 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ResourceOrderCreateEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ResourceOrderCreateEventPayload event = null; + + public ResourceOrderCreateEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceOrderCreateEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceOrderCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceOrderCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceOrderCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceOrderCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceOrderCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceOrderCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceOrderCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceOrderCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceOrderCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ResourceOrderCreateEvent event(ResourceOrderCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceOrderCreateEventPayload getEvent() { + return event; + } + + public void setEvent(ResourceOrderCreateEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceOrderCreateEvent resourceOrderCreateEvent = (ResourceOrderCreateEvent) o; + return Objects.equals(this.id, resourceOrderCreateEvent.id) && + Objects.equals(this.href, resourceOrderCreateEvent.href) && + Objects.equals(this.eventId, resourceOrderCreateEvent.eventId) && + Objects.equals(this.eventTime, resourceOrderCreateEvent.eventTime) && + Objects.equals(this.eventType, resourceOrderCreateEvent.eventType) && + Objects.equals(this.correlationId, resourceOrderCreateEvent.correlationId) && + Objects.equals(this.domain, resourceOrderCreateEvent.domain) && + Objects.equals(this.title, resourceOrderCreateEvent.title) && + Objects.equals(this.description, resourceOrderCreateEvent.description) && + Objects.equals(this.priority, resourceOrderCreateEvent.priority) && + Objects.equals(this.timeOcurred, resourceOrderCreateEvent.timeOcurred) && + Objects.equals(this.event, resourceOrderCreateEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceOrderCreateEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderCreateEventPayload.java new file mode 100644 index 0000000..c7ff262 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderCreateEventPayload.java @@ -0,0 +1,80 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ResourceOrderCreateEventPayload { + @JsonProperty("resourceOrder") + private ResourceOrder resourceOrder = null; + + public ResourceOrderCreateEventPayload resourceOrder(ResourceOrder resourceOrder) { + this.resourceOrder = resourceOrder; + return this; + } + + /** + * Get resourceOrder + * @return resourceOrder + **/ + @Schema(description = "") + + @Valid + public ResourceOrder getResourceOrder() { + return resourceOrder; + } + + public void setResourceOrder(ResourceOrder resourceOrder) { + this.resourceOrder = resourceOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceOrderCreateEventPayload resourceOrderCreateEventPayload = (ResourceOrderCreateEventPayload) o; + return Objects.equals(this.resourceOrder, resourceOrderCreateEventPayload.resourceOrder); + } + + @Override + public int hashCode() { + return Objects.hash(resourceOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceOrderCreateEventPayload {\n"); + + sb.append(" resourceOrder: ").append(toIndentedString(resourceOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderDeleteEvent.java new file mode 100644 index 0000000..a9af7ee6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderDeleteEvent.java @@ -0,0 +1,347 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ResourceOrderDeleteEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ResourceOrderDeleteEventPayload event = null; + + public ResourceOrderDeleteEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceOrderDeleteEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceOrderDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceOrderDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceOrderDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceOrderDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceOrderDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceOrderDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceOrderDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceOrderDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceOrderDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ResourceOrderDeleteEvent event(ResourceOrderDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceOrderDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(ResourceOrderDeleteEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceOrderDeleteEvent resourceOrderDeleteEvent = (ResourceOrderDeleteEvent) o; + return Objects.equals(this.id, resourceOrderDeleteEvent.id) && + Objects.equals(this.href, resourceOrderDeleteEvent.href) && + Objects.equals(this.eventId, resourceOrderDeleteEvent.eventId) && + Objects.equals(this.eventTime, resourceOrderDeleteEvent.eventTime) && + Objects.equals(this.eventType, resourceOrderDeleteEvent.eventType) && + Objects.equals(this.correlationId, resourceOrderDeleteEvent.correlationId) && + Objects.equals(this.domain, resourceOrderDeleteEvent.domain) && + Objects.equals(this.title, resourceOrderDeleteEvent.title) && + Objects.equals(this.description, resourceOrderDeleteEvent.description) && + Objects.equals(this.priority, resourceOrderDeleteEvent.priority) && + Objects.equals(this.timeOcurred, resourceOrderDeleteEvent.timeOcurred) && + Objects.equals(this.event, resourceOrderDeleteEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceOrderDeleteEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderDeleteEventPayload.java new file mode 100644 index 0000000..839e4b9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderDeleteEventPayload.java @@ -0,0 +1,80 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ResourceOrderDeleteEventPayload { + @JsonProperty("resourceOrder") + private ResourceOrder resourceOrder = null; + + public ResourceOrderDeleteEventPayload resourceOrder(ResourceOrder resourceOrder) { + this.resourceOrder = resourceOrder; + return this; + } + + /** + * Get resourceOrder + * @return resourceOrder + **/ + @Schema(description = "") + + @Valid + public ResourceOrder getResourceOrder() { + return resourceOrder; + } + + public void setResourceOrder(ResourceOrder resourceOrder) { + this.resourceOrder = resourceOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceOrderDeleteEventPayload resourceOrderDeleteEventPayload = (ResourceOrderDeleteEventPayload) o; + return Objects.equals(this.resourceOrder, resourceOrderDeleteEventPayload.resourceOrder); + } + + @Override + public int hashCode() { + return Objects.hash(resourceOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceOrderDeleteEventPayload {\n"); + + sb.append(" resourceOrder: ").append(toIndentedString(resourceOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderInformationRequiredEvent.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderInformationRequiredEvent.java new file mode 100644 index 0000000..ae07f10 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderInformationRequiredEvent.java @@ -0,0 +1,323 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ResourceOrderInformationRequiredEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("event") + private ResourceOrderInformationRequiredEventPayload event = null; + + public ResourceOrderInformationRequiredEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceOrderInformationRequiredEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceOrderInformationRequiredEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceOrderInformationRequiredEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceOrderInformationRequiredEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceOrderInformationRequiredEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceOrderInformationRequiredEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceOrderInformationRequiredEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceOrderInformationRequiredEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ResourceOrderInformationRequiredEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ResourceOrderInformationRequiredEvent event(ResourceOrderInformationRequiredEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceOrderInformationRequiredEventPayload getEvent() { + return event; + } + + public void setEvent(ResourceOrderInformationRequiredEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceOrderInformationRequiredEvent resourceOrderInformationRequiredEvent = (ResourceOrderInformationRequiredEvent) o; + return Objects.equals(this.eventId, resourceOrderInformationRequiredEvent.eventId) && + Objects.equals(this.eventTime, resourceOrderInformationRequiredEvent.eventTime) && + Objects.equals(this.eventType, resourceOrderInformationRequiredEvent.eventType) && + Objects.equals(this.correlationId, resourceOrderInformationRequiredEvent.correlationId) && + Objects.equals(this.domain, resourceOrderInformationRequiredEvent.domain) && + Objects.equals(this.title, resourceOrderInformationRequiredEvent.title) && + Objects.equals(this.description, resourceOrderInformationRequiredEvent.description) && + Objects.equals(this.priority, resourceOrderInformationRequiredEvent.priority) && + Objects.equals(this.timeOcurred, resourceOrderInformationRequiredEvent.timeOcurred) && + Objects.equals(this.fieldPath, resourceOrderInformationRequiredEvent.fieldPath) && + Objects.equals(this.event, resourceOrderInformationRequiredEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, fieldPath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceOrderInformationRequiredEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderInformationRequiredEventPayload.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderInformationRequiredEventPayload.java new file mode 100644 index 0000000..2f46a96 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderInformationRequiredEventPayload.java @@ -0,0 +1,80 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ResourceOrderInformationRequiredEventPayload { + @JsonProperty("resourceOrder") + private ResourceOrder resourceOrder = null; + + public ResourceOrderInformationRequiredEventPayload resourceOrder(ResourceOrder resourceOrder) { + this.resourceOrder = resourceOrder; + return this; + } + + /** + * Get resourceOrder + * @return resourceOrder + **/ + @Schema(description = "") + + @Valid + public ResourceOrder getResourceOrder() { + return resourceOrder; + } + + public void setResourceOrder(ResourceOrder resourceOrder) { + this.resourceOrder = resourceOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceOrderInformationRequiredEventPayload resourceOrderInformationRequiredEventPayload = (ResourceOrderInformationRequiredEventPayload) o; + return Objects.equals(this.resourceOrder, resourceOrderInformationRequiredEventPayload.resourceOrder); + } + + @Override + public int hashCode() { + return Objects.hash(resourceOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceOrderInformationRequiredEventPayload {\n"); + + sb.append(" resourceOrder: ").append(toIndentedString(resourceOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderItem.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderItem.java new file mode 100644 index 0000000..61fc8ab --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderItem.java @@ -0,0 +1,333 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.etsi.osl.tmf.ri639.model.ResourceRefOrValue; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * An identified part of the order. A resource order is decomposed into one or more order items. + */ +@Schema(description = "An identified part of the order. A resource order is decomposed into one or more order items.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ResourceOrderItem { + @JsonProperty("id") + private String id = null; + + @JsonProperty("action") + private String action = null; + + @JsonProperty("quantity") + private Integer quantity = null; + + @JsonProperty("state") + private ResourceOrderStateType state = null; + + @JsonProperty("appointment") + private AppointmentRef appointment = null; + + @JsonProperty("orderItemRelationship") + @Valid + private List orderItemRelationship = null; + + @JsonProperty("resource") + private ResourceRefOrValue resource = null; + + @JsonProperty("resourceSpecification") + private ResourceSpecificationRef resourceSpecification = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public ResourceOrderItem id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the line item (generally it is a sequence number 01, 02, 03, ...) + * @return id + **/ + @Schema(description = "Identifier of the line item (generally it is a sequence number 01, 02, 03, ...)") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceOrderItem action(String action) { + this.action = action; + return this; + } + + /** + * Can be \"add\" / \"modify\" / \"no_change\"/ \"delete\" + * @return action + **/ + @Schema(description = "Can be \"add\" / \"modify\" / \"no_change\"/ \"delete\"") + + public String getAction() { + return action; + } + + public void setAction(String action) { + this.action = action; + } + + public ResourceOrderItem quantity(Integer quantity) { + this.quantity = quantity; + return this; + } + + /** + * Quantity ordered + * @return quantity + **/ + @Schema(description = "Quantity ordered") + + public Integer getQuantity() { + return quantity; + } + + public void setQuantity(Integer quantity) { + this.quantity = quantity; + } + + public ResourceOrderItem state(ResourceOrderStateType state) { + this.state = state; + return this; + } + + /** + * State of the order item : described in the state machine diagram + * @return state + **/ + @Schema(description = "State of the order item : described in the state machine diagram") + + public ResourceOrderStateType getState() { + return state; + } + + public void setState(ResourceOrderStateType state) { + this.state = state; + } + + public ResourceOrderItem appointment(AppointmentRef appointment) { + this.appointment = appointment; + return this; + } + + /** + * Get appointment + * @return appointment + **/ + @Schema(description = "") + + @Valid + public AppointmentRef getAppointment() { + return appointment; + } + + public void setAppointment(AppointmentRef appointment) { + this.appointment = appointment; + } + + public ResourceOrderItem orderItemRelationship(List orderItemRelationship) { + this.orderItemRelationship = orderItemRelationship; + return this; + } + + public ResourceOrderItem addOrderItemRelationshipItem(ResourceOrderItemRelationship orderItemRelationshipItem) { + if (this.orderItemRelationship == null) { + this.orderItemRelationship = new ArrayList<>(); + } + this.orderItemRelationship.add(orderItemRelationshipItem); + return this; + } + + /** + * Get orderItemRelationship + * @return orderItemRelationship + **/ + @Schema(description = "") + @Valid + public List getOrderItemRelationship() { + return orderItemRelationship; + } + + public void setOrderItemRelationship(List orderItemRelationship) { + this.orderItemRelationship = orderItemRelationship; + } + + public ResourceOrderItem resource( ResourceRefOrValue resource) { + this.resource = resource; + return this; + } + + /** + * Get resource + * @return resource + **/ + @Schema(description = "") + + @Valid + public ResourceRefOrValue getResource() { + return resource; + } + + public void setResourceRefOrValue( ResourceRefOrValue resource) { + this.resource = resource; + } + + public ResourceOrderItem resourceSpecification(ResourceSpecificationRef resourceSpecification) { + this.resourceSpecification = resourceSpecification; + return this; + } + + /** + * Get resourceSpecification + * @return resourceSpecification + **/ + @Schema(description = "") + + @Valid + public ResourceSpecificationRef getResourceSpecification() { + return resourceSpecification; + } + + public void setResourceSpecification(ResourceSpecificationRef resourceSpecification) { + this.resourceSpecification = resourceSpecification; + } + + public ResourceOrderItem _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public ResourceOrderItem _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public ResourceOrderItem _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceOrderItem resourceOrderItem = (ResourceOrderItem) o; + return Objects.equals(this.id, resourceOrderItem.id) && + Objects.equals(this.action, resourceOrderItem.action) && + Objects.equals(this.quantity, resourceOrderItem.quantity) && + Objects.equals(this.state, resourceOrderItem.state) && + Objects.equals(this.appointment, resourceOrderItem.appointment) && + Objects.equals(this.orderItemRelationship, resourceOrderItem.orderItemRelationship) && + Objects.equals(this.resource, resourceOrderItem.resource) && + Objects.equals(this.resourceSpecification, resourceOrderItem.resourceSpecification) && + Objects.equals(this._atBaseType, resourceOrderItem._atBaseType) && + Objects.equals(this._atSchemaLocation, resourceOrderItem._atSchemaLocation) && + Objects.equals(this._atType, resourceOrderItem._atType); + } + + @Override + public int hashCode() { + return Objects.hash(id, action, quantity, state, appointment, orderItemRelationship, resource, resourceSpecification, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceOrderItem {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" action: ").append(toIndentedString(action)).append("\n"); + sb.append(" quantity: ").append(toIndentedString(quantity)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" appointment: ").append(toIndentedString(appointment)).append("\n"); + sb.append(" orderItemRelationship: ").append(toIndentedString(orderItemRelationship)).append("\n"); + sb.append(" resource: ").append(toIndentedString(resource)).append("\n"); + sb.append(" resourceSpecification: ").append(toIndentedString(resourceSpecification)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderItemRef.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderItemRef.java new file mode 100644 index 0000000..1f72b05 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderItemRef.java @@ -0,0 +1,221 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * ResourceOrderItemRef + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ResourceOrderItemRef { + @JsonProperty("itemId") + private String itemId = null; + + @JsonProperty("resourceOrderHref") + private String resourceOrderHref = null; + + @JsonProperty("resourceOrderId") + private String resourceOrderId = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public ResourceOrderItemRef itemId(String itemId) { + this.itemId = itemId; + return this; + } + + /** + * Identifier of the line item + * @return itemId + **/ + @Schema(description = "Identifier of the line item") + + public String getItemId() { + return itemId; + } + + public void setItemId(String itemId) { + this.itemId = itemId; + } + + public ResourceOrderItemRef resourceOrderHref(String resourceOrderHref) { + this.resourceOrderHref = resourceOrderHref; + return this; + } + + /** + * Link to the order to which this item belongs to + * @return resourceOrderHref + **/ + @Schema(description = "Link to the order to which this item belongs to") + + public String getResourceOrderHref() { + return resourceOrderHref; + } + + public void setResourceOrderHref(String resourceOrderHref) { + this.resourceOrderHref = resourceOrderHref; + } + + public ResourceOrderItemRef resourceOrderId(String resourceOrderId) { + this.resourceOrderId = resourceOrderId; + return this; + } + + /** + * Identifier of the order that this item belongs to + * @return resourceOrderId + **/ + @Schema(description = "Identifier of the order that this item belongs to") + + public String getResourceOrderId() { + return resourceOrderId; + } + + public void setResourceOrderId(String resourceOrderId) { + this.resourceOrderId = resourceOrderId; + } + + public ResourceOrderItemRef _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public ResourceOrderItemRef _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public ResourceOrderItemRef _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + public ResourceOrderItemRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceOrderItemRef resourceOrderItemRef = (ResourceOrderItemRef) o; + return Objects.equals(this.itemId, resourceOrderItemRef.itemId) && + Objects.equals(this.resourceOrderHref, resourceOrderItemRef.resourceOrderHref) && + Objects.equals(this.resourceOrderId, resourceOrderItemRef.resourceOrderId) && + Objects.equals(this._atBaseType, resourceOrderItemRef._atBaseType) && + Objects.equals(this._atSchemaLocation, resourceOrderItemRef._atSchemaLocation) && + Objects.equals(this._atType, resourceOrderItemRef._atType) && + Objects.equals(this._atReferredType, resourceOrderItemRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(itemId, resourceOrderHref, resourceOrderId, _atBaseType, _atSchemaLocation, _atType, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceOrderItemRef {\n"); + + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" resourceOrderHref: ").append(toIndentedString(resourceOrderHref)).append("\n"); + sb.append(" resourceOrderId: ").append(toIndentedString(resourceOrderId)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderItemRelationship.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderItemRelationship.java new file mode 100644 index 0000000..aa4a498 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderItemRelationship.java @@ -0,0 +1,175 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * ResourceOrderItemRelationship + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ResourceOrderItemRelationship { + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("orderItem") + private ResourceOrderItemRef orderItem = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public ResourceOrderItemRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * Type of the order item relationship + * @return relationshipType + **/ + @Schema(description = "Type of the order item relationship") + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public ResourceOrderItemRelationship orderItem(ResourceOrderItemRef orderItem) { + this.orderItem = orderItem; + return this; + } + + /** + * Get orderItem + * @return orderItem + **/ + @Schema(description = "") + + @Valid + public ResourceOrderItemRef getOrderItem() { + return orderItem; + } + + public void setOrderItem(ResourceOrderItemRef orderItem) { + this.orderItem = orderItem; + } + + public ResourceOrderItemRelationship _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public ResourceOrderItemRelationship _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public ResourceOrderItemRelationship _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceOrderItemRelationship resourceOrderItemRelationship = (ResourceOrderItemRelationship) o; + return Objects.equals(this.relationshipType, resourceOrderItemRelationship.relationshipType) && + Objects.equals(this.orderItem, resourceOrderItemRelationship.orderItem) && + Objects.equals(this._atBaseType, resourceOrderItemRelationship._atBaseType) && + Objects.equals(this._atSchemaLocation, resourceOrderItemRelationship._atSchemaLocation) && + Objects.equals(this._atType, resourceOrderItemRelationship._atType); + } + + @Override + public int hashCode() { + return Objects.hash(relationshipType, orderItem, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceOrderItemRelationship {\n"); + + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" orderItem: ").append(toIndentedString(orderItem)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderRef.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderRef.java new file mode 100644 index 0000000..466a971 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderRef.java @@ -0,0 +1,199 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * ResourceOrderRef + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ResourceOrderRef { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public ResourceOrderRef id(String id) { + this.id = id; + return this; + } + + /** + * The unique identifier of the related resource order + * @return id + **/ + @Schema(description = "The unique identifier of the related resource order") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceOrderRef href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink to access the related Resource Order + * @return href + **/ + @Schema(description = "Hyperlink to access the related Resource Order") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceOrderRef _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public ResourceOrderRef _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public ResourceOrderRef _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + public ResourceOrderRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceOrderRef resourceOrderRef = (ResourceOrderRef) o; + return Objects.equals(this.id, resourceOrderRef.id) && + Objects.equals(this.href, resourceOrderRef.href) && + Objects.equals(this._atBaseType, resourceOrderRef._atBaseType) && + Objects.equals(this._atSchemaLocation, resourceOrderRef._atSchemaLocation) && + Objects.equals(this._atType, resourceOrderRef._atType) && + Objects.equals(this._atReferredType, resourceOrderRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, _atBaseType, _atSchemaLocation, _atType, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceOrderRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderStateChangeEvent.java new file mode 100644 index 0000000..30fa86f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderStateChangeEvent.java @@ -0,0 +1,347 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ResourceOrderStateChangeEvent { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("event") + private ResourceOrderStateChangeEventPayload event = null; + + public ResourceOrderStateChangeEvent id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the Process flow + * @return id + **/ + @Schema(description = "Identifier of the Process flow") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourceOrderStateChangeEvent href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the ProcessFlow + * @return href + **/ + @Schema(description = "Reference of the ProcessFlow") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ResourceOrderStateChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ResourceOrderStateChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ResourceOrderStateChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ResourceOrderStateChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ResourceOrderStateChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ResourceOrderStateChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ResourceOrderStateChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceOrderStateChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ResourceOrderStateChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ResourceOrderStateChangeEvent event(ResourceOrderStateChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ResourceOrderStateChangeEventPayload getEvent() { + return event; + } + + public void setEvent(ResourceOrderStateChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceOrderStateChangeEvent resourceOrderStateChangeEvent = (ResourceOrderStateChangeEvent) o; + return Objects.equals(this.id, resourceOrderStateChangeEvent.id) && + Objects.equals(this.href, resourceOrderStateChangeEvent.href) && + Objects.equals(this.eventId, resourceOrderStateChangeEvent.eventId) && + Objects.equals(this.eventTime, resourceOrderStateChangeEvent.eventTime) && + Objects.equals(this.eventType, resourceOrderStateChangeEvent.eventType) && + Objects.equals(this.correlationId, resourceOrderStateChangeEvent.correlationId) && + Objects.equals(this.domain, resourceOrderStateChangeEvent.domain) && + Objects.equals(this.title, resourceOrderStateChangeEvent.title) && + Objects.equals(this.description, resourceOrderStateChangeEvent.description) && + Objects.equals(this.priority, resourceOrderStateChangeEvent.priority) && + Objects.equals(this.timeOcurred, resourceOrderStateChangeEvent.timeOcurred) && + Objects.equals(this.event, resourceOrderStateChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceOrderStateChangeEvent {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderStateChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderStateChangeEventPayload.java new file mode 100644 index 0000000..4c6024d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderStateChangeEventPayload.java @@ -0,0 +1,80 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ResourceOrderStateChangeEventPayload { + @JsonProperty("resourceOrder") + private ResourceOrder resourceOrder = null; + + public ResourceOrderStateChangeEventPayload resourceOrder(ResourceOrder resourceOrder) { + this.resourceOrder = resourceOrder; + return this; + } + + /** + * Get resourceOrder + * @return resourceOrder + **/ + @Schema(description = "") + + @Valid + public ResourceOrder getResourceOrder() { + return resourceOrder; + } + + public void setResourceOrder(ResourceOrder resourceOrder) { + this.resourceOrder = resourceOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceOrderStateChangeEventPayload resourceOrderStateChangeEventPayload = (ResourceOrderStateChangeEventPayload) o; + return Objects.equals(this.resourceOrder, resourceOrderStateChangeEventPayload.resourceOrder); + } + + @Override + public int hashCode() { + return Objects.hash(resourceOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceOrderStateChangeEventPayload {\n"); + + sb.append(" resourceOrder: ").append(toIndentedString(resourceOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderStateType.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderStateType.java new file mode 100644 index 0000000..54c7000 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderStateType.java @@ -0,0 +1,71 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.ro652.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Possible values for the state of the order + */ +public enum ResourceOrderStateType { + + INITIAL("INITIAL"), + + ACKNOWLEDGED("ACKNOWLEDGED"), + + REJECTED("REJECTED"), + + PENDING("PENDING"), + + HELD("HELD"), + + INPROGRESS("INPROGRESS"), + + CANCELLED("CANCELLED"), + + COMPLETED("COMPLETED"), + + FAILED("FAILED"), + + PARTIAL("PARTIAL"); + + private String value; + + ResourceOrderStateType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ResourceOrderStateType fromValue(String text) { + for (ResourceOrderStateType b : ResourceOrderStateType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderUpdate.java b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderUpdate.java new file mode 100644 index 0000000..a6a99bc --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/ResourceOrderUpdate.java @@ -0,0 +1,530 @@ +package org.etsi.osl.tmf.ro652.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * A Resource Order is a request to provision a set of Resources (logical and physical) triggered by the request to provision a Service through a Service Order Skipped properties: id,href,completionDate,orderDate + */ +@Schema(description = "A Resource Order is a request to provision a set of Resources (logical and physical) triggered by the request to provision a Service through a Service Order Skipped properties: id,href,completionDate,orderDate") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-09-28T23:39:08.914219800+03:00[Europe/Athens]") +public class ResourceOrderUpdate { + @JsonProperty("category") + private String category = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("expectedCompletionDate") + private OffsetDateTime expectedCompletionDate = null; + + @JsonProperty("externalId") + private String externalId = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("orderType") + private String orderType = null; + + @JsonProperty("priority") + private Integer priority = null; + + @JsonProperty("requestedCompletionDate") + private OffsetDateTime requestedCompletionDate = null; + + @JsonProperty("requestedStartDate") + private OffsetDateTime requestedStartDate = null; + + @JsonProperty("startDate") + private OffsetDateTime startDate = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("externalReference") + @Valid + private List externalReference = null; + + @JsonProperty("note") + @Valid + private List note = null; + + @JsonProperty("orderItem") + @Valid + private List orderItem = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + public ResourceOrderUpdate category(String category) { + this.category = category; + return this; + } + + /** + * Used to categorize the order from a business perspective that can be useful for the OM system. + * @return category + **/ + @Schema(description = "Used to categorize the order from a business perspective that can be useful for the OM system.") + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public ResourceOrderUpdate description(String description) { + this.description = description; + return this; + } + + /** + * free-text description of the Resource Order + * @return description + **/ + @Schema(description = "free-text description of the Resource Order") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourceOrderUpdate expectedCompletionDate(OffsetDateTime expectedCompletionDate) { + this.expectedCompletionDate = expectedCompletionDate; + return this; + } + + /** + * Date when the order was completed + * @return expectedCompletionDate + **/ + @Schema(description = "Date when the order was completed") + + @Valid + public OffsetDateTime getExpectedCompletionDate() { + return expectedCompletionDate; + } + + public void setExpectedCompletionDate(OffsetDateTime expectedCompletionDate) { + this.expectedCompletionDate = expectedCompletionDate; + } + + public ResourceOrderUpdate externalId(String externalId) { + this.externalId = externalId; + return this; + } + + /** + * DEPRECATED: Use externalReference Instead. ID given by the consumer (to facilitate searches afterwards) + * @return externalId + **/ + @Schema(description = "DEPRECATED: Use externalReference Instead. ID given by the consumer (to facilitate searches afterwards)") + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public ResourceOrderUpdate name(String name) { + this.name = name; + return this; + } + + /** + * A string used to give a name to the Resource Order + * @return name + **/ + @Schema(description = "A string used to give a name to the Resource Order") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ResourceOrderUpdate orderType(String orderType) { + this.orderType = orderType; + return this; + } + + /** + * Name of the Resource Order type + * @return orderType + **/ + @Schema(description = "Name of the Resource Order type") + + public String getOrderType() { + return orderType; + } + + public void setOrderType(String orderType) { + this.orderType = orderType; + } + + public ResourceOrderUpdate priority(Integer priority) { + this.priority = priority; + return this; + } + + /** + * A way that can be used by consumers to prioritize orders in OM system (from 0 to 4 : 0 is the highest priority, and 4 the lowest) + * @return priority + **/ + @Schema(description = "A way that can be used by consumers to prioritize orders in OM system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)") + + public Integer getPriority() { + return priority; + } + + public void setPriority(Integer priority) { + this.priority = priority; + } + + public ResourceOrderUpdate requestedCompletionDate(OffsetDateTime requestedCompletionDate) { + this.requestedCompletionDate = requestedCompletionDate; + return this; + } + + /** + * Requested delivery date from the requestor perspective + * @return requestedCompletionDate + **/ + @Schema(description = "Requested delivery date from the requestor perspective") + + @Valid + public OffsetDateTime getRequestedCompletionDate() { + return requestedCompletionDate; + } + + public void setRequestedCompletionDate(OffsetDateTime requestedCompletionDate) { + this.requestedCompletionDate = requestedCompletionDate; + } + + public ResourceOrderUpdate requestedStartDate(OffsetDateTime requestedStartDate) { + this.requestedStartDate = requestedStartDate; + return this; + } + + /** + * Order start date wished by the requestor + * @return requestedStartDate + **/ + @Schema(description = "Order start date wished by the requestor") + + @Valid + public OffsetDateTime getRequestedStartDate() { + return requestedStartDate; + } + + public void setRequestedStartDate(OffsetDateTime requestedStartDate) { + this.requestedStartDate = requestedStartDate; + } + + public ResourceOrderUpdate startDate(OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Date when the order was actually started + * @return startDate + **/ + @Schema(description = "Date when the order was actually started") + + @Valid + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; + } + + public ResourceOrderUpdate state(String state) { + this.state = state; + return this; + } + + /** + * The life cycle state of the resource. + * @return state + **/ + @Schema(description = "The life cycle state of the resource.") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public ResourceOrderUpdate externalReference(List externalReference) { + this.externalReference = externalReference; + return this; + } + + public ResourceOrderUpdate addExternalReferenceItem(ExternalId externalReferenceItem) { + if (this.externalReference == null) { + this.externalReference = new ArrayList<>(); + } + this.externalReference.add(externalReferenceItem); + return this; + } + + /** + * Get externalReference + * @return externalReference + **/ + @Schema(description = "") + @Valid + public List getExternalReference() { + return externalReference; + } + + public void setExternalReference(List externalReference) { + this.externalReference = externalReference; + } + + public ResourceOrderUpdate note(List note) { + this.note = note; + return this; + } + + public ResourceOrderUpdate addNoteItem(Note noteItem) { + if (this.note == null) { + this.note = new ArrayList<>(); + } + this.note.add(noteItem); + return this; + } + + /** + * Get note + * @return note + **/ + @Schema(description = "") + @Valid + public List getNote() { + return note; + } + + public void setNote(List note) { + this.note = note; + } + + public ResourceOrderUpdate orderItem(List orderItem) { + this.orderItem = orderItem; + return this; + } + + public ResourceOrderUpdate addOrderItemItem(ResourceOrderItem orderItemItem) { + if (this.orderItem == null) { + this.orderItem = new ArrayList<>(); + } + this.orderItem.add(orderItemItem); + return this; + } + + /** + * Get orderItem + * @return orderItem + **/ + @Schema(description = "") + @Valid + public List getOrderItem() { + return orderItem; + } + + public void setOrderItem(List orderItem) { + this.orderItem = orderItem; + } + + public ResourceOrderUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ResourceOrderUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Get relatedParty + * @return relatedParty + **/ + @Schema(description = "") + @Valid + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public ResourceOrderUpdate _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return _atBaseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public ResourceOrderUpdate _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return _atSchemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public ResourceOrderUpdate _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return _atType + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceOrderUpdate resourceOrderUpdate = (ResourceOrderUpdate) o; + return Objects.equals(this.category, resourceOrderUpdate.category) && + Objects.equals(this.description, resourceOrderUpdate.description) && + Objects.equals(this.expectedCompletionDate, resourceOrderUpdate.expectedCompletionDate) && + Objects.equals(this.externalId, resourceOrderUpdate.externalId) && + Objects.equals(this.name, resourceOrderUpdate.name) && + Objects.equals(this.orderType, resourceOrderUpdate.orderType) && + Objects.equals(this.priority, resourceOrderUpdate.priority) && + Objects.equals(this.requestedCompletionDate, resourceOrderUpdate.requestedCompletionDate) && + Objects.equals(this.requestedStartDate, resourceOrderUpdate.requestedStartDate) && + Objects.equals(this.startDate, resourceOrderUpdate.startDate) && + Objects.equals(this.state, resourceOrderUpdate.state) && + Objects.equals(this.externalReference, resourceOrderUpdate.externalReference) && + Objects.equals(this.note, resourceOrderUpdate.note) && + Objects.equals(this.orderItem, resourceOrderUpdate.orderItem) && + Objects.equals(this.relatedParty, resourceOrderUpdate.relatedParty) && + Objects.equals(this._atBaseType, resourceOrderUpdate._atBaseType) && + Objects.equals(this._atSchemaLocation, resourceOrderUpdate._atSchemaLocation) && + Objects.equals(this._atType, resourceOrderUpdate._atType); + } + + @Override + public int hashCode() { + return Objects.hash(category, description, expectedCompletionDate, externalId, name, orderType, priority, requestedCompletionDate, requestedStartDate, startDate, state, externalReference, note, orderItem, relatedParty, _atBaseType, _atSchemaLocation, _atType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceOrderUpdate {\n"); + + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" expectedCompletionDate: ").append(toIndentedString(expectedCompletionDate)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" orderType: ").append(toIndentedString(orderType)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" requestedCompletionDate: ").append(toIndentedString(requestedCompletionDate)).append("\n"); + sb.append(" requestedStartDate: ").append(toIndentedString(requestedStartDate)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" externalReference: ").append(toIndentedString(externalReference)).append("\n"); + sb.append(" note: ").append(toIndentedString(note)).append("\n"); + sb.append(" orderItem: ").append(toIndentedString(orderItem)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/model/TaskStateType.java b/src/main/java/org/etsi/osl/tmf/ro652/model/TaskStateType.java new file mode 100644 index 0000000..5535f44 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/model/TaskStateType.java @@ -0,0 +1,36 @@ +package org.etsi.osl.tmf.ro652.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Possible values for the state of a task + */ +public enum TaskStateType { + ACKNOWLEDGED("acknowledged"), + TERMINATEDWITHERROR("terminatedWithError"), + INPROGRESS("inProgress"), + DONE("done"); + + private String value; + + TaskStateType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static TaskStateType fromValue(String text) { + for (TaskStateType b : TaskStateType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/reposervices/ResourceOrderMapper.java b/src/main/java/org/etsi/osl/tmf/ro652/reposervices/ResourceOrderMapper.java new file mode 100644 index 0000000..3a2c562 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/reposervices/ResourceOrderMapper.java @@ -0,0 +1,16 @@ +package org.etsi.osl.tmf.ro652.reposervices; + +import org.etsi.osl.tmf.ri639.model.Resource; +import org.etsi.osl.tmf.ri639.model.ResourceRefOrValue; +import org.mapstruct.Mapper; +import org.mapstruct.NullValueCheckStrategy; +import org.mapstruct.NullValueMappingStrategy; + +@Mapper( + nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT, + nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS ) +public interface ResourceOrderMapper { + + ResourceRefOrValue fromResource(Resource res); + +} diff --git a/src/main/java/org/etsi/osl/tmf/ro652/reposervices/ResourceOrderRepoService.java b/src/main/java/org/etsi/osl/tmf/ro652/reposervices/ResourceOrderRepoService.java new file mode 100644 index 0000000..03b2c6c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/ro652/reposervices/ResourceOrderRepoService.java @@ -0,0 +1,336 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.ro652.reposervices; + +import java.io.UnsupportedEncodingException; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.EValueType; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCharacteristic; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCharacteristicValue; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceSpecificationRepoService; +import org.etsi.osl.tmf.ri639.model.Characteristic; +import org.etsi.osl.tmf.ri639.model.ResourceCreate; +import org.etsi.osl.tmf.ri639.model.ResourceRefOrValue; +import org.etsi.osl.tmf.ri639.reposervices.ResourceRepoService; +import org.etsi.osl.tmf.ro652.model.ResourceOrder; +import org.etsi.osl.tmf.ro652.model.ResourceOrderCreate; +import org.etsi.osl.tmf.ro652.model.ResourceOrderItem; +import org.etsi.osl.tmf.ro652.model.ResourceOrderStateType; +import org.etsi.osl.tmf.ro652.model.ResourceOrderUpdate; +import org.mapstruct.factory.Mappers; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import jakarta.validation.Valid; + +@Service +public class ResourceOrderRepoService { + + private static final transient Log logger = LogFactory.getLog(ResourceOrderRepoService.class.getName()); + + @Autowired + ObjectMapper objectMapper; + + @Autowired + ResourceSpecificationRepoService resourceSpecRepoService; + + @Autowired + ResourceRepoService resourceRepoService; + + + /** + * + * This findAll is optimized on fields. + * @param fields + * @param allParams + * @return + * @throws UnsupportedEncodingException + */ + @Transactional + public List findAll(@Valid String fields, Map allParams) + throws UnsupportedEncodingException { + + return new ArrayList<>(); + + } + + public List findAll() { + return new ArrayList<>(); + } + + public List findAllParams(Map allParams) { + + return new ArrayList<>(); + + } + + public String findAllParamsJsonOrderIDs(Map allParams) throws JsonProcessingException { + + return "[]"; + } + + public ResourceOrder addResourceOrder(@Valid ResourceOrderCreate rOrderCreate) { + ResourceOrder ro = new ResourceOrder(); + ro.orderDate(OffsetDateTime.now(ZoneOffset.UTC)) + .category(rOrderCreate.getCategory()) + .description(rOrderCreate.getDescription()) + .externalId(rOrderCreate.getExternalId()) + .priority(rOrderCreate.getPriority()) + .requestedCompletionDate(rOrderCreate.getRequestedCompletionDate()) + .requestedStartDate(rOrderCreate.getRequestedStartDate() ) + .startDate( rOrderCreate.getRequestedStartDate() ) + .expectedCompletionDate( rOrderCreate.getRequestedCompletionDate() ); //this is by default + if (rOrderCreate.getNote() != null) { + ro.getNote().addAll(rOrderCreate.getNote()); + } + if (rOrderCreate.getRelatedParty() != null) { + ro.getRelatedParty().addAll(rOrderCreate.getRelatedParty()); + } + + + boolean allAcknowledged = true; + if (rOrderCreate.getOrderItem() != null) { + ro.getOrderItem().addAll(rOrderCreate.getOrderItem()); + for (ResourceOrderItem soi : ro.getOrderItem()) { + //as of 18/8/2021 in service item we do not copy all service spec characteristics. + //The characteristics of the spec, since they are not user configurable will + //be just exist in the service instance + //copySpecCharacteristicsToServiceCharacteristic( soi.getService().getServiceSpecification().getId(), soi.getService().getServiceCharacteristic() ); + + if ( soi.getState()!=null && !soi.getState().equals( ResourceOrderStateType.ACKNOWLEDGED )) { + allAcknowledged = false; + } + + //at this stage we have no ResOrchestrator.. we will do this by simple code + ResourceRefOrValue r = createResource( soi, rOrderCreate.getRelatedParty() ); + soi.resource( r ); + + } + + + + } + + + + +// so = this.serviceOrderRepo.save(so); +// so = this.fixServiceOrderItemsDependencies(so); + + Note noteItem = new Note(); + noteItem.setText("Resource Order " + ResourceOrderStateType.INITIAL); + noteItem.setAuthor("RO652API-addResourceOrder"); + noteItem.setDate(OffsetDateTime.now(ZoneOffset.UTC) ); + ro.addNoteItem(noteItem); + + return ro; + } + + + + private ResourceRefOrValue createResource(ResourceOrderItem soi, @Valid List list) { + + @Valid + ResourceCreate resCreate = new ResourceCreate(); + var specRef = soi.getResource().getResourceSpecification(); + if ( specRef == null ) { + specRef = soi.getResourceSpecification(); + } + + + var spec = resourceSpecRepoService.findByUuid( specRef.getId() ); + if ( spec == null) { + spec = resourceSpecRepoService.findByName( specRef.getName() ); + if ( spec == null) { + return new ResourceRefOrValue(); + } + } + + if ( soi.getResource().getName() !=null ) { + resCreate.setName( soi.getResource().getName() ); + } else { + resCreate.setName( spec.getName() ); + + } + + + resCreate.setDescription("A Resource called " +resCreate.getName() + " based on resource spec" + spec.getName()); + resCreate.setCategory( spec.getCategory() ); + if ( spec.getType().toLowerCase().contains( "physical" ) ) { + resCreate.setAtType("PhysicalResource"); + } else { + resCreate.setAtType("LogicalResource"); + } + + + ResourceSpecificationRef thespecRef = new ResourceSpecificationRef(); + thespecRef.setId( spec.getId()); + thespecRef.setName( spec.getName() ); + resCreate.setResourceSpecification( thespecRef ); + + + for (ResourceSpecificationCharacteristic c : spec.getResourceSpecCharacteristic()) { + for (Characteristic orderCharacteristic : soi.getResource().getResourceCharacteristic()) { + String specCharacteristicToSearch = c.getName(); + if ( orderCharacteristic.getName().equals( specCharacteristicToSearch )) { //copy only characteristics that are related from the order + resCreate.addResourceCharacteristicItem( addResourceCharacteristicItem(c, orderCharacteristic) ); + break; + } + } + } + + + if ( resCreate.getResourceCharacteristic() == null) { + resCreate.setResourceCharacteristic( new ArrayList<>() ); + } + + copyRemainingSpecCharacteristicsToResourceCharacteristic(spec , resCreate.getResourceCharacteristic() ); //copy to resource the rest of the characteristics that do not exists yet from the above search + + if ( resCreate.getResourceRelationship() == null) { + resCreate.setResourceRelationship( new ArrayList<>() ); + } + resCreate.getResourceRelationship().addAll( soi.getResource().getResourceRelationship() ); + + if ( resCreate.getAttachment() == null) { + resCreate.setAttachment( new ArrayList<>() ); + } + resCreate.getAttachment().addAll( soi.getResource().getAttachment() ); + + var newresource = resourceRepoService.addResource( resCreate ); + + ResourceOrderMapper mapper = Mappers.getMapper(ResourceOrderMapper.class); + var result = mapper.fromResource( newresource ); + return result; + } + + private void copyRemainingSpecCharacteristicsToResourceCharacteristic(ResourceSpecification spec, + @Valid List destResCharacteristic) { + for (ResourceSpecificationCharacteristic sourceCharacteristic : spec.getResourceSpecCharacteristic()) { + if ( sourceCharacteristic.getValueType() != null ) { + boolean charfound = false; + for (Characteristic destchar : destResCharacteristic) { + if ( destchar.getName().equals(sourceCharacteristic.getName())) { + charfound = true; + break; + } + } + + if (!charfound) { + + Characteristic newChar = new Characteristic(); + newChar.setName( sourceCharacteristic.getName() ); + newChar.setValueType( sourceCharacteristic.getValueType() ); + + if ( sourceCharacteristic.getValueType() != null && sourceCharacteristic.getValueType().equals( EValueType.ARRAY.getValue() ) || + sourceCharacteristic.getValueType() != null && sourceCharacteristic.getValueType().equals( EValueType.SET.getValue() ) ) { + String valString = ""; + for (ResourceSpecificationCharacteristicValue specchar : sourceCharacteristic.getResourceSpecCharacteristicValue()) { + if ( ( specchar.isIsDefault()!= null) && specchar.isIsDefault() ) { + if ( !valString.equals("")) { + valString = valString + ","; + } + valString = valString + "{\"value\":\"" + specchar.getValue().getValue() + "\",\"alias\":\"" + specchar.getValue().getAlias() + "\"}"; + } + + } + + newChar.setValue( new Any( "[" + valString + "]", "") ); + + + } else { + for (ResourceSpecificationCharacteristicValue specchar : sourceCharacteristic.getResourceSpecCharacteristicValue()) { + if ( ( specchar.isIsDefault()!= null) && specchar.isIsDefault() ) { + newChar.setValue( new Any( + specchar.getValue().getValue(), + specchar.getValue().getAlias()) ); + break; + }else { + if (specchar.isIsDefault()== null){ + + logger.info("specchar is null value: " + sourceCharacteristic.getName() ); + } + } + + } + } + + //sourceCharacteristic.getServiceSpecCharacteristicValue() + + if ( newChar.getValue() !=null) { + destResCharacteristic.add(newChar ); + } else { + newChar.setValue( new Any( + "", + "") ); + destResCharacteristic.add(newChar ); + } + + } + + } + + + } + + } + + private Characteristic addResourceCharacteristicItem(ResourceSpecificationCharacteristic c, Characteristic orderCharacteristic) { + Characteristic resCharacteristicItem = new Characteristic(); + resCharacteristicItem.setName( c.getName() ); + resCharacteristicItem.setValueType( c.getValueType() ); + + Any val = new Any(); + val.setValue( orderCharacteristic.getValue().getValue() ); + val.setAlias( orderCharacteristic.getValue().getAlias() ); + + resCharacteristicItem.setValue( val ); + + return resCharacteristicItem; + } + + + @Transactional + public ResourceOrder updateResourceOrder(String id, @Valid ResourceOrderUpdate resourceOrderUpd) { + return null; + + } + + + + + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/api/ApiException.java b/src/main/java/org/etsi/osl/tmf/rpm685/api/ApiException.java new file mode 100644 index 0000000..5972e1c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/api/ApiException.java @@ -0,0 +1,10 @@ +package org.etsi.osl.tmf.rpm685.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/api/ApiOriginFilter.java b/src/main/java/org/etsi/osl/tmf/rpm685/api/ApiOriginFilter.java new file mode 100644 index 0000000..8ab4755 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/api/ApiOriginFilter.java @@ -0,0 +1,31 @@ +package org.etsi.osl.tmf.rpm685.api; + +import java.io.IOException; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class ApiOriginFilter implements jakarta.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/api/ApiResponseMessage.java b/src/main/java/org/etsi/osl/tmf/rpm685/api/ApiResponseMessage.java new file mode 100644 index 0000000..6aa0f03 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/api/ApiResponseMessage.java @@ -0,0 +1,69 @@ +package org.etsi.osl.tmf.rpm685.api; + +import jakarta.xml.bind.annotation.XmlTransient; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +@jakarta.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/api/AvailabilityCheckApi.java b/src/main/java/org/etsi/osl/tmf/rpm685/api/AvailabilityCheckApi.java new file mode 100644 index 0000000..6acc47e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/api/AvailabilityCheckApi.java @@ -0,0 +1,77 @@ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.rpm685.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rpm685.model.AvailabilityCheck; +import org.etsi.osl.tmf.rpm685.model.AvailabilityCheckCreate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +@Tag(name = "availabilityCheck", description = "the availabilityCheck API") +public interface AvailabilityCheckApi { + + Logger log = LoggerFactory.getLogger(AvailabilityCheckApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a 'AvailabilityCheck'", operationId = "createAvailabilityCheck", description = "This operation executes task to retrieve available Resource entities or to check resource pool has available Resource capacity.", tags={ "availabilityCheck", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/availabilityCheck", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.POST) + default ResponseEntity createAvailabilityCheck(@Parameter(description = "The Availability Check to be created" ,required=true ) @Valid @RequestBody AvailabilityCheckCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n}", AvailabilityCheck.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default AvailabilityCheckApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/api/AvailabilityCheckApiController.java b/src/main/java/org/etsi/osl/tmf/rpm685/api/AvailabilityCheckApiController.java new file mode 100644 index 0000000..6164788 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/api/AvailabilityCheckApiController.java @@ -0,0 +1,73 @@ +package org.etsi.osl.tmf.rpm685.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rpm685.model.AvailabilityCheck; +import org.etsi.osl.tmf.rpm685.model.AvailabilityCheckCreate; +import org.etsi.osl.tmf.rpm685.reposervices.ResourcePoolRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +@Controller("AvailabilityCheckApiController685") +@RequestMapping("/resourcePoolManagement/v1/") +public class AvailabilityCheckApiController implements AvailabilityCheckApi { + + private static final Logger log = LoggerFactory.getLogger(AvailabilityCheckApiController.class); + + + @Autowired + ResourcePoolRepoService resourcePoolRepoService; + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public AvailabilityCheckApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity createAvailabilityCheck(@Valid AvailabilityCheckCreate body) { + try { + if (SecurityContextHolder.getContext().getAuthentication() != null) { + + + AvailabilityCheck c = resourcePoolRepoService.availabilityCheck( body ); + + return new ResponseEntity(c, HttpStatus.OK); + } else { + + return new ResponseEntity(HttpStatus.FORBIDDEN); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/api/ExtractApi.java b/src/main/java/org/etsi/osl/tmf/rpm685/api/ExtractApi.java new file mode 100644 index 0000000..12ed506 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/api/ExtractApi.java @@ -0,0 +1,77 @@ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.rpm685.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rpm685.model.ExtractCreate; +import org.etsi.osl.tmf.rpm685.model.ResourcePool; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +@Tag(name = "extract", description = "the extract API") +public interface ExtractApi { + + Logger log = LoggerFactory.getLogger(ExtractApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates an 'Extract' action and modifies a pool", operationId = "createExtract", description = "In this operation, TASK is executed to extract the capacity of the resource from the resource pool to another pool.", tags={ "extract", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/extract", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.POST) + default ResponseEntity createExtract(@Parameter(description = "The Extract to be performed" ,required=true ) @Valid @RequestBody ExtractCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n}", ResourcePool.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ExtractApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/api/ExtractApiController.java b/src/main/java/org/etsi/osl/tmf/rpm685/api/ExtractApiController.java new file mode 100644 index 0000000..9b3b25b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/api/ExtractApiController.java @@ -0,0 +1,76 @@ +package org.etsi.osl.tmf.rpm685.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rpm685.model.ExtractCreate; +import org.etsi.osl.tmf.rpm685.model.ResourcePool; +import org.etsi.osl.tmf.rpm685.reposervices.ResourcePoolRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +@Controller("ExtractApiController685") +@RequestMapping("/resourcePoolManagement/v1/") +public class ExtractApiController implements ExtractApi { + + private static final Logger log = LoggerFactory.getLogger( ExtractApiController.class ); + + @Autowired + ResourcePoolRepoService resourcePoolRepoService; + + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ExtractApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity createExtract(@Valid ExtractCreate body) { + try { + if (SecurityContextHolder.getContext().getAuthentication() != null) { + + + ResourcePool c = resourcePoolRepoService.extract( body ); + if ( c != null ) { + return new ResponseEntity(c, HttpStatus.OK); + } else { + return new ResponseEntity(HttpStatus.NOT_FOUND); + } + + } else { + + return new ResponseEntity(HttpStatus.FORBIDDEN); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/rpm685/api/HubApi.java new file mode 100644 index 0000000..72b8576 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/api/HubApi.java @@ -0,0 +1,100 @@ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.rpm685.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rpm685.model.EventSubscription; +import org.etsi.osl.tmf.rpm685.model.EventSubscriptionInput; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +@Tag(name = "hub", description = "the hub API") +public interface HubApi { + + Logger log = LoggerFactory.getLogger(HubApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Register a listener", operationId = "registerListener", description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Subscribed" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.POST) + default ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Unregister a listener", operationId = "unregisterListener", description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method not allowed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub/{id}", + produces = { "application/json" }, + method = RequestMethod.DELETE) + default ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/rpm685/api/HubApiController.java new file mode 100644 index 0000000..f2cde3e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/api/HubApiController.java @@ -0,0 +1,36 @@ +package org.etsi.osl.tmf.rpm685.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +@Controller("HubApiController685") +@RequestMapping("/resourcePoolManagement/v1/") +public class HubApiController implements HubApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public HubApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/api/NotFoundException.java b/src/main/java/org/etsi/osl/tmf/rpm685/api/NotFoundException.java new file mode 100644 index 0000000..84e3d97 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/api/NotFoundException.java @@ -0,0 +1,10 @@ +package org.etsi.osl.tmf.rpm685.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class NotFoundException extends ApiException { + private int code; + public NotFoundException (int code, String msg) { + super(code, msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/api/PushApi.java b/src/main/java/org/etsi/osl/tmf/rpm685/api/PushApi.java new file mode 100644 index 0000000..ceb3c27 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/api/PushApi.java @@ -0,0 +1,77 @@ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.rpm685.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rpm685.model.PushCreate; +import org.etsi.osl.tmf.rpm685.model.ResourcePool; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +@Tag(name = "push", description = "the push API") +public interface PushApi { + + Logger log = LoggerFactory.getLogger(PushApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a 'Push' action and modifies a Pool", operationId = "createPush", description = "This operation runs TASK, which adds the capacity of the new resource to the resource pool.", tags={ "push", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/push", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.POST) + default ResponseEntity createPush(@Parameter(description = "The Push to be performed" ,required=true ) @Valid @RequestBody PushCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n}", ResourcePool.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default PushApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/api/PushApiController.java b/src/main/java/org/etsi/osl/tmf/rpm685/api/PushApiController.java new file mode 100644 index 0000000..fe6de31 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/api/PushApiController.java @@ -0,0 +1,76 @@ +package org.etsi.osl.tmf.rpm685.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rpm685.model.PushCreate; +import org.etsi.osl.tmf.rpm685.model.ResourcePool; +import org.etsi.osl.tmf.rpm685.reposervices.ResourcePoolRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +@Controller("PushApiController685") +@RequestMapping("/resourcePoolManagement/v1/") +public class PushApiController implements PushApi { + + + private static final Logger log = LoggerFactory.getLogger( PushApiController.class ); + + @Autowired + ResourcePoolRepoService resourcePoolRepoService; + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public PushApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity createPush(@Valid PushCreate body) { + try { + if (SecurityContextHolder.getContext().getAuthentication() != null) { + + + ResourcePool c = resourcePoolRepoService.push( body ); + if ( c != null ) { + return new ResponseEntity(c, HttpStatus.OK); + } else { + return new ResponseEntity(HttpStatus.NOT_FOUND); + + } + } else { + + return new ResponseEntity(HttpStatus.FORBIDDEN); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/api/ReservationApi.java b/src/main/java/org/etsi/osl/tmf/rpm685/api/ReservationApi.java new file mode 100644 index 0000000..42cdd32 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/api/ReservationApi.java @@ -0,0 +1,204 @@ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.rpm685.api; + +import java.io.IOException; +import java.security.Principal; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rpm685.model.Reservation; +import org.etsi.osl.tmf.rpm685.model.ReservationCreate; +import org.etsi.osl.tmf.rpm685.model.ReservationUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +@Tag(name = "reservation", description = "the reservation API") +public interface ReservationApi { + + Logger log = LoggerFactory.getLogger(ReservationApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a 'Reservation'", operationId = "createReservation", description = "", tags={ "reservation", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/reservation", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.POST) + default ResponseEntity createReservation(Principal principal,@Parameter(description = "The Reservation to be created" ,required=true ) @Valid @RequestBody ReservationCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"reservationState\" : \"reservationState\",\r\n \"@type\" : \"@type\",\r\n \"reservationItem\" : [ {\r\n \"quantity\" : 0,\r\n \"@baseType\" : \"@baseType\",\r\n \"appliedCapacityAmount\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n } ],\r\n \"@type\" : \"{}\",\r\n \"appliedDemandAmount\" : \"appliedDemandAmount\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"subReservationState\" : \"subReservationState\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourceCapacity\" : {\r\n \"applicableTimePeriod\" : {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"dayOfWeek\" : \"dayOfWeek\",\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : \"validFor\",\r\n \"@type\" : \"@type\",\r\n \"fromToDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"capacityDemandAmount\" : \"capacityDemandAmount\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourcePool\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"relatedParty\" : \"relatedParty\",\r\n \"resourceCollection\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n } ]\r\n }\r\n }\r\n }, {\r\n \"quantity\" : 0,\r\n \"@baseType\" : \"@baseType\",\r\n \"appliedCapacityAmount\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n } ],\r\n \"@type\" : \"{}\",\r\n \"appliedDemandAmount\" : \"appliedDemandAmount\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"subReservationState\" : \"subReservationState\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourceCapacity\" : {\r\n \"applicableTimePeriod\" : {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"dayOfWeek\" : \"dayOfWeek\",\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : \"validFor\",\r\n \"@type\" : \"@type\",\r\n \"fromToDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"capacityDemandAmount\" : \"capacityDemandAmount\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourcePool\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"relatedParty\" : \"relatedParty\",\r\n \"resourceCollection\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n } ]\r\n }\r\n }\r\n } ],\r\n \"productOfferingRef\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"bundledProductOffering\" : [ \"{}\", \"{}\" ],\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"description\" : \"description\",\r\n \"requestedPeriod\" : {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : \"validFor\",\r\n \"@type\" : \"@type\",\r\n \"fromToDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"daysOfWeek\" : \"daysOfWeek\"\r\n },\r\n \"relatedParty\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"channelRef\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"valid_for\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}", Reservation.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ReservationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find 'Reservation' objects", operationId = "listReservation", description = "" , tags={ "reservation", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Ok" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/reservation", + produces = { "application/json" }, + method = RequestMethod.GET) + default ResponseEntity> listReservation(Principal principal,@Parameter(description = "Comma separated properties to display in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"reservationState\" : \"reservationState\",\r\n \"@type\" : \"@type\",\r\n \"reservationItem\" : [ {\r\n \"quantity\" : 0,\r\n \"@baseType\" : \"@baseType\",\r\n \"appliedCapacityAmount\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n } ],\r\n \"@type\" : \"{}\",\r\n \"appliedDemandAmount\" : \"appliedDemandAmount\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"subReservationState\" : \"subReservationState\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourceCapacity\" : {\r\n \"applicableTimePeriod\" : {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"dayOfWeek\" : \"dayOfWeek\",\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : \"validFor\",\r\n \"@type\" : \"@type\",\r\n \"fromToDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"capacityDemandAmount\" : \"capacityDemandAmount\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourcePool\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"relatedParty\" : \"relatedParty\",\r\n \"resourceCollection\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n } ]\r\n }\r\n }\r\n }, {\r\n \"quantity\" : 0,\r\n \"@baseType\" : \"@baseType\",\r\n \"appliedCapacityAmount\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n } ],\r\n \"@type\" : \"{}\",\r\n \"appliedDemandAmount\" : \"appliedDemandAmount\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"subReservationState\" : \"subReservationState\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourceCapacity\" : {\r\n \"applicableTimePeriod\" : {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"dayOfWeek\" : \"dayOfWeek\",\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : \"validFor\",\r\n \"@type\" : \"@type\",\r\n \"fromToDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"capacityDemandAmount\" : \"capacityDemandAmount\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourcePool\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"relatedParty\" : \"relatedParty\",\r\n \"resourceCollection\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n } ]\r\n }\r\n }\r\n } ],\r\n \"productOfferingRef\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"bundledProductOffering\" : [ \"{}\", \"{}\" ],\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"description\" : \"description\",\r\n \"requestedPeriod\" : {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : \"validFor\",\r\n \"@type\" : \"@type\",\r\n \"fromToDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"daysOfWeek\" : \"daysOfWeek\"\r\n },\r\n \"relatedParty\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"channelRef\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"valid_for\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}, {\r\n \"reservationState\" : \"reservationState\",\r\n \"@type\" : \"@type\",\r\n \"reservationItem\" : [ {\r\n \"quantity\" : 0,\r\n \"@baseType\" : \"@baseType\",\r\n \"appliedCapacityAmount\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n } ],\r\n \"@type\" : \"{}\",\r\n \"appliedDemandAmount\" : \"appliedDemandAmount\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"subReservationState\" : \"subReservationState\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourceCapacity\" : {\r\n \"applicableTimePeriod\" : {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"dayOfWeek\" : \"dayOfWeek\",\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : \"validFor\",\r\n \"@type\" : \"@type\",\r\n \"fromToDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"capacityDemandAmount\" : \"capacityDemandAmount\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourcePool\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"relatedParty\" : \"relatedParty\",\r\n \"resourceCollection\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n } ]\r\n }\r\n }\r\n }, {\r\n \"quantity\" : 0,\r\n \"@baseType\" : \"@baseType\",\r\n \"appliedCapacityAmount\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n } ],\r\n \"@type\" : \"{}\",\r\n \"appliedDemandAmount\" : \"appliedDemandAmount\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"subReservationState\" : \"subReservationState\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourceCapacity\" : {\r\n \"applicableTimePeriod\" : {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"dayOfWeek\" : \"dayOfWeek\",\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : \"validFor\",\r\n \"@type\" : \"@type\",\r\n \"fromToDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"capacityDemandAmount\" : \"capacityDemandAmount\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourcePool\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"relatedParty\" : \"relatedParty\",\r\n \"resourceCollection\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n } ]\r\n }\r\n }\r\n } ],\r\n \"productOfferingRef\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"bundledProductOffering\" : [ \"{}\", \"{}\" ],\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"description\" : \"description\",\r\n \"requestedPeriod\" : {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : \"validFor\",\r\n \"@type\" : \"@type\",\r\n \"fromToDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"daysOfWeek\" : \"daysOfWeek\"\r\n },\r\n \"relatedParty\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"channelRef\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"valid_for\" : \"2000-01-23T04:56:07.000+00:00\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ReservationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a 'Reservation' by Id", operationId = "patchReservation", description = "", tags={ "reservation", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/reservation/{id}", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.PATCH) + default ResponseEntity patchReservation(Principal principal,@Parameter(description = "The Reservation to be updated" ,required=true ) @Valid @RequestBody ReservationUpdate body +,@Parameter(description = "Identifier of the Reservation",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"reservationState\" : \"reservationState\",\r\n \"@type\" : \"@type\",\r\n \"reservationItem\" : [ {\r\n \"quantity\" : 0,\r\n \"@baseType\" : \"@baseType\",\r\n \"appliedCapacityAmount\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n } ],\r\n \"@type\" : \"{}\",\r\n \"appliedDemandAmount\" : \"appliedDemandAmount\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"subReservationState\" : \"subReservationState\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourceCapacity\" : {\r\n \"applicableTimePeriod\" : {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"dayOfWeek\" : \"dayOfWeek\",\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : \"validFor\",\r\n \"@type\" : \"@type\",\r\n \"fromToDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"capacityDemandAmount\" : \"capacityDemandAmount\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourcePool\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"relatedParty\" : \"relatedParty\",\r\n \"resourceCollection\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n } ]\r\n }\r\n }\r\n }, {\r\n \"quantity\" : 0,\r\n \"@baseType\" : \"@baseType\",\r\n \"appliedCapacityAmount\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n } ],\r\n \"@type\" : \"{}\",\r\n \"appliedDemandAmount\" : \"appliedDemandAmount\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"subReservationState\" : \"subReservationState\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourceCapacity\" : {\r\n \"applicableTimePeriod\" : {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"dayOfWeek\" : \"dayOfWeek\",\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : \"validFor\",\r\n \"@type\" : \"@type\",\r\n \"fromToDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"capacityDemandAmount\" : \"capacityDemandAmount\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourcePool\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"relatedParty\" : \"relatedParty\",\r\n \"resourceCollection\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n } ]\r\n }\r\n }\r\n } ],\r\n \"productOfferingRef\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"bundledProductOffering\" : [ \"{}\", \"{}\" ],\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"description\" : \"description\",\r\n \"requestedPeriod\" : {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : \"validFor\",\r\n \"@type\" : \"@type\",\r\n \"fromToDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"daysOfWeek\" : \"daysOfWeek\"\r\n },\r\n \"relatedParty\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"channelRef\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"valid_for\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}", Reservation.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ReservationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a 'Reservation' by Id", operationId = "retrieveReservation", description = "" , tags={ "reservation", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Ok" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/reservation/{id}", + produces = { "application/json" }, + method = RequestMethod.GET) + default ResponseEntity< Reservation> retrieveReservation(Principal principal,@Parameter(description = "Identifier of the Reservation",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"reservationState\" : \"reservationState\",\r\n \"@type\" : \"@type\",\r\n \"reservationItem\" : [ {\r\n \"quantity\" : 0,\r\n \"@baseType\" : \"@baseType\",\r\n \"appliedCapacityAmount\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n } ],\r\n \"@type\" : \"{}\",\r\n \"appliedDemandAmount\" : \"appliedDemandAmount\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"subReservationState\" : \"subReservationState\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourceCapacity\" : {\r\n \"applicableTimePeriod\" : {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"dayOfWeek\" : \"dayOfWeek\",\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : \"validFor\",\r\n \"@type\" : \"@type\",\r\n \"fromToDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"capacityDemandAmount\" : \"capacityDemandAmount\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourcePool\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"relatedParty\" : \"relatedParty\",\r\n \"resourceCollection\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n } ]\r\n }\r\n }\r\n }, {\r\n \"quantity\" : 0,\r\n \"@baseType\" : \"@baseType\",\r\n \"appliedCapacityAmount\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n } ],\r\n \"@type\" : \"{}\",\r\n \"appliedDemandAmount\" : \"appliedDemandAmount\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"subReservationState\" : \"subReservationState\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourceCapacity\" : {\r\n \"applicableTimePeriod\" : {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"dayOfWeek\" : \"dayOfWeek\",\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : \"validFor\",\r\n \"@type\" : \"@type\",\r\n \"fromToDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"capacityDemandAmount\" : \"capacityDemandAmount\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourcePool\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"relatedParty\" : \"relatedParty\",\r\n \"resourceCollection\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n } ]\r\n }\r\n }\r\n } ],\r\n \"productOfferingRef\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"bundledProductOffering\" : [ \"{}\", \"{}\" ],\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"description\" : \"description\",\r\n \"requestedPeriod\" : {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : \"validFor\",\r\n \"@type\" : \"@type\",\r\n \"fromToDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"daysOfWeek\" : \"daysOfWeek\"\r\n },\r\n \"relatedParty\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"channelRef\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"valid_for\" : \"2000-01-23T04:56:07.000+00:00\"\r\n}, {\r\n \"reservationState\" : \"reservationState\",\r\n \"@type\" : \"@type\",\r\n \"reservationItem\" : [ {\r\n \"quantity\" : 0,\r\n \"@baseType\" : \"@baseType\",\r\n \"appliedCapacityAmount\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n } ],\r\n \"@type\" : \"{}\",\r\n \"appliedDemandAmount\" : \"appliedDemandAmount\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"subReservationState\" : \"subReservationState\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourceCapacity\" : {\r\n \"applicableTimePeriod\" : {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"dayOfWeek\" : \"dayOfWeek\",\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : \"validFor\",\r\n \"@type\" : \"@type\",\r\n \"fromToDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"capacityDemandAmount\" : \"capacityDemandAmount\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourcePool\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"relatedParty\" : \"relatedParty\",\r\n \"resourceCollection\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n } ]\r\n }\r\n }\r\n }, {\r\n \"quantity\" : 0,\r\n \"@baseType\" : \"@baseType\",\r\n \"appliedCapacityAmount\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"resource\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"resourceRelationship\" : [ \"{}\", \"{}\" ],\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"state\" : \"state\",\r\n \"place\" : [ null, null ],\r\n \"type\" : \"type\",\r\n \"relatedParty\" : [ null, null ],\r\n \"characteristic\" : [ \"{}\", \"{}\" ]\r\n } ],\r\n \"@type\" : \"{}\",\r\n \"appliedDemandAmount\" : \"appliedDemandAmount\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"subReservationState\" : \"subReservationState\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourceCapacity\" : {\r\n \"applicableTimePeriod\" : {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"dayOfWeek\" : \"dayOfWeek\",\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : \"validFor\",\r\n \"@type\" : \"@type\",\r\n \"fromToDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"capacityDemandAmount\" : \"capacityDemandAmount\",\r\n \"place\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"resourcePool\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"relatedParty\" : \"relatedParty\",\r\n \"resourceCollection\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n } ]\r\n }\r\n }\r\n } ],\r\n \"productOfferingRef\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"bundledProductOffering\" : [ \"{}\", \"{}\" ],\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"description\" : \"description\",\r\n \"requestedPeriod\" : {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"@baseType\" : \"@baseType\",\r\n \"validFor\" : \"validFor\",\r\n \"@type\" : \"@type\",\r\n \"fromToDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"daysOfWeek\" : \"daysOfWeek\"\r\n },\r\n \"relatedParty\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"channelRef\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\"\r\n },\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"valid_for\" : \"2000-01-23T04:56:07.000+00:00\"\r\n} ]", Reservation.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ReservationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + + @Operation(summary = "Deletes a 'Reservation' by Id", operationId = "deleteReservation", description = "", tags = { + "resourcePool", }) + @ApiResponses(value = { @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/reservation/{id}", produces = { "application/json" }, method = RequestMethod.DELETE) + default ResponseEntity deleteReservation( + Principal principal, + @Parameter(description = "Identifier of the Reservation", required = true) @PathVariable("id") String id) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default ReservationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/api/ReservationApiController.java b/src/main/java/org/etsi/osl/tmf/rpm685/api/ReservationApiController.java new file mode 100644 index 0000000..88473bf --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/api/ReservationApiController.java @@ -0,0 +1,126 @@ +package org.etsi.osl.tmf.rpm685.api; + +import java.security.Principal; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rpm685.model.Reservation; +import org.etsi.osl.tmf.rpm685.model.ReservationCreate; +import org.etsi.osl.tmf.rpm685.model.ReservationUpdate; +import org.etsi.osl.tmf.rpm685.reposervices.ResourceReservationRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +@Controller("ReservationApiController685") +@RequestMapping("/resourcePoolManagement/v1/") +public class ReservationApiController implements ReservationApi { + + + private static final Logger log = LoggerFactory.getLogger(ReservationApiController.class); + + @Autowired + ResourceReservationRepoService resourceReservationRepoService; + + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ReservationApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity createReservation(Principal principal, @Valid ReservationCreate body) { + try { + if (SecurityContextHolder.getContext().getAuthentication() != null) { + + + Reservation c = resourceReservationRepoService.addReservation( body ); + + return new ResponseEntity(c, HttpStatus.OK); + } else { + + return new ResponseEntity(HttpStatus.FORBIDDEN); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity> listReservation(Principal principal, @Valid String fields, + @Valid Integer offset, @Valid Integer limit) { + try { + return new ResponseEntity>( resourceReservationRepoService.findAll(), HttpStatus.OK); + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity patchReservation(Principal principal, @Valid ReservationUpdate body, String id) { + + Reservation c = resourceReservationRepoService.updateReservation(id, body ); + + // TODO Auto-generated method stub + return new ResponseEntity(c, HttpStatus.OK); + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity retrieveReservation(Principal principal, String id) { + try { + + return new ResponseEntity( resourceReservationRepoService.findByUuid(id) , HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @Override + public ResponseEntity deleteReservation(Principal principal, String id) { + try { + + return new ResponseEntity( resourceReservationRepoService.deleteByUuid(id), HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/api/ReservationApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/rpm685/api/ReservationApiRouteBuilder.java new file mode 100644 index 0000000..8289e2f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/api/ReservationApiRouteBuilder.java @@ -0,0 +1,59 @@ +package org.etsi.osl.tmf.rpm685.api; + +import org.apache.camel.LoggingLevel; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.model.dataformat.JsonLibrary; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.rpm685.model.AvailabilityCheckCreate; +import org.etsi.osl.tmf.rpm685.model.ReservationCreate; +import org.etsi.osl.tmf.rpm685.reposervices.ResourcePoolRepoService; +import org.etsi.osl.tmf.rpm685.reposervices.ResourceReservationRepoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + + +@Configuration +//@RefreshScope +@Component +public class ReservationApiRouteBuilder extends RouteBuilder { + + private static final transient Log logger = LogFactory.getLog( ReservationApiRouteBuilder.class.getName()); + + @Autowired + ResourcePoolRepoService resourcePoolRepoService; + + @Autowired + ResourceReservationRepoService resourceReservationRepoService; + + @Value("${RESERVATION_CREATE}") + private String RESERVATION_CREATE = ""; + + @Value("${RESERVATION_AVAILABILITY_CHECK}") + private String RESERVATION_AVAILABILITY_CHECK = ""; + + + @Override + public void configure() throws Exception { + + from( RESERVATION_CREATE ) + .log(LoggingLevel.INFO, log, RESERVATION_CREATE + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, ReservationCreate.class, true) + .bean( resourceReservationRepoService, "addReservation(${body})") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + + from( RESERVATION_AVAILABILITY_CHECK ) + .log(LoggingLevel.INFO, log, RESERVATION_AVAILABILITY_CHECK + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, AvailabilityCheckCreate.class, true) + .bean( resourcePoolRepoService, "availabilityCheck(${body} )") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/api/ResourcePoolApi.java b/src/main/java/org/etsi/osl/tmf/rpm685/api/ResourcePoolApi.java new file mode 100644 index 0000000..1ba8537 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/api/ResourcePoolApi.java @@ -0,0 +1,181 @@ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.rpm685.api; + +import java.io.IOException; +import java.security.Principal; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rpm685.model.ResourcePool; +import org.etsi.osl.tmf.rpm685.model.ResourcePoolCreate; +import org.etsi.osl.tmf.rpm685.model.ResourcePoolUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +@Tag(name = "resourcePool", description = "the resourcePool API") +public interface ResourcePoolApi { + + Logger log = LoggerFactory.getLogger(ResourcePoolApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a 'ResourcePool'", operationId = "createResourcePool", description = "" , tags = { + "resourcePool", }) + @ApiResponses(value = { @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourcePool", produces = { "application/json" }, consumes = { + "application/json" }, method = RequestMethod.POST) + default ResponseEntity createResourcePool( + Principal principal, + @Parameter(description = "The Resource Pool to be created", required = true) @Valid @RequestBody ResourcePoolCreate body) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue( + "{\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"relatedParty\" : \"relatedParty\",\r\n \"resourceCollection\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n } ]\r\n}", + ResourcePool.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default ResourcePoolApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "Deletes a 'ResourcePool' by Id", operationId = "deleteResourcePool", description = "", tags = { + "resourcePool", }) + @ApiResponses(value = { @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourcePool/{id}", produces = { "application/json" }, method = RequestMethod.DELETE) + default ResponseEntity deleteResourcePool( + Principal principal, + @Parameter(description = "Identifier of the Resource Pool", required = true) @PathVariable("id") String id) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default ResourcePoolApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "Updates partially a 'ResourcePool' by Id", operationId = "patchResourcePool", description = "" , tags = { + "resourcePool", }) + @ApiResponses(value = { @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourcePool/{id}", produces = { "application/json" }, consumes = { + "application/json" }, method = RequestMethod.PATCH) + default ResponseEntity patchResourcePool( + Principal principal, + @Parameter(description = "The Resource Pool to be updated", required = true) @Valid @RequestBody ResourcePoolUpdate body, + @Parameter(description = "Identifier of the Resource Pool", required = true) @PathVariable("id") String id) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue( + "{\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"href\" : \"href\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"@schemaLocation\",\r\n \"relatedParty\" : \"relatedParty\",\r\n \"resourceCollection\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"name\" : \"name\",\r\n \"href\" : \"href\",\r\n \"objectId\" : \"objectId\"\r\n } ]\r\n}", + ResourcePool.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default ResourcePoolApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "List or find ResourcePool objects", operationId = "listResourcePool", description = "This operation list or find ResourcePool entities" , tags = { + "resourcePool", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourcePool", produces = { + "application/json;charset=utf-8" }, method = RequestMethod.GET) + default ResponseEntity> listResourcePool(Principal principal, + @Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "Retrieves a ResourcePool by ID", operationId = "retrieveResourcePool", description = "This operation retrieves a ResourcePool entity. Attribute selection is enabled for all first level attributes." , tags = { + "resourcePool", }) + @ApiResponses(value = { @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/resourcePool/{id}", produces = { + "application/json;charset=utf-8" }, method = RequestMethod.GET) + default ResponseEntity retrieveResourcePool(Principal principal, + @Parameter(description = "Identifier of the ResourcePool", required = true) @PathVariable("id") String id, + @Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/api/ResourcePoolApiController.java b/src/main/java/org/etsi/osl/tmf/rpm685/api/ResourcePoolApiController.java new file mode 100644 index 0000000..cf60157 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/api/ResourcePoolApiController.java @@ -0,0 +1,133 @@ +package org.etsi.osl.tmf.rpm685.api; + +import java.security.Principal; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.rpm685.model.ResourcePool; +import org.etsi.osl.tmf.rpm685.model.ResourcePoolCreate; +import org.etsi.osl.tmf.rpm685.model.ResourcePoolUpdate; +import org.etsi.osl.tmf.rpm685.reposervices.ResourcePoolRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +@Controller("ResourcePoolApiController685") +@RequestMapping("/resourcePoolManagement/v1/") +public class ResourcePoolApiController implements ResourcePoolApi { + + private static final Logger log = LoggerFactory.getLogger(ResourcePoolApiController.class); + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + + @Autowired + ResourcePoolRepoService resourcePoolRepoService; + + @org.springframework.beans.factory.annotation.Autowired + public ResourcePoolApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity createResourcePool(Principal principal, @Valid ResourcePoolCreate body) { + try { + if (SecurityContextHolder.getContext().getAuthentication() != null) { + + + ResourcePool c = resourcePoolRepoService.addResourcePool( body ); + + return new ResponseEntity(c, HttpStatus.OK); + } else { + + return new ResponseEntity(HttpStatus.FORBIDDEN); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity deleteResourcePool( + Principal principal,String id) { + + + try { + + return new ResponseEntity( resourcePoolRepoService.deleteByUuid(id), HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + + + } + + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity patchResourcePool( + Principal principal,@Valid ResourcePoolUpdate body, String id) { + + ResourcePool c = resourcePoolRepoService.updateResourcePool(id, body ); + + // TODO Auto-generated method stub + return new ResponseEntity(c, HttpStatus.OK); + } + + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity retrieveResourcePool(Principal principal, String id, @Valid String fields) { + try { + + return new ResponseEntity( resourcePoolRepoService.findByUuid(id) , HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity> listResourcePool(Principal principal, @Valid String fields, + @Valid Integer offset, @Valid Integer limit) { + try { + return new ResponseEntity>(resourcePoolRepoService.findAll(), HttpStatus.OK); + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/ApplicableTimePeriod.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/ApplicableTimePeriod.java new file mode 100644 index 0000000..7a3d6c4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/ApplicableTimePeriod.java @@ -0,0 +1,192 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; + +/** + * The period of time for which Capacity or CapacityDemand applies. + */ +@Schema(description = "The period of time for which Capacity or CapacityDemand applies.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +@Entity(name = "ApplcbleTPer") +public class ApplicableTimePeriod extends BaseRootEntity { + + @JsonProperty("dayOfWeek") + private String dayOfWeek = null; + + private OffsetDateTime fromDateTime = null; + + private OffsetDateTime endDateTime = null; + + @JsonProperty("rangeInterval") + private String rangeInterval = null; + + public ApplicableTimePeriod dayOfWeek(String dayOfWeek) { + this.dayOfWeek = dayOfWeek; + return this; + } + + /** + * A day or days representing when the schedule is applicable. For example 2, 3 + * represent Monday and Tuesday. + * + * @return dayOfWeek + **/ + @Schema(description = "A day or days representing when the schedule is applicable. For example 2, 3 represent Monday and Tuesday.") + + public String getDayOfWeek() { + return dayOfWeek; + } + + public void setDayOfWeek(String dayOfWeek) { + this.dayOfWeek = dayOfWeek; + } + + public ApplicableTimePeriod fromDateTime(OffsetDateTime fromDateTime) { + this.fromDateTime = fromDateTime; + return this; + } + + @JsonProperty("fromDateTime") + public String getfromDateTimeString() { + + if (this.fromDateTime == null) { + return null; + } + return this.fromDateTime.toString(); + } + + /** + * The period of time for which the schedule is applicable. Instance values are + * mutually exclusive with daysOfWeek values. + * + * @return fromToDateTime + **/ + @Schema(description = "The period of time for which the schedule is applicable. Instance values are mutually exclusive with daysOfWeek values.") + + @Valid + public OffsetDateTime getFromDateTime() { + return fromDateTime; + } + + public void setFromDateTime(OffsetDateTime fromDateTime) { + this.fromDateTime = fromDateTime; + } + + public void setFromDateTime(String fromDateTime) { + this.fromDateTime = OffsetDateTime.parse( fromDateTime ); + } + + public ApplicableTimePeriod endDateTime(OffsetDateTime endDateTime) { + this.endDateTime = endDateTime; + return this; + } + + @JsonProperty("endDateTime") + public String getendDateTimeString() { + + if (this.endDateTime == null) { + return null; + } + return this.endDateTime.toString(); + } + + /** + * The period of time for which the schedule is applicable. Instance values are + * mutually exclusive with daysOfWeek values. + * + * @return fromToDateTime + **/ + @Schema(description = "The period of time for which the schedule is applicable. Instance values are mutually exclusive with daysOfWeek values.") + + @Valid + public OffsetDateTime getEndDateTime() { + return endDateTime; + } + + public void setEndDateTime(OffsetDateTime endDateTime) { + this.endDateTime = endDateTime; + } + + public void setEndDateTime(String endDateTime) { + this.endDateTime = OffsetDateTime.parse( endDateTime ); + } + + public ApplicableTimePeriod rangeInterval(String rangeInterval) { + this.rangeInterval = rangeInterval; + return this; + } + + /** + * An indicator that specifies the inclusion or exclusion of the from and to + * DateTime attributes. Possible values are \"open\", \"closed\", + * \"closedBottom\" and \"closedTop\". + * + * @return rangeInterval + **/ + @Schema(description = "An indicator that specifies the inclusion or exclusion of the from and to DateTime attributes. Possible values are \"open\", \"closed\", \"closedBottom\" and \"closedTop\".") + + public String getRangeInterval() { + return rangeInterval; + } + + public void setRangeInterval(String rangeInterval) { + this.rangeInterval = rangeInterval; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ApplicableTimePeriod applicableTimePeriod = (ApplicableTimePeriod) o; + return Objects.equals(this.getBaseType(), applicableTimePeriod.getBaseType()) + && Objects.equals(this.getSchemaLocation(), applicableTimePeriod.getSchemaLocation()) + && Objects.equals(this.getType(), applicableTimePeriod.getType()) + && Objects.equals(this.dayOfWeek, applicableTimePeriod.dayOfWeek) + && Objects.equals(this.fromDateTime, applicableTimePeriod.fromDateTime) + && Objects.equals(this.rangeInterval, applicableTimePeriod.rangeInterval); + } + + @Override + public int hashCode() { + return Objects.hash(getBaseType(), getSchemaLocation(), getType(), dayOfWeek, fromDateTime, rangeInterval); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ApplicableTimePeriod {\n"); + + sb.append(" _atBaseType: ").append(toIndentedString(getBaseType())).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(getSchemaLocation())).append("\n"); + sb.append(" _atType: ").append(toIndentedString(getType())).append("\n"); + sb.append(" dayOfWeek: ").append(toIndentedString(dayOfWeek)).append("\n"); + sb.append(" fromToDateTime: ").append(toIndentedString( fromDateTime )).append("\n"); + sb.append(" rangeInterval: ").append(toIndentedString(rangeInterval)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/AppliedCapacityAmount.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/AppliedCapacityAmount.java new file mode 100644 index 0000000..5d8c750 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/AppliedCapacityAmount.java @@ -0,0 +1,155 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.service.ResourceRef; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; + +/** + * The amount of CapcityDemand applied to a CapacityAmount. + */ +@Schema(description = "The amount of CapcityDemand applied to a CapacityAmount.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +@Entity(name = "ApplCapacityAmnt") +public class AppliedCapacityAmount extends BaseRootEntity { + + @JsonProperty("appliedDemandAmount") + private Integer appliedDemandAmount = null; + + @JsonProperty("resourceCapacityDemand") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "appcapcityamount_resCapctDemnduuid", referencedColumnName = "uuid") + private ResourceCapacityDemand resourceCapacityDemand = null; + + @JsonProperty("resources") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set resources = new HashSet<>(); + + public AppliedCapacityAmount appliedDemandAmount(Integer appliedDemandAmount) { + this.appliedDemandAmount = appliedDemandAmount; + return this; + } + + /** + * An amount of demand applied to a CapacityAmount. Note that this is a + * composite attribute defined by CapacityAmount. + * + * @return appliedDemandAmount + **/ + @Schema(description = "An amount of demand applied to a CapacityAmount. Note that this is a composite attribute defined by CapacityAmount.") + + public Integer getAppliedDemandAmount() { + return appliedDemandAmount; + } + + public void setAppliedDemandAmount(Integer appliedDemandAmount) { + this.appliedDemandAmount = appliedDemandAmount; + } + + public AppliedCapacityAmount resourceCapacityDemand(ResourceCapacityDemand resourceCapacityDemand) { + this.resourceCapacityDemand = resourceCapacityDemand; + return this; + } + + /** + * Get resourceCapacityDemand + * + * @return resourceCapacityDemand + **/ + @Schema(description = "") + + @Valid + public ResourceCapacityDemand getResourceCapacityDemand() { + return resourceCapacityDemand; + } + + public void setResourceCapacityDemand(ResourceCapacityDemand resourceCapacityDemand) { + this.resourceCapacityDemand = resourceCapacityDemand; + } + + public AppliedCapacityAmount resource(Set resource) { + this.resources = resource; + return this; + } + + public AppliedCapacityAmount addResourceItem(ResourceRef resourceItem) { + this.resources.add(resourceItem); + return this; + } + + /** + * Get resource + * + * @return resource + **/ + @Schema(description = "") + @Valid + public Set getResource() { + return resources; + } + + public void setResource(Set resource) { + this.resources = resource; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AppliedCapacityAmount appliedCapacityAmount = (AppliedCapacityAmount) o; + return Objects.equals(this.baseType, appliedCapacityAmount.baseType) + && Objects.equals(this.getSchemaLocation(), appliedCapacityAmount.getSchemaLocation()) + && Objects.equals(this.getType(), appliedCapacityAmount.getType()) + && Objects.equals(this.appliedDemandAmount, appliedCapacityAmount.appliedDemandAmount) + && Objects.equals(this.resourceCapacityDemand, appliedCapacityAmount.resourceCapacityDemand) + && Objects.equals(this.resources, appliedCapacityAmount.resources); + } + +// @Override +// public int hashCode() { +// return Objects.hash(uuid, baseType(null), getSchemaLocation(), getType()); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AppliedCapacityAmount {\n"); + + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(getSchemaLocation())).append("\n"); + sb.append(" _atType: ").append(toIndentedString(getType())).append("\n"); + sb.append(" appliedDemandAmount: ").append(toIndentedString(appliedDemandAmount)).append("\n"); + sb.append(" resourceCapacityDemand: ").append(toIndentedString(resourceCapacityDemand)).append("\n"); + sb.append(" resource: ").append(toIndentedString(resources)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/AvailabilityCheck.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/AvailabilityCheck.java new file mode 100644 index 0000000..bb2f5cb --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/AvailabilityCheck.java @@ -0,0 +1,216 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.service.ResourceRef; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * the availabilityCheck task resource for resource pool management + */ +@Schema(description = "the availabilityCheck task resource for resource pool management") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class AvailabilityCheck { + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("@type") + private String _atType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("resourceCapacityDemand") + private ResourceCapacityDemand resourceCapacityDemand = null; + + @JsonProperty("availableResources") + private List availableResources = null; + + + + + /** + * @return the availableResources + */ + public List getAvailableResources() { + return availableResources; + } + + /** + * @param availableResources the availableResources to set + */ + public void setAvailableResources(List availableResources) { + this.availableResources = availableResources; + } + + /** + * @return the resourceCapacityDemand + */ + public ResourceCapacityDemand getResourceCapacityDemand() { + return resourceCapacityDemand; + } + + /** + * @param resourceCapacityDemand the resourceCapacityDemand to set + */ + public void setResourceCapacityDemand(ResourceCapacityDemand resourceCapacityDemand) { + this.resourceCapacityDemand = resourceCapacityDemand; + } + + public AvailabilityCheck href(String href) { + this.href = href; + return this; + } + + /** + * A string. Hyperlink to access the availabilityCheck task for resource pool + * Management + * + * @return href + **/ + @Schema(description = "A string. Hyperlink to access the availabilityCheck task for resource pool Management") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public AvailabilityCheck id(String id) { + this.id = id; + return this; + } + + /** + * A string. Identifier of an instance of the availabilityCheck task for + * resource pool Management + * + * @return id + **/ + @Schema(description = "A string. Identifier of an instance of the availabilityCheck task for resource pool Management") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AvailabilityCheck _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * + * @return _atType + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + public AvailabilityCheck _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * + * @return _atSchemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public AvailabilityCheck _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * + * @return _atBaseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AvailabilityCheck availabilityCheck = (AvailabilityCheck) o; + return Objects.equals(this.href, availabilityCheck.href) && Objects.equals(this.id, availabilityCheck.id) + && Objects.equals(this._atType, availabilityCheck._atType) + && Objects.equals(this._atSchemaLocation, availabilityCheck._atSchemaLocation) + && Objects.equals(this._atBaseType, availabilityCheck._atBaseType); + } + + @Override + public int hashCode() { + return Objects.hash(href, id, _atType, _atSchemaLocation, _atBaseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AvailabilityCheck {\n"); + + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/AvailabilityCheckCreate.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/AvailabilityCheckCreate.java new file mode 100644 index 0000000..3c7c766 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/AvailabilityCheckCreate.java @@ -0,0 +1,146 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * the availabilityCheck task resource for resource pool management Skipped + * properties: id,href + */ +@Schema(description = "the availabilityCheck task resource for resource pool management Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class AvailabilityCheckCreate { + @JsonProperty("@type") + private String _atType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("resourceCapacityDemand") + private ResourceCapacityDemand resourceCapacityDemand = null; + + /** + * @return the resourceCapacityDemand + */ + public ResourceCapacityDemand getResourceCapacityDemand() { + return resourceCapacityDemand; + } + + /** + * @param resourceCapacityDemand the resourceCapacityDemand to set + */ + public void setResourceCapacityDemand(ResourceCapacityDemand resourceCapacityDemand) { + this.resourceCapacityDemand = resourceCapacityDemand; + } + + public AvailabilityCheckCreate _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * + * @return _atType + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + public AvailabilityCheckCreate _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * + * @return _atSchemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public AvailabilityCheckCreate _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * + * @return _atBaseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AvailabilityCheckCreate availabilityCheckCreate = (AvailabilityCheckCreate) o; + return Objects.equals(this._atType, availabilityCheckCreate._atType) + && Objects.equals(this._atSchemaLocation, availabilityCheckCreate._atSchemaLocation) + && Objects.equals(this._atBaseType, availabilityCheckCreate._atBaseType); + } + + @Override + public int hashCode() { + return Objects.hash(_atType, _atSchemaLocation, _atBaseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AvailabilityCheckCreate {\n"); + + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/Capacity.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/Capacity.java new file mode 100644 index 0000000..c12d751 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/Capacity.java @@ -0,0 +1,59 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.util.HashSet; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.service.ResourceRef; +import org.etsi.osl.tmf.pcm620.model.PlaceRef; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +@Entity(name = "Capacity") +public class Capacity extends BaseRootEntity { + + @JsonProperty("capacityAmount") + private Integer capacityAmount; + + @JsonProperty("relatedParty") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "capacity_relParuuid", referencedColumnName = "uuid") + private RelatedParty relatedParty; + + + @JsonProperty("place") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "capacity_placeuuid", referencedColumnName = "uuid") + private PlaceRef place; + +// @JsonProperty("applicableTimePeriod") +// private ApplicableTimePeriod applicableTimePeriod; + + @JsonProperty("resources") + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set resources = new HashSet<>(); + + @JsonProperty("appliedCapacityAmount") + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set appliedCapacityAmount = new HashSet<>(); + + + public Capacity addResourceRefItem(ResourceRef aResourceRef) { + this.resources.add(aResourceRef); + return this; + } + + public Capacity addAppliedCapacityAmountItem(AppliedCapacityAmount anAppliedCapacityAmount) { + this.appliedCapacityAmount.add(anAppliedCapacityAmount); + return this; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/ChannelRef.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/ChannelRef.java new file mode 100644 index 0000000..6884744 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/ChannelRef.java @@ -0,0 +1,150 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Channel reference. The channel defines the channel for selling product offerings. + */ +@Schema(description = "Channel reference. The channel defines the channel for selling product offerings.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class ChannelRef { + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public ChannelRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the channel + * @return href + **/ + @Schema(description = "Reference of the channel") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ChannelRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the channel + * @return id + **/ + @Schema(description = "Unique identifier of the channel") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ChannelRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the channel + * @return name + **/ + @Schema(description = "Name of the channel") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ChannelRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ChannelRef channelRef = (ChannelRef) o; + return Objects.equals(this.href, channelRef.href) && + Objects.equals(this.id, channelRef.id) && + Objects.equals(this.name, channelRef.name) && + Objects.equals(this._atReferredType, channelRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(href, id, name, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ChannelRef {\n"); + + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/Error.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/Error.java new file mode 100644 index 0000000..05ef1ed --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/Error.java @@ -0,0 +1,224 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Error + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class Error { + @JsonProperty("code") + private Integer code = null; + + @JsonProperty("reason") + private Integer reason = null; + + @JsonProperty("message") + private String message = null; + + @JsonProperty("status") + private Integer status = null; + + @JsonProperty("referenceError") + private String referenceError = null; + + @JsonProperty("@type") + private String _atType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + public Error code(Integer code) { + this.code = code; + return this; + } + + /** + * Application related code. + * @return code + **/ + @Schema(description = "Application related code.") + @NotNull + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public Error reason(Integer reason) { + this.reason = reason; + return this; + } + + /** + * Text that explains the reason for error. + * @return reason + **/ + @Schema(description = "Text that explains the reason for error.") + @NotNull + + public Integer getReason() { + return reason; + } + + public void setReason(Integer reason) { + this.reason = reason; + } + + public Error message(String message) { + this.message = message; + return this; + } + + /** + * (optional) Text that provide more details and corrective actions related to the error. + * @return message + **/ + @Schema(description = "(optional) Text that provide more details and corrective actions related to the error.") + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Error status(Integer status) { + this.status = status; + return this; + } + + /** + * (optional) http error code extension like 400-2 + * @return status + **/ + @Schema(description = "(optional) http error code extension like 400-2") + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Error referenceError(String referenceError) { + this.referenceError = referenceError; + return this; + } + + /** + * (optional) A URL to online documentation that provides more information about the error. + * @return referenceError + **/ + @Schema(description = "(optional) A URL to online documentation that provides more information about the error.") + + public String getReferenceError() { + return referenceError; + } + + public void setReferenceError(String referenceError) { + this.referenceError = referenceError; + } + + public Error _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * (optional) The class type of a REST resource. + * @return _atType + **/ + @Schema(description = "(optional) The class type of a REST resource.") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + public Error _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * (optional) A link to the schema describing a REST resource. + * @return _atSchemaLocation + **/ + @Schema(description = "(optional) A link to the schema describing a REST resource.") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Error error = (Error) o; + return Objects.equals(this.code, error.code) && + Objects.equals(this.reason, error.reason) && + Objects.equals(this.message, error.message) && + Objects.equals(this.status, error.status) && + Objects.equals(this.referenceError, error.referenceError) && + Objects.equals(this._atType, error._atType) && + Objects.equals(this._atSchemaLocation, error._atSchemaLocation); + } + + @Override + public int hashCode() { + return Objects.hash(code, reason, message, status, referenceError, _atType, _atSchemaLocation); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Error {\n"); + + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" referenceError: ").append(toIndentedString(referenceError)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/EventSubscription.java new file mode 100644 index 0000000..2ade4c2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/EventSubscription.java @@ -0,0 +1,128 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * EventSubscription + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class EventSubscription { + @JsonProperty("id") + private String id = null; + + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscription id(String id) { + this.id = id; + return this; + } + + /** + * Id of the listener + * @return id + **/ + @Schema(description = "Id of the listener") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EventSubscription callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscription query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscription eventSubscription = (EventSubscription) o; + return Objects.equals(this.id, eventSubscription.id) && + Objects.equals(this.callback, eventSubscription.callback) && + Objects.equals(this.query, eventSubscription.query); + } + + @Override + public int hashCode() { + return Objects.hash(id, callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscription {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/EventSubscriptionInput.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/EventSubscriptionInput.java new file mode 100644 index 0000000..4179e48 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/EventSubscriptionInput.java @@ -0,0 +1,103 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * EventSubscriptionInput + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class EventSubscriptionInput { + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscriptionInput callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscriptionInput query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscriptionInput eventSubscriptionInput = (EventSubscriptionInput) o; + return Objects.equals(this.callback, eventSubscriptionInput.callback) && + Objects.equals(this.query, eventSubscriptionInput.query); + } + + @Override + public int hashCode() { + return Objects.hash(callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscriptionInput {\n"); + + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/Extract.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/Extract.java new file mode 100644 index 0000000..ff896c9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/Extract.java @@ -0,0 +1,216 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * the extract task resource for resource pool management + */ +@Schema(description = "the extract task resource for resource pool management") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class Extract { + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("@type") + private String _atType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("capacity") + private Capacity capacity = null; + + @JsonProperty("resourcePool") + private ResourcePoolRef resourcePool = null; + + + + + /** + * @return the capacity + */ + public Capacity getCapacity() { + return capacity; + } + + /** + * @param capacity the capacity to set + */ + public void setCapacity( Capacity capacity) { + this.capacity = capacity; + } + + /** + * @return the resourcePool + */ + public ResourcePoolRef getResourcePool() { + return resourcePool; + } + + /** + * @param resourcePool the resourcePool to set + */ + public void setResourcePool(ResourcePoolRef resourcePool) { + this.resourcePool = resourcePool; + } + + public Extract href(String href) { + this.href = href; + return this; + } + + /** + * A string. Hyperlink to access the availableCheck task for resource pool + * Management + * + * @return href + **/ + @Schema(description = "A string. Hyperlink to access the availableCheck task for resource pool Management") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public Extract id(String id) { + this.id = id; + return this; + } + + /** + * A string. Identifier of an instance of the extract task for resource pool + * Management + * + * @return id + **/ + @Schema(description = "A string. Identifier of an instance of the extract task for resource pool Management") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Extract _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * + * @return _atType + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + public Extract _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * + * @return _atSchemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public Extract _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * + * @return _atBaseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Extract extract = (Extract) o; + return Objects.equals(this.href, extract.href) && Objects.equals(this.id, extract.id) + && Objects.equals(this._atType, extract._atType) + && Objects.equals(this._atSchemaLocation, extract._atSchemaLocation) + && Objects.equals(this._atBaseType, extract._atBaseType); + } + + @Override + public int hashCode() { + return Objects.hash(href, id, _atType, _atSchemaLocation, _atBaseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Extract {\n"); + + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/ExtractCreate.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/ExtractCreate.java new file mode 100644 index 0000000..a2e5a09 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/ExtractCreate.java @@ -0,0 +1,163 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * the extract task resource for resource pool management Skipped properties: + * id,href + */ +@Schema(description = "the extract task resource for resource pool management Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class ExtractCreate { + @JsonProperty("@type") + private String _atType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("capacity") + private Capacity capacity = null; + + @JsonProperty("resourcePool") + private ResourcePoolRef resourcePool = null; + + /** + * @return the capacity + */ + public Capacity getCapacity() { + return capacity; + } + + /** + * @param capacity the capacity to set + */ + public void setCapacity( Capacity capacity) { + this.capacity = capacity; + } + + /** + * @return the resourcePool + */ + public ResourcePoolRef getResourcePool() { + return resourcePool; + } + + /** + * @param resourcePool the resourcePool to set + */ + public void setResourcePool(ResourcePoolRef resourcePool) { + this.resourcePool = resourcePool; + } + + public ExtractCreate _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * + * @return _atType + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + public ExtractCreate _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * + * @return _atSchemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public ExtractCreate _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * + * @return _atBaseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExtractCreate extractCreate = (ExtractCreate) o; + return Objects.equals(this._atType, extractCreate._atType) + && Objects.equals(this._atSchemaLocation, extractCreate._atSchemaLocation) + && Objects.equals(this._atBaseType, extractCreate._atBaseType); + } + + @Override + public int hashCode() { + return Objects.hash(_atType, _atSchemaLocation, _atBaseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ExtractCreate {\n"); + + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/ProductOfferingRef.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/ProductOfferingRef.java new file mode 100644 index 0000000..a0a6750 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/ProductOfferingRef.java @@ -0,0 +1,183 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information. + */ +@Schema(description = "ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class ProductOfferingRef { + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("name") + private String name = null; + +// @JsonProperty("bundledProductOffering") +// @Valid +// private List bundledProductOffering = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public ProductOfferingRef href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the product offering + * @return href + **/ + @Schema(description = "Reference of the product offering") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ProductOfferingRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the product offering + * @return id + **/ + @Schema(description = "Unique identifier of the product offering") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ProductOfferingRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the product offering + * @return name + **/ + @Schema(description = "Name of the product offering") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +// public ProductOfferingRef bundledProductOffering(List bundledProductOffering) { +// this.bundledProductOffering = bundledProductOffering; +// return this; +// } +// +// public ProductOfferingRef addBundledProductOfferingItem(BundledProductOfferingRef bundledProductOfferingItem) { +// if (this.bundledProductOffering == null) { +// this.bundledProductOffering = new ArrayList<>(); +// } +// this.bundledProductOffering.add(bundledProductOfferingItem); +// return this; +// } +// +// /** +// * Get bundledProductOffering +// * @return bundledProductOffering +// **/ +// @Schema(description = "") +// @Valid +// public List getBundledProductOffering() { +// return bundledProductOffering; +// } +// +// public void setBundledProductOffering(List bundledProductOffering) { +// this.bundledProductOffering = bundledProductOffering; +// } +// +// public ProductOfferingRef _atReferredType(String _atReferredType) { +// this._atReferredType = _atReferredType; +// return this; +// } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProductOfferingRef productOfferingRef = (ProductOfferingRef) o; + return Objects.equals(this.href, productOfferingRef.href) && + Objects.equals(this.id, productOfferingRef.id) && + Objects.equals(this.name, productOfferingRef.name) && +// Objects.equals(this.bundledProductOffering, productOfferingRef.bundledProductOffering) && + Objects.equals(this._atReferredType, productOfferingRef._atReferredType); + } + + @Override + public int hashCode() { + return Objects.hash(href, id, name, _atReferredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProductOfferingRef {\n"); + + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); +// sb.append(" bundledProductOffering: ").append(toIndentedString(bundledProductOffering)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/Push.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/Push.java new file mode 100644 index 0000000..eecff89 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/Push.java @@ -0,0 +1,215 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * the push task resource for resource pool management + */ +@Schema(description = "the push task resource for resource pool management") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class Push { + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("@type") + private String _atType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("capacity") + private Capacity capacity = null; + + @JsonProperty("resourcePool") + private ResourcePoolRef resourcePool = null; + + + + + + /** + * @return the capacity + */ + public Capacity getCapacity() { + return capacity; + } + + /** + * @param capacity the capacity to set + */ + public void setCapacity( Capacity capacity) { + this.capacity = capacity; + } + + /** + * @return the resourcePool + */ + public ResourcePoolRef getResourcePool() { + return resourcePool; + } + + /** + * @param resourcePool the resourcePool to set + */ + public void setResourcePool(ResourcePoolRef resourcePool) { + this.resourcePool = resourcePool; + } + + public Push href(String href) { + this.href = href; + return this; + } + + /** + * A string. Hyperlink to access the push task for resource pool Management + * + * @return href + **/ + @Schema(description = "A string. Hyperlink to access the push task for resource pool Management") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public Push id(String id) { + this.id = id; + return this; + } + + /** + * A string. Identifier of an instance of the push task resource + * + * @return id + **/ + @Schema(description = "A string. Identifier of an instance of the push task resource") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Push _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * + * @return _atType + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + public Push _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * + * @return _atSchemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public Push _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * + * @return _atBaseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Push push = (Push) o; + return Objects.equals(this.href, push.href) && Objects.equals(this.id, push.id) + && Objects.equals(this._atType, push._atType) + && Objects.equals(this._atSchemaLocation, push._atSchemaLocation) + && Objects.equals(this._atBaseType, push._atBaseType); + } + + @Override + public int hashCode() { + return Objects.hash(href, id, _atType, _atSchemaLocation, _atBaseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Push {\n"); + + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/PushCreate.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/PushCreate.java new file mode 100644 index 0000000..5db481d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/PushCreate.java @@ -0,0 +1,166 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * the push task resource for resource pool management Skipped properties: + * id,href + */ +@Schema(description = "the push task resource for resource pool management Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class PushCreate { + @JsonProperty("@type") + private String _atType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("capacity") + private Capacity capacity = null; + + @JsonProperty("resourcePool") + private ResourcePoolRef resourcePool = null; + + + + + /** + * @return the capacity + */ + public Capacity getCapacity() { + return capacity; + } + + /** + * @param capacity the capacity to set + */ + public void setCapacity( Capacity capacity) { + this.capacity = capacity; + } + + /** + * @return the resourcePool + */ + public ResourcePoolRef getResourcePool() { + return resourcePool; + } + + /** + * @param resourcePool the resourcePool to set + */ + public void setResourcePool(ResourcePoolRef resourcePool) { + this.resourcePool = resourcePool; + } + + public PushCreate _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * + * @return _atType + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + public PushCreate _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * + * @return _atSchemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public PushCreate _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * + * @return _atBaseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PushCreate pushCreate = (PushCreate) o; + return Objects.equals(this._atType, pushCreate._atType) + && Objects.equals(this._atSchemaLocation, pushCreate._atSchemaLocation) + && Objects.equals(this._atBaseType, pushCreate._atBaseType); + } + + @Override + public int hashCode() { + return Objects.hash(_atType, _atSchemaLocation, _atBaseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PushCreate {\n"); + + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/RequestedPeriod.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/RequestedPeriod.java new file mode 100644 index 0000000..9657d06 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/RequestedPeriod.java @@ -0,0 +1,225 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The period of time for which user requested to use the resources. The user can request on the start date without the end date. + */ +@Schema(description = "The period of time for which user requested to use the resources. The user can request on the start date without the end date.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class RequestedPeriod { + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + @JsonProperty("daysOfWeek") + private String daysOfWeek = null; + + @JsonProperty("fromToDateTime") + private OffsetDateTime fromToDateTime = null; + + @JsonProperty("rangeInterval") + private String rangeInterval = null; + + @JsonProperty("validFor") + private String validFor = null; + + public RequestedPeriod _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * A string. Generic attribute indicating the base class type of the extension class of the current object. Useful only when the class type of the current object is unknown to the implementation. + * @return _atBaseType + **/ + @Schema(description = "A string. Generic attribute indicating the base class type of the extension class of the current object. Useful only when the class type of the current object is unknown to the implementation.") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public RequestedPeriod _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A string. Generic attribute containing the link to the schema that defines the structure of the class type of the current object. + * @return _atSchemaLocation + **/ + @Schema(description = "A string. Generic attribute containing the link to the schema that defines the structure of the class type of the current object.") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public RequestedPeriod _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * A string. Generic attribute containing the name of the resource class type. + * @return _atType + **/ + @Schema(description = "A string. Generic attribute containing the name of the resource class type.") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + public RequestedPeriod daysOfWeek(String daysOfWeek) { + this.daysOfWeek = daysOfWeek; + return this; + } + + /** + * A day or days representing when the schedule is applicable. For example 2, 3 represent Monday and Tuesday. + * @return daysOfWeek + **/ + @Schema(description = "A day or days representing when the schedule is applicable. For example 2, 3 represent Monday and Tuesday.") + + public String getDaysOfWeek() { + return daysOfWeek; + } + + public void setDaysOfWeek(String daysOfWeek) { + this.daysOfWeek = daysOfWeek; + } + + public RequestedPeriod fromToDateTime(OffsetDateTime fromToDateTime) { + this.fromToDateTime = fromToDateTime; + return this; + } + + /** + * The period of time for which the schedule is applicable. Instance values are mutually exclusive with daysOfWeek values. + * @return fromToDateTime + **/ + @Schema(description = "The period of time for which the schedule is applicable. Instance values are mutually exclusive with daysOfWeek values.") + + @Valid + public OffsetDateTime getFromToDateTime() { + return fromToDateTime; + } + + public void setFromToDateTime(OffsetDateTime fromToDateTime) { + this.fromToDateTime = fromToDateTime; + } + + public RequestedPeriod rangeInterval(String rangeInterval) { + this.rangeInterval = rangeInterval; + return this; + } + + /** + * An indicator that specifies the inclusion or exclusion of the from and to DateTime attributes. Possible values are \"open\", \"closed\", \"closedBottom\" and \"closedTop\". + * @return rangeInterval + **/ + @Schema(description = "An indicator that specifies the inclusion or exclusion of the from and to DateTime attributes. Possible values are \"open\", \"closed\", \"closedBottom\" and \"closedTop\".") + + public String getRangeInterval() { + return rangeInterval; + } + + public void setRangeInterval(String rangeInterval) { + this.rangeInterval = rangeInterval; + } + + public RequestedPeriod validFor(String validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period of time during which the schedule is considered of interest to the business. + * @return validFor + **/ + @Schema(description = "The period of time during which the schedule is considered of interest to the business.") + + public String getValidFor() { + return validFor; + } + + public void setValidFor(String validFor) { + this.validFor = validFor; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RequestedPeriod requestedPeriod = (RequestedPeriod) o; + return Objects.equals(this._atBaseType, requestedPeriod._atBaseType) && + Objects.equals(this._atSchemaLocation, requestedPeriod._atSchemaLocation) && + Objects.equals(this._atType, requestedPeriod._atType) && + Objects.equals(this.daysOfWeek, requestedPeriod.daysOfWeek) && + Objects.equals(this.fromToDateTime, requestedPeriod.fromToDateTime) && + Objects.equals(this.rangeInterval, requestedPeriod.rangeInterval) && + Objects.equals(this.validFor, requestedPeriod.validFor); + } + + @Override + public int hashCode() { + return Objects.hash(_atBaseType, _atSchemaLocation, _atType, daysOfWeek, fromToDateTime, rangeInterval, validFor); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RequestedPeriod {\n"); + + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append(" daysOfWeek: ").append(toIndentedString(daysOfWeek)).append("\n"); + sb.append(" fromToDateTime: ").append(toIndentedString(fromToDateTime)).append("\n"); + sb.append(" rangeInterval: ").append(toIndentedString(rangeInterval)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/Reservation.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/Reservation.java new file mode 100644 index 0000000..18b7d5d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/Reservation.java @@ -0,0 +1,354 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.sim638.model.ServiceOrderRef; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; + +/** + * reservation api resource + */ +@Schema(description = "reservation api resource") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") + +@Entity(name = "Reservation") +public class Reservation extends BaseEntity { + + + @JsonProperty("id") + private String id = null; + + @JsonProperty("relatedParty") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "reserv_relParuuid", referencedColumnName = "uuid") + private RelatedParty relatedParty = null; + + @JsonProperty("reservationState") + private String reservationState = null; + + @JsonProperty("reservationItem") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set reservationItem = new HashSet<>(); + + + @Column(name="reqPeriodStartDate") + private OffsetDateTime requestedPeriodStartDateTime = null; + + @Column(name="reqPeriodEndDate") + private OffsetDateTime requestedPeriodEndDateTime = null; + + + + +// @JsonProperty("productOfferingRef") +// private ProductOfferingRef productOfferingRef = null; + + @JsonProperty("serviceOrderRef") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "Reserv_soRefuuid", referencedColumnName = "uuid") + private ServiceOrderRef serviceOrderRef = null; + + + + /** + * A string. Identifier of an instance of the Reservation. + * + * @return id + **/ + @Schema(description = "A string. Identifier of an instance of the Reservation.") + + public String getId() { + id = uuid; + return uuid; + } + + + + + + /** + * @return the serviceOrderRef + */ + public ServiceOrderRef getServiceOrderRef() { + return serviceOrderRef; + } + + + + + + /** + * @param serviceOrderRef the serviceOrderRef to set + */ + public void setServiceOrderRef(ServiceOrderRef serviceOrderRef) { + this.serviceOrderRef = serviceOrderRef; + } + + /** + * @param serviceOrderRef the serviceOrderRef to set + * @return + */ + public Reservation serviceOrderRef(ServiceOrderRef serviceOrderRef) { + this.serviceOrderRef = serviceOrderRef; + return this; + } + + + + /** + * End of the time period, using IETC-RFC-3339 format + * + * @return endDateTime + **/ + @Schema(description = "End of the time period, using IETC-RFC-3339 format") + @Valid + @JsonProperty("requestedPeriodEndDateTime") + public String getRequestedPeriodEndDateTimeString() { + if ( requestedPeriodEndDateTime != null) { + return requestedPeriodEndDateTime.toString(); + } + return null; + } + + public OffsetDateTime getRequestedPeriodEndDateTime() { + return requestedPeriodEndDateTime; + } + + public void setRequestedPeriodEndDateTime(OffsetDateTime endDateTime) { + this.requestedPeriodEndDateTime = endDateTime; + } + + public Reservation requestedPeriodStartDateTime(OffsetDateTime startDateTime) { + this.requestedPeriodStartDateTime = startDateTime; + return this; + } + + + public void setRequestedPeriodEndDateTime(String endDateTime) { + this.requestedPeriodEndDateTime = OffsetDateTime.parse( endDateTime ); + } + + + + + + /** + * Start of the time period, using IETC-RFC-3339 format. If you define a start, + * you must also define an end + * + * @return startDateTime + **/ + @Schema(description = "Start of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an end") + @Valid + @JsonProperty("requestedPeriodStartDateTime") + public String getRequestedPeriodStartDateTimeString() { + if ( requestedPeriodStartDateTime != null) { + return requestedPeriodStartDateTime.toString(); + } + return null; + + } + + public OffsetDateTime getRequestedPeriodStartDateTime() { + return requestedPeriodStartDateTime; + } + + + public void setRequestedPeriodStartDateTime(OffsetDateTime startDateTime) { + this.requestedPeriodStartDateTime = startDateTime; + } + + public void setRequestedPeriodStartDateTime(String startDateTime) { + if ( startDateTime!= null ) { + this.requestedPeriodStartDateTime = OffsetDateTime.parse( startDateTime ); + } + } + + + + + public Reservation relatedParty(RelatedParty relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + /** + * Get relatedParty + * + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + public RelatedParty getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(RelatedParty relatedParty) { + this.relatedParty = relatedParty; + } + + public Reservation reservationState(String reservationState) { + this.reservationState = reservationState; + return this; + } + + /** + * A string. The life cycle state of the reservation. + * + * @return reservationState + **/ + @Schema(description = "A string. The life cycle state of the reservation.") + + public String getReservationState() { + return reservationState; + } + + public void setReservationState(String reservationState) { + this.reservationState = reservationState; + } + + public Reservation reservationItem(Set reservationItem) { + this.reservationItem = reservationItem; + return this; + } + + public Reservation addReservationItemItem(ReservationItem reservationItemItem) { + if (this.reservationItem == null) { + this.reservationItem = new HashSet<>(); + } + this.reservationItem.add(reservationItemItem); + return this; + } + + /** + * Get reservationItem + * + * @return reservationItem + **/ + @Schema(description = "") + @Valid + public Set getReservationItem() { + return reservationItem; + } + + public void setReservationItem(Set reservationItem) { + this.reservationItem = reservationItem; + } + + + +// public Reservation requestedPeriod(TimePeriod requestedPeriod) { +// this.requestedPeriod = requestedPeriod; +// return this; +// } +// +// /** +// * Get requestedPeriod +// * +// * @return requestedPeriod +// **/ +// @Schema(description = "") +// +// @Valid +// public TimePeriod getRequestedPeriod() { +// return requestedPeriod; +// } +// +// public void setRequestedPeriod(TimePeriod requestedPeriod) { +// this.requestedPeriod = requestedPeriod; +// } + +// public Reservation productOfferingRef(ProductOfferingRef productOfferingRef) { +// this.productOfferingRef = productOfferingRef; +// return this; +// } +// +// /** +// * Get productOfferingRef +// * +// * @return productOfferingRef +// **/ +// @Schema(description = "") +// +// @Valid +// public ProductOfferingRef getProductOfferingRef() { +// return productOfferingRef; +// } +// +// public void setProductOfferingRef(ProductOfferingRef productOfferingRef) { +// this.productOfferingRef = productOfferingRef; +// } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Reservation reservation = (Reservation) o; + return Objects.equals(this.getBaseType(), reservation.getBaseType()) + && Objects.equals(this.getSchemaLocation(), reservation.getSchemaLocation()) + && Objects.equals(this.getType(), reservation.getType()) + && Objects.equals(this.description, reservation.description) + && Objects.equals(this.href, reservation.href) && Objects.equals(this.id, reservation.id) + && Objects.equals(this.relatedParty, reservation.relatedParty) + && Objects.equals(this.reservationState, reservation.reservationState) + && Objects.equals(this.validFor, reservation.validFor) + && Objects.equals(this.reservationItem, reservation.reservationItem); + } + + @Override + public int hashCode() { + return Objects.hash(getBaseType(), getSchemaLocation(), getType(), description, href, id, relatedParty, + reservationState, validFor, reservationItem); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Reservation {\n"); + + sb.append(" _atBaseType: ").append(toIndentedString(getBaseType())).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(getSchemaLocation())).append("\n"); + sb.append(" _atType: ").append(toIndentedString(getType())).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" reservationState: ").append(toIndentedString(reservationState)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" reservationItem: ").append(toIndentedString(reservationItem)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationCreate.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationCreate.java new file mode 100644 index 0000000..8cb47d2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationCreate.java @@ -0,0 +1,15 @@ +package org.etsi.osl.tmf.rpm685.model; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * reservation api resource Skipped properties: id,href + */ +@Schema(description = "reservation api resource Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class ReservationCreate extends ReservationUpdate { + +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationItem.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationItem.java new file mode 100644 index 0000000..16fbddf --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationItem.java @@ -0,0 +1,174 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; + +/** + * An identified part of the reservation. A reservation is decomposed into one + * or more reservation items. + */ +@Schema(description = "An identified part of the reservation. A reservation is decomposed into one or more reservation items.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") + +@Entity(name = "ReservationItem") +public class ReservationItem extends BaseRootEntity { + + @JsonProperty("quantity") + private Integer quantity = null; + + @JsonProperty("subReservationState") + private String subReservationState = null; + + @JsonProperty("resourceCapacity") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "reservitem_resrcapuuid", referencedColumnName = "uuid") + private ResourceCapacityDemand resourceCapacity = null; + + @JsonProperty("appliedCapacityAmount") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "reservitem_appliedcapuuid", referencedColumnName = "uuid") + private AppliedCapacityAmount appliedCapacityAmount = null; + + public ReservationItem quantity(Integer quantity) { + this.quantity = quantity; + return this; + } + + /** + * Represents the number of reservationItems that make up the reservation. + * + * @return quantity + **/ + @Schema(description = "Represents the number of reservationItems that make up the reservation.") + + public Integer getQuantity() { + return quantity; + } + + public void setQuantity(Integer quantity) { + this.quantity = quantity; + } + + public ReservationItem subReservationState(String subReservationState) { + this.subReservationState = subReservationState; + return this; + } + + /** + * A string. The life cycle state of the each reservation item. + * + * @return subReservationState + **/ + @Schema(description = "A string. The life cycle state of the each reservation item.") + + public String getSubReservationState() { + return subReservationState; + } + + public void setSubReservationState(String subReservationState) { + this.subReservationState = subReservationState; + } + + public ReservationItem resourceCapacity(ResourceCapacityDemand resourceCapacity) { + this.resourceCapacity = resourceCapacity; + return this; + } + + /** + * Get resourceCapacity + * + * @return resourceCapacity + **/ + @Schema(description = "") + + @Valid + public ResourceCapacityDemand getResourceCapacity() { + return resourceCapacity; + } + + public void setResourceCapacity(ResourceCapacityDemand resourceCapacity) { + this.resourceCapacity = resourceCapacity; + } + + public ReservationItem appliedCapacityAmount(AppliedCapacityAmount appliedCapacityAmount) { + this.appliedCapacityAmount = appliedCapacityAmount; + return this; + } + + /** + * Get appliedCapacityAmount + * + * @return appliedCapacityAmount + **/ + @Schema(description = "") + + @Valid + public AppliedCapacityAmount getAppliedCapacityAmount() { + return appliedCapacityAmount; + } + + public void setAppliedCapacityAmount(AppliedCapacityAmount appliedCapacityAmount) { + this.appliedCapacityAmount = appliedCapacityAmount; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ReservationItem reservationItem = (ReservationItem) o; + return Objects.equals(this.getBaseType(), reservationItem.getBaseType()) + && Objects.equals(this.getSchemaLocation(), reservationItem.getSchemaLocation()) + && Objects.equals(this.getType(), reservationItem.getType()) + && Objects.equals(this.quantity, reservationItem.quantity) + && Objects.equals(this.subReservationState, reservationItem.subReservationState) + && Objects.equals(this.resourceCapacity, reservationItem.resourceCapacity) + && Objects.equals(this.appliedCapacityAmount, reservationItem.appliedCapacityAmount); + } + + @Override + public int hashCode() { + return Objects.hash(getBaseType(), getSchemaLocation(), getType(), quantity, subReservationState, resourceCapacity, + appliedCapacityAmount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ReservationItem {\n"); + + sb.append(" _atBaseType: ").append(toIndentedString(getBaseType())).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(getSchemaLocation())).append("\n"); + sb.append(" _atType: ").append(toIndentedString(getType())).append("\n"); + sb.append(" quantity: ").append(toIndentedString(quantity)).append("\n"); + sb.append(" subReservationState: ").append(toIndentedString(subReservationState)).append("\n"); + sb.append(" resourceCapacity: ").append(toIndentedString(resourceCapacity)).append("\n"); + sb.append(" appliedCapacityAmount: ").append(toIndentedString(appliedCapacityAmount)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationMapper.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationMapper.java new file mode 100644 index 0000000..3a215ae --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationMapper.java @@ -0,0 +1,42 @@ +package org.etsi.osl.tmf.rpm685.model; + +import org.mapstruct.BeanMapping; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.MappingTarget; +import org.mapstruct.NullValueCheckStrategy; +import org.mapstruct.NullValueMappingStrategy; +import org.mapstruct.NullValuePropertyMappingStrategy; + + +@Mapper( + nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT, + nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS ) +public interface ReservationMapper { + + + + @Mapping(target = "baseType", ignore = true) + @Mapping(target = "schemaLocation", ignore = true) + @Mapping(target = "href", ignore = true) + @Mapping(target = "type", ignore = true) + @Mapping(target = "uuid", ignore = true) + @Mapping(target = "lastUpdate", ignore = true) + @Mapping(target = "lifecycleStatus", ignore = true) + @Mapping(target = "lifecycleStatusEnum", ignore = true) + @Mapping(target = "version", ignore = true) + Reservation fromReservationDTO( ReservationUpdate resdto); + + + @Mapping(target = "baseType", ignore = true) + @Mapping(target = "schemaLocation", ignore = true) + @Mapping(target = "href", ignore = true) + @Mapping(target = "type", ignore = true) + @Mapping(target = "uuid", ignore = true) + @Mapping(target = "lastUpdate", ignore = true) + @Mapping(target = "lifecycleStatus", ignore = true) + @Mapping(target = "lifecycleStatusEnum", ignore = true) + @Mapping(target = "version", ignore = true) + @BeanMapping(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE) + Reservation updateReservation( @MappingTarget Reservation entity, ReservationUpdate updateEntity); +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationStateType.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationStateType.java new file mode 100644 index 0000000..8177a0b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationStateType.java @@ -0,0 +1,36 @@ +package org.etsi.osl.tmf.rpm685.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * ResourceStatusType enumerations + */ +public enum ReservationStateType { + INPROGRESS("inprogress"), + COMPLETED("completed"), + REJECTED("rejected"), + CANCELLED("cancelled"); + + private String value; + + ReservationStateType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ReservationStateType fromValue(String text) { + for (ReservationStateType b : ReservationStateType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationUpdate.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationUpdate.java new file mode 100644 index 0000000..34f087b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/ReservationUpdate.java @@ -0,0 +1,468 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.sim638.model.ServiceOrderRef; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * reservation api resource Skipped properties: id,href + */ +/** + * @author ctranoris + * + */ +@Schema(description = "reservation api resource Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class ReservationUpdate { + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + + + @JsonProperty("name") + private String name = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("relatedParty") + private RelatedParty relatedParty = null; + + @JsonProperty("reservationState") + private String reservationState = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("reservationItem") + @Valid + private List reservationItem = null; + +// @JsonProperty("channelRef") +// private ChannelRef channelRef = null; + +// @JsonProperty("requestedPeriod") +// private RequestedPeriod requestedPeriod = null; + +// @JsonProperty("productOfferingRef") +// private ProductOfferingRef productOfferingRef = null; + + private OffsetDateTime requestedPeriodEndDateTime = null; + + private OffsetDateTime requestedPeriodStartDateTime = null; + + @JsonProperty("serviceOrderRef") + private ServiceOrderRef serviceOrderRef = null; + + /** + * @return the serviceOrderRef + */ + public ServiceOrderRef getServiceOrderRef() { + return serviceOrderRef; + } + + /** + * @param serviceOrderRef the serviceOrderRef to set + */ + public void setServiceOrderRef(ServiceOrderRef serviceOrderRef) { + this.serviceOrderRef = serviceOrderRef; + } + + public ReservationUpdate serviceOrderRef(ServiceOrderRef serviceOrderRef) { + this.serviceOrderRef = serviceOrderRef; + return this; + } + + @JsonProperty("requestedPeriodEndDateTime") + public String getRequestedPeriodEndDateTimeStr() { + if (requestedPeriodEndDateTime != null) { + return requestedPeriodEndDateTime.toString(); + } else { + return null; + } + } + + + + /** + * @return the name + */ + public String getName() { + return name; + } + + /** + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + + /** + * @return the requestedPeriodEndDateTime + */ + public OffsetDateTime getRequestedPeriodEndDateTime() { + return requestedPeriodEndDateTime; + } + + /** + * @param requestedPeriodEndDateTime the requestedPeriodEndDateTime to set + */ + public void setRequestedPeriodEndDateTime(OffsetDateTime requestedPeriodEndDateTime) { + this.requestedPeriodEndDateTime = requestedPeriodEndDateTime; + } + + + public ReservationUpdate requestedPeriodEndDateTime(OffsetDateTime requestedPeriodEndDateTime) { + this.requestedPeriodEndDateTime = requestedPeriodEndDateTime; + return this; + } + + public void setRequestedPeriodEndDateTime(String requestedPeriodEndDateTime) { + + if (requestedPeriodEndDateTime != null) { + this.requestedPeriodEndDateTime = OffsetDateTime.parse(requestedPeriodEndDateTime); + + } + } + + /** + * @return the requestedPeriodStartDateTime + */ + public OffsetDateTime getRequestedPeriodStartDateTime() { + return requestedPeriodStartDateTime; + } + + /** + * @param requestedPeriodStartDateTime the requestedPeriodStartDateTime to set + */ + public void setRequestedPeriodStartDateTime(OffsetDateTime requestedPeriodStartDateTime) { + this.requestedPeriodStartDateTime = requestedPeriodStartDateTime; + } + + public ReservationUpdate requestedPeriodStartDateTime(OffsetDateTime requestedPeriodStartDateTime) { + this.requestedPeriodStartDateTime = requestedPeriodStartDateTime; + return this; + } + + @JsonProperty("requestedPeriodStartDateTime") + public String getRequestedPeriodStartDateTimeStr() { + if (requestedPeriodStartDateTime != null) { + return requestedPeriodStartDateTime.toString(); + } else { + return null; + } + } + + public void setRequestedPeriodStartDateTime(String requestedPeriodStartDateTime) { + + if (requestedPeriodStartDateTime != null) { + this.requestedPeriodStartDateTime = OffsetDateTime.parse(requestedPeriodStartDateTime); + + } + } + + public ReservationUpdate _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * Get _atBaseType + * + * @return _atBaseType + **/ + @Schema(description = "") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public ReservationUpdate _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A string. Generic attribute containing the link to the schema that defines + * the structure of the class type of the current object. + * + * @return _atSchemaLocation + **/ + @Schema(description = "A string. Generic attribute containing the link to the schema that defines the structure of the class type of the current object.") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public ReservationUpdate _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * A string. Indicates the (class) type of reservation. Ex. + * serviceItemReservation, resourceItemReservation + * + * @return _atType + **/ + @Schema(description = "A string. Indicates the (class) type of reservation. Ex. serviceItemReservation, resourceItemReservation") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + public ReservationUpdate description(String description) { + this.description = description; + return this; + } + + /** + * A string. free-text description of the reservation. + * + * @return description + **/ + @Schema(description = "A string. free-text description of the reservation.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ReservationUpdate relatedParty(RelatedParty relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + /** + * Get relatedParty + * + * @return relatedParty + **/ + @Schema(description = "") + + @Valid + public RelatedParty getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(RelatedParty relatedParty) { + this.relatedParty = relatedParty; + } + + public ReservationUpdate reservationState(String reservationState) { + this.reservationState = reservationState; + return this; + } + + /** + * A string. The life cycle state of the reservation. + * + * @return reservationState + **/ + @Schema(description = "A string. The life cycle state of the reservation.") + + public String getReservationState() { + return reservationState; + } + + public void setReservationState(String reservationState) { + this.reservationState = reservationState; + } + + public ReservationUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period of time for which the reservation is applicable. + * + * @return validFor + **/ + @Schema(description = "The period of time for which the reservation is applicable.") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ReservationUpdate reservationItem(List reservationItem) { + this.reservationItem = reservationItem; + return this; + } + + public ReservationUpdate addReservationItemItem(ReservationItem reservationItemItem) { + if (this.reservationItem == null) { + this.reservationItem = new ArrayList<>(); + } + this.reservationItem.add(reservationItemItem); + return this; + } + + /** + * Get reservationItem + * + * @return reservationItem + **/ + @Schema(description = "") + @Valid + public List getReservationItem() { + return reservationItem; + } + + public void setReservationItem(List reservationItem) { + this.reservationItem = reservationItem; + } + +// public ReservationUpdate channelRef(ChannelRef channelRef) { +// this.channelRef = channelRef; +// return this; +// } +// +// /** +// * Get channelRef +// * +// * @return channelRef +// **/ +// @Schema(description = "") +// +// @Valid +// public ChannelRef getChannelRef() { +// return channelRef; +// } +// +// public void setChannelRef(ChannelRef channelRef) { +// this.channelRef = channelRef; +// } +// +// public ReservationUpdate requestedPeriod(RequestedPeriod requestedPeriod) { +// this.requestedPeriod = requestedPeriod; +// return this; +// } +// +// /** +// * Get requestedPeriod +// * +// * @return requestedPeriod +// **/ +// @Schema(description = "") +// +// @Valid +// public RequestedPeriod getRequestedPeriod() { +// return requestedPeriod; +// } +// +// public void setRequestedPeriod(RequestedPeriod requestedPeriod) { +// this.requestedPeriod = requestedPeriod; +// } +// +// public ReservationUpdate productOfferingRef(ProductOfferingRef productOfferingRef) { +// this.productOfferingRef = productOfferingRef; +// return this; +// } +// +// /** +// * Get productOfferingRef +// * +// * @return productOfferingRef +// **/ +// @Schema(description = "") +// +// @Valid +// public ProductOfferingRef getProductOfferingRef() { +// return productOfferingRef; +// } +// +// public void setProductOfferingRef(ProductOfferingRef productOfferingRef) { +// this.productOfferingRef = productOfferingRef; +// } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ReservationUpdate reservationUpdate = (ReservationUpdate) o; + return Objects.equals(this._atBaseType, reservationUpdate._atBaseType) + && Objects.equals(this._atSchemaLocation, reservationUpdate._atSchemaLocation) + && Objects.equals(this._atType, reservationUpdate._atType) + && Objects.equals(this.description, reservationUpdate.description) + && Objects.equals(this.relatedParty, reservationUpdate.relatedParty) + && Objects.equals(this.reservationState, reservationUpdate.reservationState) + && Objects.equals(this.validFor, reservationUpdate.validFor) + && Objects.equals(this.reservationItem, reservationUpdate.reservationItem); + } + + @Override + public int hashCode() { + return Objects.hash(_atBaseType, _atSchemaLocation, _atType, description, relatedParty, reservationState, + validFor, reservationItem); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ReservationUpdate {\n"); + + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" reservationState: ").append(toIndentedString(reservationState)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" reservationItem: ").append(toIndentedString(reservationItem)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/ResourceCapacityDemand.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/ResourceCapacityDemand.java new file mode 100644 index 0000000..1c0d393 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/ResourceCapacityDemand.java @@ -0,0 +1,204 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.service.ResourceRef; +import org.etsi.osl.tmf.pcm620.model.PlaceRef; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; + +/** + * the amount of capacity that is planned to be consumed or has been consumed. + */ +@Schema(description = "the amount of capacity that is planned to be consumed or has been consumed.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +@Entity(name = "ResCapacityDemand") +public class ResourceCapacityDemand extends BaseRootEntity { + + @JsonProperty("capacityDemandAmount") + private Integer capacityDemandAmount = null; + + @JsonProperty("resourcePool") + @ManyToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "rescapcitydem_resPooluuid", referencedColumnName = "uuid") + private ResourcePoolRef resourcePool = null; + + @JsonProperty("applicableTimePeriod") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "rescapcitydem_applTimePerduuid", referencedColumnName = "uuid") + private ApplicableTimePeriod applicableTimePeriod = null; + + @JsonProperty("place") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "rescapcitydem_placeuuid", referencedColumnName = "uuid") + private PlaceRef place = null; + + + @JsonProperty("resources") + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set resources = new HashSet<>(); + + + + /** + * @return the resources + */ + public Set getResources() { + return resources; + } + + /** + * @param resources the resources to set + */ + public void setResources(Set resources) { + this.resources = resources; + } + + public ResourceCapacityDemand capacityDemandAmount(Integer capacityDemandAmount) { + this.capacityDemandAmount = capacityDemandAmount; + return this; + } + + /** + * A value and units that define the CapacityDemand, such as 10000 ea, 10B Mb. + * Instance values are mutually exclusive with From and To capacityDemandAmounts + * and range interval. + * + * @return capacityDemandAmount + **/ + @Schema(description = "A value and units that define the CapacityDemand, such as 10000 ea, 10B Mb. Instance values are mutually exclusive with From and To capacityDemandAmounts and range interval.") + + public Integer getCapacityDemandAmount() { + return capacityDemandAmount; + } + + public void setCapacityDemandAmount(Integer capacityDemandAmount) { + this.capacityDemandAmount = capacityDemandAmount; + } + + public ResourceCapacityDemand resourcePool(ResourcePoolRef resourcePool) { + this.resourcePool = resourcePool; + return this; + } + + /** + * Get resourcePool + * + * @return resourcePool + **/ + @Schema(description = "") + + @Valid + public ResourcePoolRef getResourcePool() { + return resourcePool; + } + + public void setResourcePool(ResourcePoolRef resourcePool) { + this.resourcePool = resourcePool; + } + + public ResourceCapacityDemand applicableTimePeriod(ApplicableTimePeriod applicableTimePeriod) { + this.applicableTimePeriod = applicableTimePeriod; + return this; + } + + /** + * Get applicableTimePeriod + * + * @return applicableTimePeriod + **/ + @Schema(description = "") + + @Valid + public ApplicableTimePeriod getApplicableTimePeriod() { + return applicableTimePeriod; + } + + public void setApplicableTimePeriod(ApplicableTimePeriod applicableTimePeriod) { + this.applicableTimePeriod = applicableTimePeriod; + } + + public ResourceCapacityDemand place(PlaceRef place) { + this.place = place; + return this; + } + + /** + * Get place + * + * @return place + **/ + @Schema(description = "") + + @Valid + public PlaceRef getPlace() { + return place; + } + + public void setPlace(PlaceRef place) { + this.place = place; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourceCapacityDemand resourceCapacityDemand = (ResourceCapacityDemand) o; + return Objects.equals(this.getBaseType(), resourceCapacityDemand.getBaseType()) + && Objects.equals(this.getSchemaLocation(), resourceCapacityDemand.getSchemaLocation()) + && Objects.equals(this.getType(), resourceCapacityDemand.getType()) + && Objects.equals(this.capacityDemandAmount, resourceCapacityDemand.capacityDemandAmount) + + && Objects.equals(this.applicableTimePeriod, resourceCapacityDemand.applicableTimePeriod) + && Objects.equals(this.place, resourceCapacityDemand.place); + } + + @Override + public int hashCode() { + return Objects.hash(getBaseType(), getSchemaLocation(), getType(), capacityDemandAmount, + applicableTimePeriod, place); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourceCapacityDemand {\n"); + + sb.append(" _atBaseType: ").append(toIndentedString(getBaseType())).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(getSchemaLocation())).append("\n"); + sb.append(" _atType: ").append(toIndentedString(getType())).append("\n"); + sb.append(" capacityDemandAmount: ").append(toIndentedString(capacityDemandAmount)).append("\n"); + + sb.append(" applicableTimePeriod: ").append(toIndentedString(applicableTimePeriod)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePool.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePool.java new file mode 100644 index 0000000..14d953f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePool.java @@ -0,0 +1,156 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToOne; + +/** + * manages resource capacity with the resource state + */ +@Schema(description = "manages resource capacity with the resource state") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") + +@Entity(name = "ResourcePool") +public class ResourcePool extends BaseEntity { + + + @JsonProperty("id") + protected String id = null; + + + @JsonProperty("capacity") + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "resr_capacuuid", referencedColumnName = "uuid") + private Capacity capacity = null; + + + + +// @JsonProperty("resourceCollection") +// @Valid +// @ManyToMany(fetch = FetchType.EAGER, cascade = { CascadeType.DETACH }) +// @JoinTable() +// @JsonIgnore +// private Set resourceCollection = new HashSet<>(); + + + + /** + * Unique identifier of this REST resource + * + * @return id + **/ + @Schema(description = "Unique identifier of this REST resource") + + public String getId() { + id = uuid; + return uuid; + } + + + + /** + * @return the capacity + */ + public Capacity getCapacity() { + return capacity; + } + + + + /** + * @param capacity the capacity to set + */ + public ResourcePool setCapacity( Capacity capacity) { + this.capacity = capacity; + return this; + } + + + + + +// public ResourcePool resourceCollection(Set resourceCollection) { +// this.resourceCollection = resourceCollection; +// return this; +// } +// +// public ResourcePool addResourceCollectionItem(ResourceCollectionRef resourceCollectionItem) { +// if (this.resourceCollection == null) { +// this.resourceCollection = new HashSet<>(); +// } +// this.resourceCollection.add(resourceCollectionItem); +// return this; +// } +// +// /** +// * Get resourceCollection +// * +// * @return resourceCollection +// **/ +// @Schema(description = "") +// @Valid +// public Set getResourceCollection() { +// return resourceCollection; +// } +// +// public void setResourceCollection(Set resourceCollection) { +// this.resourceCollection = resourceCollection; +// } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourcePool resourcePool = (ResourcePool) o; + return Objects.equals(this.description, resourcePool.description) + && Objects.equals(this.href, resourcePool.href); +// && Objects.equals(this.resourceCollection, resourcePool.resourceCollection); + } + + @Override + public int hashCode() { + return Objects.hash(baseType, schemaLocation, type, description, href, id +// , resourceCollection + ); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourcePool {\n"); + + sb.append(" _atBaseType: ").append(toIndentedString( baseType )).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString( type)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); +// sb.append(" resourceCollection: ").append(toIndentedString(resourceCollection)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePoolCreate.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePoolCreate.java new file mode 100644 index 0000000..5e92c13 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePoolCreate.java @@ -0,0 +1,15 @@ +package org.etsi.osl.tmf.rpm685.model; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * manages resource capacity with the resource state Skipped properties: id,href + */ +@Schema(description = "manages resource capacity with the resource state Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class ResourcePoolCreate extends ResourcePoolUpdate { + +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePoolMapper.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePoolMapper.java new file mode 100644 index 0000000..ad222a1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePoolMapper.java @@ -0,0 +1,42 @@ +package org.etsi.osl.tmf.rpm685.model; + +import org.mapstruct.BeanMapping; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.MappingTarget; +import org.mapstruct.NullValueCheckStrategy; +import org.mapstruct.NullValueMappingStrategy; +import org.mapstruct.NullValuePropertyMappingStrategy; + +@Mapper( + nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT, + nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS ) +public interface ResourcePoolMapper { + + @Mapping(target = "uuid", ignore = true) + @Mapping(target = "baseType", ignore = true) + @Mapping(target = "href", ignore = true) + @Mapping(target = "schemaLocation", ignore = true) + @Mapping(target = "type", ignore = true) + @Mapping(target = "lastUpdate", ignore = true) + @Mapping(target = "lifecycleStatus", ignore = true) + @Mapping(target = "lifecycleStatusEnum", ignore = true) + @Mapping(target = "version", ignore = true) + @Mapping(target = "validFor", ignore = true) + ResourcePool fromResourcePoolDTO( ResourcePoolUpdate rpdto ); + + + @Mapping(target = "baseType", ignore = true) + @Mapping(target = "schemaLocation", ignore = true) + @Mapping(target = "href", ignore = true) + @Mapping(target = "type", ignore = true) + @Mapping(target = "uuid", ignore = true) + @Mapping(target = "lastUpdate", ignore = true) + @Mapping(target = "lifecycleStatus", ignore = true) + @Mapping(target = "lifecycleStatusEnum", ignore = true) + @Mapping(target = "validFor", ignore = true) + @Mapping(target = "version", ignore = true) + @BeanMapping(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE) + ResourcePool updateResourcePool(@MappingTarget ResourcePool entity, ResourcePoolUpdate updateEntity); + +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePoolRef.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePoolRef.java new file mode 100644 index 0000000..5371ba8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePoolRef.java @@ -0,0 +1,150 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.service.ResourceRef; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.validation.Valid; + +/** + * manages resource capacity with the resource state + */ +@Schema(description = "manages resource capacity with the resource state") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +@Entity(name = "ResourcePoolRef") +@JsonIgnoreProperties({ "uuid" }) +public class ResourcePoolRef extends BaseRootEntity { + @JsonProperty("@referredType") + private String _atReferredType = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("resources") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set resources = new HashSet<>(); + + public ResourcePoolRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * A string. Indicates the type of the referred object. This attribute is to be + * used when the object is representing a reference to an existing object + * instead of the of the object itself. + * + * @return _atReferredType + **/ + @Schema(description = "A string. Indicates the type of the referred object. This attribute is to be used when the object is representing a reference to an existing object instead of the of the object itself.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + public ResourcePoolRef id(String id) { + this.id = id; + return this; + } + + /** + * A string. Identifier of an instance of the Resource Pool. + * + * @return id + **/ + @Schema(description = "A string. Identifier of an instance of the Resource Pool.") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ResourcePoolRef resources(Set resourceCollection) { + this.resources = resourceCollection; + return this; + } + + public ResourcePoolRef addResourcesItem(ResourceRef resourceCollectionItem) { + if (this.resources == null) { + this.resources = new HashSet<>(); + } + this.resources.add(resourceCollectionItem); + return this; + } + + /** + * Get resourceCollection + * + * @return resourceCollection + **/ + @Schema(description = "") + @Valid + public Set getResources() { + return resources; + } + + public void setResources(Set resourceCollection) { + this.resources = resourceCollection; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourcePoolRef resourcePoolRef = (ResourcePoolRef) o; + return Objects.equals(this._atReferredType, resourcePoolRef._atReferredType) + && Objects.equals(this.href, resourcePoolRef.href) && Objects.equals(this.id, resourcePoolRef.id) + && Objects.equals(this.resources, resourcePoolRef.resources); + } + + @Override + public int hashCode() { + return Objects.hash(_atReferredType, href, id, resources); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourcePoolRef {\n"); + + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" resourceCollection: ").append(toIndentedString(resources)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePoolUpdate.java b/src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePoolUpdate.java new file mode 100644 index 0000000..0e6b236 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/model/ResourcePoolUpdate.java @@ -0,0 +1,224 @@ +package org.etsi.osl.tmf.rpm685.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * manages resource capacity with the resource state Skipped properties: id,href + */ +@Schema(description = "manages resource capacity with the resource state Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-10-05T08:56:49.602231700+03:00[Europe/Athens]") +public class ResourcePoolUpdate { + @JsonProperty("@baseType") + private String _atBaseType = null; + + @JsonProperty("@schemaLocation") + private String _atSchemaLocation = null; + + @JsonProperty("@type") + private String _atType = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("relatedParty") + private String relatedParty = null; + + + + @JsonProperty("name") + protected String name = null; + + @JsonProperty("capacity") + @Valid + private Capacity capacity = null; + + public ResourcePoolUpdate _atBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + return this; + } + + /** + * A string. Generic attribute indicating the base class type of the extension + * class of the current object. Useful only when the class type of the current + * object is unknown to the implementation. + * + * @return _atBaseType + **/ + @Schema(description = "A string. Generic attribute indicating the base class type of the extension class of the current object. Useful only when the class type of the current object is unknown to the implementation.") + + public String getAtBaseType() { + return _atBaseType; + } + + public void setAtBaseType(String _atBaseType) { + this._atBaseType = _atBaseType; + } + + public ResourcePoolUpdate _atSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + return this; + } + + /** + * A string. Generic attribute containing the link to the schema that defines + * the structure of the class type of the current object. + * + * @return _atSchemaLocation + **/ + @Schema(description = "A string. Generic attribute containing the link to the schema that defines the structure of the class type of the current object.") + + public String getAtSchemaLocation() { + return _atSchemaLocation; + } + + public void setAtSchemaLocation(String _atSchemaLocation) { + this._atSchemaLocation = _atSchemaLocation; + } + + public ResourcePoolUpdate _atType(String _atType) { + this._atType = _atType; + return this; + } + + /** + * A string. Generic attribute containing the name of the resource class type. + * + * @return _atType + **/ + @Schema(description = "A string. Generic attribute containing the name of the resource class type.") + + public String getAtType() { + return _atType; + } + + public void setAtType(String _atType) { + this._atType = _atType; + } + + public ResourcePoolUpdate description(String description) { + this.description = description; + return this; + } + + /** + * A string. free-text description of the Resource Pool. + * + * @return description + **/ + @Schema(description = "A string. free-text description of the Resource Pool.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResourcePoolUpdate relatedParty(String relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + /** + * A related party defines party or party role linked to a specific entity, who + * uses the resource of Resource Pool. + * + * @return relatedParty + **/ + @Schema(description = "A related party defines party or party role linked to a specific entity, who uses the resource of Resource Pool.") + + public String getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(String relatedParty) { + this.relatedParty = relatedParty; + } + + + + /** + * @return the name + */ + public String getName() { + return name; + } + + /** + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + + /** + * @return the capacity + */ + public Capacity getCapacity() { + return capacity; + } + + /** + * @param capacity the capacity to set + */ + public void setCapacity( Capacity capacity) { + this.capacity = capacity; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResourcePoolUpdate resourcePoolUpdate = (ResourcePoolUpdate) o; + return Objects.equals(this._atBaseType, resourcePoolUpdate._atBaseType) + && Objects.equals(this._atSchemaLocation, resourcePoolUpdate._atSchemaLocation) + && Objects.equals(this._atType, resourcePoolUpdate._atType) + && Objects.equals(this.description, resourcePoolUpdate.description) + && Objects.equals(this.relatedParty, resourcePoolUpdate.relatedParty); + } + + @Override + public int hashCode() { + return Objects.hash(_atBaseType, _atSchemaLocation, _atType, description, relatedParty); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResourcePoolUpdate {\n"); + + sb.append(" _atBaseType: ").append(toIndentedString(_atBaseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(_atSchemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(_atType)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/repo/ResourcePoolRepository.java b/src/main/java/org/etsi/osl/tmf/rpm685/repo/ResourcePoolRepository.java new file mode 100644 index 0000000..f3ab1ec --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/repo/ResourcePoolRepository.java @@ -0,0 +1,26 @@ +package org.etsi.osl.tmf.rpm685.repo; + +import java.util.Optional; +import java.util.Set; +import org.etsi.osl.tmf.rpm685.model.ResourcePool; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; +import jakarta.validation.constraints.NotNull; + + +@Repository +public interface ResourcePoolRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + Optional findByName(String aName); + + @Query("SELECT rp FROM ResourcePool rp " + + "JOIN FETCH rp.capacity cap " + + "JOIN FETCH cap.resources res " + + "WHERE res.id = ?1") + Set findByResourceId(@NotNull String resourceRefId); +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/repo/ResourceReservationRepository.java b/src/main/java/org/etsi/osl/tmf/rpm685/repo/ResourceReservationRepository.java new file mode 100644 index 0000000..c86d2f8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/repo/ResourceReservationRepository.java @@ -0,0 +1,90 @@ +package org.etsi.osl.tmf.rpm685.repo; + +import java.time.OffsetDateTime; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import org.etsi.osl.tmf.rpm685.model.Reservation; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import jakarta.validation.Valid; + + +/** + * @author ctranoris + * + */ +public interface ResourceReservationRepository extends CrudRepository, PagingAndSortingRepository { + + Optional findByUuid(String id); + + + @Query("SELECT reserv FROM Reservation reserv " + + "JOIN FETCH reserv.reservationItem ri " + + "JOIN FETCH ri.appliedCapacityAmount apcm " + + "JOIN FETCH apcm.resources resrc " + + "JOIN FETCH apcm.resourceCapacityDemand resCapacityDem " + + "JOIN FETCH resCapacityDem.applicableTimePeriod timePeriod " + + "WHERE resrc.id = ?1") + List findAll2(String id); + +// @Query("SELECT reserv FROM Reservation reserv " +// + "JOIN FETCH reserv.reservationItem ri " +// + "JOIN FETCH ri.appliedCapacityAmount apcm " +// + "JOIN FETCH apcm.resources resrc " +// + "JOIN FETCH apcm.resourceCapacityDemand resCapacityDem " +// + "JOIN FETCH resCapacityDem.applicableTimePeriod timePeriod " +// + "WHERE resrc.id = ?1 AND " +// + "timePeriod.fromDateTime<=?2 AND " +// + "timePeriod.endDateTime>=?2") +// Set findResourceReservationsThatIncludeFromDateTime(String resourceId, +// @Valid OffsetDateTime requestedfromDateTime); +// +// @Query("SELECT reserv FROM Reservation reserv " +// + "JOIN FETCH reserv.reservationItem ri " +// + "JOIN FETCH ri.appliedCapacityAmount apcm " +// + "JOIN FETCH apcm.resources resrc " +// + "JOIN FETCH apcm.resourceCapacityDemand resCapacityDem " +// + "JOIN FETCH resCapacityDem.applicableTimePeriod timePeriod " +// + "WHERE resrc.id = ?1 AND " +// + "timePeriod.fromDateTime<=?2 AND " +// + "timePeriod.endDateTime>=?2") +// Set findResourceReservationsThatIncludeEndDateTime(String resourceId, +// @Valid OffsetDateTime requestedendDateTime); +// +// +// @Query("SELECT reserv FROM Reservation reserv " +// + "JOIN FETCH reserv.reservationItem ri " +// + "JOIN FETCH ri.appliedCapacityAmount apcm " +// + "JOIN FETCH apcm.resources resrc " +// + "JOIN FETCH apcm.resourceCapacityDemand resCapacityDem " +// + "JOIN FETCH resCapacityDem.applicableTimePeriod timePeriod " +// + "WHERE resrc.id = ?1 AND " +// + "timePeriod.fromDateTime>=?2 AND timePeriod.endDateTime>=?2 AND " +// + "timePeriod.fromDateTime<=?3 AND timePeriod.endDateTime<=?3 ") +// Set findResourceReservationsThatIncludeDates(String resourceId, +// @Valid OffsetDateTime requestedfromDateTime, +// @Valid OffsetDateTime requestedendDateTime); + + + + @Query("SELECT reserv FROM Reservation reserv " + + "JOIN FETCH reserv.reservationItem ri " + + "JOIN FETCH ri.appliedCapacityAmount apcm " + + "JOIN FETCH apcm.resources resrc " + + "JOIN FETCH apcm.resourceCapacityDemand resCapacityDem " + + "JOIN FETCH resCapacityDem.applicableTimePeriod timePeriod " + + "WHERE resrc.id = ?1 AND (" + + "(timePeriod.fromDateTime<=?2 AND timePeriod.endDateTime>=?2) OR " + + "(timePeriod.fromDateTime<=?3 AND timePeriod.endDateTime>=?3) OR " + + "(timePeriod.fromDateTime>=?2 AND timePeriod.endDateTime>=?2 AND " + + "timePeriod.fromDateTime<=?3 AND timePeriod.endDateTime<=?3) " + + ") ") + Set findResourceReservationsForDates(String resourceId, + @Valid OffsetDateTime requestedfromDateTime, + @Valid OffsetDateTime requestedendDateTime); + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/reposervices/ResourcePoolRepoService.java b/src/main/java/org/etsi/osl/tmf/rpm685/reposervices/ResourcePoolRepoService.java new file mode 100644 index 0000000..dcaf26a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/reposervices/ResourcePoolRepoService.java @@ -0,0 +1,259 @@ +package org.etsi.osl.tmf.rpm685.reposervices; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.Set; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.common.model.service.ResourceRef; +import org.etsi.osl.tmf.rpm685.model.AvailabilityCheck; +import org.etsi.osl.tmf.rpm685.model.AvailabilityCheckCreate; +import org.etsi.osl.tmf.rpm685.model.ExtractCreate; +import org.etsi.osl.tmf.rpm685.model.PushCreate; +import org.etsi.osl.tmf.rpm685.model.Reservation; +import org.etsi.osl.tmf.rpm685.model.ReservationStateType; +import org.etsi.osl.tmf.rpm685.model.ResourcePool; +import org.etsi.osl.tmf.rpm685.model.ResourcePoolCreate; +import org.etsi.osl.tmf.rpm685.model.ResourcePoolMapper; +import org.etsi.osl.tmf.rpm685.model.ResourcePoolUpdate; +import org.etsi.osl.tmf.rpm685.repo.ResourcePoolRepository; +import org.etsi.osl.tmf.rpm685.repo.ResourceReservationRepository; +import org.mapstruct.factory.Mappers; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * @author ctranoris + * + */ +@org.springframework.stereotype.Service +public class ResourcePoolRepoService { + + private static final transient Log logger = LogFactory.getLog(ResourcePoolRepoService.class.getName()); + + @Autowired + ResourcePoolRepository resourcePoolRepo; + + + @Autowired + ResourceReservationRepository resourceReservationRepository; + + + public ResourcePool addResourcePool(@Valid ResourcePoolCreate body) { + logger.info("Will add Resource Pool: " + body.getName()); + + ResourcePool rp = new ResourcePool(); + ResourcePoolMapper mapper = Mappers.getMapper(ResourcePoolMapper.class); + rp = mapper.fromResourcePoolDTO(body); + + rp = this.resourcePoolRepo.save(rp); + return rp; + } + + @Transactional + public ResourcePool updateResourcePool(String id, @Valid ResourcePoolUpdate body) { + ResourcePool rp = this.findByUuid(id); + + ResourcePoolMapper mapper = Mappers.getMapper(ResourcePoolMapper.class); + rp = mapper.updateResourcePool(rp, body); + rp = this.resourcePoolRepo.save(rp); + return rp; + } + + public ResourcePool findByUuid(String id) { + Optional optionalCat = this.resourcePoolRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + public List findAll() { + return (List) this.resourcePoolRepo.findAll(); + } + + @Transactional + public AvailabilityCheck availabilityCheck(@Valid AvailabilityCheckCreate acReq) { + AvailabilityCheck ac = new AvailabilityCheck(); + if ( acReq.getResourceCapacityDemand() == null ) { + return ac; + } + ResourcePool rp = this.findByUuid( acReq.getResourceCapacityDemand().getResourcePool().getId() ); + if (rp == null) { + ac.setAvailableResources( new ArrayList<>()); + return ac; + } + + //dummy for now return any form the Set + ac.setAvailableResources( new ArrayList<>() ); + + if ( acReq.getResourceCapacityDemand().getResources() != null && acReq.getResourceCapacityDemand().getResources().size()>0) { + for (ResourceRef rRef : acReq.getResourceCapacityDemand().getResources()) { + + Reservation aReservation = reserveResource( rRef.getId(), + acReq.getResourceCapacityDemand().getApplicableTimePeriod().getFromDateTime(), + acReq.getResourceCapacityDemand().getApplicableTimePeriod().getEndDateTime() + ); + if ( aReservation!=null && + aReservation.getReservationState().equals( ReservationStateType.COMPLETED.toString() )) { + ac.getAvailableResources().add( rRef ); + } + } + } else { //search availability of each resource in the pool + + for (ResourceRef rRef : rp.getCapacity().getResources() ) { + + Reservation aReservation = reserveResource( rRef.getId(), + acReq.getResourceCapacityDemand().getApplicableTimePeriod().getFromDateTime(), + acReq.getResourceCapacityDemand().getApplicableTimePeriod().getEndDateTime() + ); + if ( aReservation!=null && + aReservation.getReservationState().equals( ReservationStateType.COMPLETED.toString() )) { + ac.getAvailableResources().add( rRef ); + } + } + + } + + + return ac; + } + + /** + * @param push + * @return + */ + public ResourcePool push(@Valid PushCreate push) { + var resourcePool = findByUuid(push.getResourcePool().getId()); + if (resourcePool == null) { + return null; + } + + ResourcePoolUpdate ru = new ResourcePoolUpdate(); + ru.setCapacity(resourcePool.getCapacity()); + ru.getCapacity() + .setCapacityAmount(ru.getCapacity().getCapacityAmount() + push.getCapacity().getCapacityAmount()); + ru.getCapacity().getResources().addAll(resourcePool.getCapacity().getResources()); + ru.getCapacity().getResources().addAll(push.getCapacity().getResources()); + + return updateResourcePool(resourcePool.getId(), ru); + } + + public ResourcePool extract(@Valid ExtractCreate extr) { + var resourcePool = findByUuid( extr.getResourcePool().getId()); + if (resourcePool == null) { + return null; + } + + ResourcePoolUpdate ru = new ResourcePoolUpdate(); + ru.setCapacity( resourcePool.getCapacity() ); + ru.getCapacity().setCapacityAmount( ru.getCapacity().getCapacityAmount() - extr.getCapacity().getCapacityAmount()); + ru.getCapacity().getResources().addAll( resourcePool.getCapacity().getResources() ); + List toremove = new ArrayList<>(); + for (ResourceRef refExt : extr.getCapacity().getResources()) { + for (ResourceRef refPool : ru.getCapacity().getResources()) { + if ( refExt.getId().equals(refPool.getId() ) ) { + toremove.add(refPool); + } + + } + } + + for (ResourceRef resourceRef : toremove) { + ru.getCapacity().getResources().remove(resourceRef); + } + + + return updateResourcePool(resourcePool.getId(), ru); + } + + @Transactional + public Set findResourceRefinPools(@NotNull String resourceRefId) { + return this.resourcePoolRepo.findByResourceId( resourceRefId ) ; + + } + + public Void deleteByUuid(String id) { + Optional optionalCat = this.resourcePoolRepo.findByUuid(id); + ResourcePool s = optionalCat.get(); + if (s == null) { + return null; + } + + this.resourcePoolRepo.delete( s ); + return null; + } + + /** + * @param resourceId + * @param fromDateTime + * @param endDateTime + * @return a nre reservation if it is OK with dates otherwise returns one that is rejected + */ + @Transactional + public Reservation reserveResource(@NotNull String resourceId, @Valid OffsetDateTime fromDateTime, + @Valid OffsetDateTime endDateTime) { + + //find any reservations of that resource in the specific period + //we must not find any reservation that its fromDateTime is between requestedFromDateTime and requested EndDateTime + //we must not find any reservation that its endDateTime is is between requestedFromDateTime and requested EndDateTime + //find any reservations that include the fromDateTime + + + + List result1 = this.findAllReservations(); + List result11 = this.resourceReservationRepository.findAll2( resourceId ); +// Set result2 = this.resourceReservationRepository +// .findResourceReservationsThatIncludeFromDateTime(resourceId, fromDateTime); +// Set result3 = this.resourceReservationRepository +// .findResourceReservationsThatIncludeEndDateTime(resourceId, endDateTime); +// Set result4 = this.resourceReservationRepository +// .findResourceReservationsThatIncludeDates(resourceId, fromDateTime, endDateTime); +// Set result5 = this.resourceReservationRepository +// .findResourceReservationsThatIncludeDates(resourceId, fromDateTime, endDateTime); + Set result = this.resourceReservationRepository + .findResourceReservationsForDates(resourceId, fromDateTime, endDateTime); + + logger.info("reqFrom %s, reqEnd %s".formatted(fromDateTime, endDateTime)); +// if ( result1.size() >0 ) { +// @Valid +// ApplicableTimePeriod period = result1.stream().findFirst().get() +// .getReservationItem().stream().findFirst(). get() +// .getAppliedCapacityAmount().getResourceCapacityDemand().getApplicableTimePeriod(); +// +// logger.info("reservationFROM %s, reservationEND %s".formatted( +// period.getFromDateTime() , +// period.getEndDateTime())); +// } + + logger.info("result1 %s".formatted(result1.size())); + logger.info("result11 %s".formatted(result11.size())); +// logger.info("result2 %s".formatted(result2.size())); +// logger.info("result3 %s".formatted(result3.size())); +// logger.info("result4 %s".formatted(result4.size())); +// logger.info("result5 %s".formatted(result5.size())); + logger.info("result %s".formatted(result.size())); + + + //if result is 0 then create a new reservation for that specific dates + + Reservation aReservation = new Reservation(); + //if ( result2.size() == 0 && result3.size() == 0 && result4.size() == 0 && result5.size() == 0) { + if ( result.size() == 0) { + aReservation.setReservationState( ReservationStateType.COMPLETED.toString()); + } else { + aReservation.setReservationState( ReservationStateType.REJECTED.toString()); + } + + + + return aReservation; + } + + @Transactional + public List findAllReservations() { + return (List) this.resourceReservationRepository.findAll(); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/rpm685/reposervices/ResourceReservationRepoService.java b/src/main/java/org/etsi/osl/tmf/rpm685/reposervices/ResourceReservationRepoService.java new file mode 100644 index 0000000..8886971 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/rpm685/reposervices/ResourceReservationRepoService.java @@ -0,0 +1,155 @@ +package org.etsi.osl.tmf.rpm685.reposervices; + +import java.util.HashSet; +import java.util.List; +import java.util.Optional; +import java.util.Set; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.common.model.service.ResourceRef; +import org.etsi.osl.tmf.rpm685.model.ApplicableTimePeriod; +import org.etsi.osl.tmf.rpm685.model.AppliedCapacityAmount; +import org.etsi.osl.tmf.rpm685.model.AvailabilityCheck; +import org.etsi.osl.tmf.rpm685.model.AvailabilityCheckCreate; +import org.etsi.osl.tmf.rpm685.model.Reservation; +import org.etsi.osl.tmf.rpm685.model.ReservationCreate; +import org.etsi.osl.tmf.rpm685.model.ReservationItem; +import org.etsi.osl.tmf.rpm685.model.ReservationMapper; +import org.etsi.osl.tmf.rpm685.model.ReservationStateType; +import org.etsi.osl.tmf.rpm685.model.ReservationUpdate; +import org.etsi.osl.tmf.rpm685.model.ResourceCapacityDemand; +import org.etsi.osl.tmf.rpm685.repo.ResourceReservationRepository; +import org.mapstruct.factory.Mappers; +import org.springframework.beans.factory.annotation.Autowired; +import jakarta.validation.Valid; + +/** + * @author ctranoris + * + */ +@org.springframework.stereotype.Service +public class ResourceReservationRepoService { + + private static final transient Log logger = LogFactory.getLog( ResourceReservationRepoService.class.getName()); + + @Autowired + ResourceReservationRepository resourceReservationRepository; + + @Autowired + ResourcePoolRepoService resourcePoolRepoService; + + + public Reservation addReservation(@Valid ReservationCreate body) { + logger.info("Will add Resource Reservation: " + body.getDescription() ); + + Reservation rp = new Reservation(); + ReservationMapper mapper = Mappers.getMapper( ReservationMapper.class); + rp = mapper.fromReservationDTO(body); + + rp.setReservationState( ReservationStateType.COMPLETED.toString() ); + + + for (ReservationItem ri : rp.getReservationItem()) { + AppliedCapacityAmount apCapAm = new AppliedCapacityAmount(); + apCapAm.setAppliedDemandAmount( ri.getResourceCapacity().getCapacityDemandAmount()); + apCapAm.getResource().addAll( ri.getResourceCapacity().getResourcePool().getResources() ); + + ResourceCapacityDemand resCap = new ResourceCapacityDemand(); + ApplicableTimePeriod applicableTimePeriod = new ApplicableTimePeriod(); + applicableTimePeriod.setFromDateTime( rp.getRequestedPeriodStartDateTime().minusSeconds(1) ); + applicableTimePeriod.setEndDateTime( rp.getRequestedPeriodEndDateTime().plusSeconds(1) ); + resCap.applicableTimePeriod( applicableTimePeriod ); + apCapAm.setResourceCapacityDemand(resCap); + ri.appliedCapacityAmount( apCapAm ); + + @Valid + AvailabilityCheckCreate acreq = new AvailabilityCheckCreate(); + ResourceCapacityDemand rcd = resCap; + acreq.setResourceCapacityDemand(rcd); + rcd.setResourcePool(ri.getResourceCapacity().getResourcePool()); + Set resourcesToReserve = new HashSet<>(); + resourcesToReserve.addAll( ri.getResourceCapacity().getResourcePool().getResources() ); + rcd.setResources( resourcesToReserve ); + + + AvailabilityCheck respAvailabilityCheck = resourcePoolRepoService.availabilityCheck(acreq ); + if ( respAvailabilityCheck.getAvailableResources().size() == 0 ) { + rp.setReservationState( ReservationStateType.REJECTED.toString() ); + return rp; + } + + } + + + + rp = this.resourceReservationRepository.save( rp ); + return rp; + } + + public Reservation findByUuid(String id) { + Optional optionalCat = this.resourceReservationRepository.findByUuid( id ); + return optionalCat + .orElse(null); + } + + public List findAll() { + return (List) this.resourceReservationRepository.findAll(); + } + + public Reservation updateReservation(String id, @Valid ReservationUpdate body) { + Reservation rp = this.findByUuid(id); + + + ReservationMapper mapper = Mappers.getMapper( ReservationMapper.class); + rp = mapper.updateReservation(rp, body) ; + + //re-calculate the reservation + for (ReservationItem ri : rp.getReservationItem()) { + AppliedCapacityAmount apCapAm = new AppliedCapacityAmount(); + apCapAm.setAppliedDemandAmount( ri.getResourceCapacity().getCapacityDemandAmount()); + apCapAm.getResource().addAll( ri.getResourceCapacity().getResourcePool().getResources() ); + + ResourceCapacityDemand resCap = new ResourceCapacityDemand(); + ApplicableTimePeriod applicableTimePeriod = new ApplicableTimePeriod(); + applicableTimePeriod.setFromDateTime( rp.getRequestedPeriodStartDateTime().minusSeconds(1) ); + applicableTimePeriod.setEndDateTime( rp.getRequestedPeriodEndDateTime().plusSeconds(1) ); + resCap.applicableTimePeriod( applicableTimePeriod ); + apCapAm.setResourceCapacityDemand(resCap); + ri.appliedCapacityAmount( apCapAm ); + + @Valid + AvailabilityCheckCreate acreq = new AvailabilityCheckCreate(); + ResourceCapacityDemand rcd = resCap; + acreq.setResourceCapacityDemand(rcd); + rcd.setResourcePool(ri.getResourceCapacity().getResourcePool()); + Set resourcesToReserve = new HashSet<>(); + resourcesToReserve.addAll( ri.getResourceCapacity().getResourcePool().getResources() ); + rcd.setResources( resourcesToReserve ); + + + AvailabilityCheck respAvailabilityCheck = resourcePoolRepoService.availabilityCheck(acreq ); + if ( respAvailabilityCheck.getAvailableResources().size() == 0 ) { + rp.setReservationState( ReservationStateType.REJECTED.toString() ); + return rp; + } + + } + + + rp = this.resourceReservationRepository.save( rp ); + return rp; + } + + + + public Void deleteByUuid(String id) { + Reservation s = this.findByUuid(id); + if (s == null) { + return null; + } + + this.resourceReservationRepository.delete( s ); + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/api/ApiException.java b/src/main/java/org/etsi/osl/tmf/sac640/api/ApiException.java new file mode 100644 index 0000000..28c3af6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/api/ApiException.java @@ -0,0 +1,29 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/api/ApiOriginFilter.java b/src/main/java/org/etsi/osl/tmf/sac640/api/ApiOriginFilter.java new file mode 100644 index 0000000..ba07009 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/api/ApiOriginFilter.java @@ -0,0 +1,50 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.api; + +import java.io.IOException; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +public class ApiOriginFilter implements jakarta.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/api/ApiResponseMessage.java b/src/main/java/org/etsi/osl/tmf/sac640/api/ApiResponseMessage.java new file mode 100644 index 0000000..c8c6763 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/api/ApiResponseMessage.java @@ -0,0 +1,88 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.api; + +import jakarta.xml.bind.annotation.XmlTransient; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +@jakarta.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/sac640/api/HubApi.java new file mode 100644 index 0000000..fbb32c0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/api/HubApi.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.sac640.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.sac640.model.EventSubscription; +import org.etsi.osl.tmf.sac640.model.EventSubscriptionInput; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +@Tag(name = "hub", description = "the hub API") +public interface HubApi { + + Logger log = LoggerFactory.getLogger(HubApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Register a listener", operationId = "registerListener", description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Subscribed" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Unregister a listener", operationId = "unregisterListener", description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method not allowed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/sac640/api/HubApiController.java new file mode 100644 index 0000000..4c0a93d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/api/HubApiController.java @@ -0,0 +1,55 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +@Controller("HubApiController640") +@RequestMapping("/ServiceActivationAndConfiguration/v3/") +public class HubApiController implements HubApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public HubApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/api/ListenerApi.java b/src/main/java/org/etsi/osl/tmf/sac640/api/ListenerApi.java new file mode 100644 index 0000000..7228589 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/api/ListenerApi.java @@ -0,0 +1,327 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.sac640.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.sac640.model.EventSubscription; +import org.etsi.osl.tmf.sac640.model.MonitorAttributeValueChangeNotification; +import org.etsi.osl.tmf.sac640.model.MonitorCreateNotification; +import org.etsi.osl.tmf.sac640.model.MonitorDeleteNotification; +import org.etsi.osl.tmf.sac640.model.MonitorStateChangeNotification; +import org.etsi.osl.tmf.sim638.model.ServiceAttributeValueChangeNotification; +import org.etsi.osl.tmf.sim638.model.ServiceCreateNotification; +import org.etsi.osl.tmf.sim638.model.ServiceDeleteNotification; +import org.etsi.osl.tmf.sim638.model.ServiceStateChangeNotification; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +@Tag(name = "listener", description = "the listener API") +public interface ListenerApi { + + Logger log = LoggerFactory.getLogger(ListenerApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Client listener for entity MonitorAttributeValueChangeNotification", operationId = "listenToMonitorAttributeValueChangeNotification", description = "Example of a client listener for receiving the notification MonitorAttributeValueChangeNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/monitorAttributeValueChangeNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToMonitorAttributeValueChangeNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody MonitorAttributeValueChangeNotification body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity MonitorCreateNotification", operationId = "listenToMonitorCreateNotification", description = "Example of a client listener for receiving the notification MonitorCreateNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/monitorCreateNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToMonitorCreateNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody MonitorCreateNotification body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity MonitorDeleteNotification", operationId = "listenToMonitorDeleteNotification", description = "Example of a client listener for receiving the notification MonitorDeleteNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/monitorDeleteNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToMonitorDeleteNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody MonitorDeleteNotification body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity MonitorStateChangeNotification", operationId = "listenToMonitorStateChangeNotification", description = "Example of a client listener for receiving the notification MonitorStateChangeNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/monitorStateChangeNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToMonitorStateChangeNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody MonitorStateChangeNotification body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ServiceAttributeValueChangeNotification", operationId = "listenToServiceAttributeValueChangeNotification", description = "Example of a client listener for receiving the notification ServiceAttributeValueChangeNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceAttributeValueChangeNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceAttributeValueChangeNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceAttributeValueChangeNotification body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ServiceCreateNotification", operationId = "listenToServiceCreateNotification", description = "Example of a client listener for receiving the notification ServiceCreateNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceCreateNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceCreateNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCreateNotification body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ServiceDeleteNotification", operationId = "listenToServiceDeleteNotification", description = "Example of a client listener for receiving the notification ServiceDeleteNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceDeleteNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceDeleteNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceDeleteNotification body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ServiceStateChangeNotification", operationId = "listenToServiceStateChangeNotification", description = "Example of a client listener for receiving the notification ServiceStateChangeNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceStateChangeNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceStateChangeNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceStateChangeNotification body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/api/ListenerApiController.java b/src/main/java/org/etsi/osl/tmf/sac640/api/ListenerApiController.java new file mode 100644 index 0000000..6c1aca5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/api/ListenerApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") + +@Controller("ListenerApiController640") +@RequestMapping("/ServiceActivationAndConfiguration/v3/") +public class ListenerApiController implements ListenerApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ListenerApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/api/MonitorApi.java b/src/main/java/org/etsi/osl/tmf/sac640/api/MonitorApi.java new file mode 100644 index 0000000..c4d1775 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/api/MonitorApi.java @@ -0,0 +1,130 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.sac640.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.sac640.model.Monitor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +@Tag(name = "monitor", description = "the monitor API") +public interface MonitorApi { + + Logger log = LoggerFactory.getLogger(MonitorApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "List or find Monitor objects", operationId = "listMonitor", description = "This operation list or find Monitor entities" , tags={ "monitor", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/monitor", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listMonitor(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"request\" : {\r\n \"method\" : \"method\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"header\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n } ],\r\n \"to\" : \"to\",\r\n \"body\" : \"body\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"response\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"header\" : [ null, null ],\r\n \"body\" : \"body\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"statusCode\" : \"statusCode\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"sourceHref\" : \"sourceHref\"\r\n}, {\r\n \"request\" : {\r\n \"method\" : \"method\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"header\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n } ],\r\n \"to\" : \"to\",\r\n \"body\" : \"body\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"response\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"header\" : [ null, null ],\r\n \"body\" : \"body\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"statusCode\" : \"statusCode\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"sourceHref\" : \"sourceHref\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default MonitorApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a Monitor by ID", operationId = "retrieveMonitor", description = "This operation retrieves a Monitor entity. Attribute selection is enabled for all first level attributes.", tags={ "monitor", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/monitor/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveMonitor(@Parameter(description = "Identifier of the Monitor",required=true) @PathVariable("id") String id +,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"request\" : {\r\n \"method\" : \"method\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"header\" : [ {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n }, {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : \"value\"\r\n } ],\r\n \"to\" : \"to\",\r\n \"body\" : \"body\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"response\" : {\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"header\" : [ null, null ],\r\n \"body\" : \"body\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"statusCode\" : \"statusCode\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"sourceHref\" : \"sourceHref\"\r\n}", Monitor.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default MonitorApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/api/MonitorApiController.java b/src/main/java/org/etsi/osl/tmf/sac640/api/MonitorApiController.java new file mode 100644 index 0000000..719408b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/api/MonitorApiController.java @@ -0,0 +1,53 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +@Controller +public class MonitorApiController implements MonitorApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public MonitorApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/api/NotFoundException.java b/src/main/java/org/etsi/osl/tmf/sac640/api/NotFoundException.java new file mode 100644 index 0000000..2994989 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/api/NotFoundException.java @@ -0,0 +1,29 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +public class NotFoundException extends ApiException { + private int code; + public NotFoundException (int code, String msg) { + super(code, msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/api/ServiceApiController.java b/src/main/java/org/etsi/osl/tmf/sac640/api/ServiceApiController.java new file mode 100644 index 0000000..e01805e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/api/ServiceApiController.java @@ -0,0 +1,41 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.api; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +@Controller("ServiceApiController640") +@RequestMapping("/ServiceActivationAndConfiguration/v3/") +public class ServiceApiController extends org.etsi.osl.tmf.sim638.api.ServiceApiController{ + + + + @Autowired + public ServiceApiController(ObjectMapper objectMapper, HttpServletRequest request) { + super(objectMapper, request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/model/Error.java b/src/main/java/org/etsi/osl/tmf/sac640/model/Error.java new file mode 100644 index 0000000..fa1825e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/model/Error.java @@ -0,0 +1,268 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx) + */ +@Schema(description = "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +public class Error { + @JsonProperty("code") + private Integer code = null; + + @JsonProperty("reason") + private String reason = null; + + @JsonProperty("message") + private String message = null; + + @JsonProperty("status") + private Integer status = null; + + @JsonProperty("referenceError") + private String referenceError = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Error code(Integer code) { + this.code = code; + return this; + } + + /** + * Application relevant detail, defined in the API or a common list. + * @return code + **/ + @Schema(description = "Application relevant detail, defined in the API or a common list.") + @NotNull + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public Error reason(String reason) { + this.reason = reason; + return this; + } + + /** + * Explanation of the reason for the error which can be shown to a client user. + * @return reason + **/ + @Schema(description = "Explanation of the reason for the error which can be shown to a client user.") + @NotNull + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public Error message(String message) { + this.message = message; + return this; + } + + /** + * More details and corrective actions related to the error which can be shown to a client user. + * @return message + **/ + @Schema(description = "More details and corrective actions related to the error which can be shown to a client user.") + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Error status(Integer status) { + this.status = status; + return this; + } + + /** + * HTTP Error code extension + * @return status + **/ + @Schema(description = "HTTP Error code extension") + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Error referenceError(String referenceError) { + this.referenceError = referenceError; + return this; + } + + /** + * URI of documentation describing the error. + * @return referenceError + **/ + @Schema(description = "URI of documentation describing the error.") + + public String getReferenceError() { + return referenceError; + } + + public void setReferenceError(String referenceError) { + this.referenceError = referenceError; + } + + public Error baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class. + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class.") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public Error schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Error type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name. + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name.") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Error error = (Error) o; + return Objects.equals(this.code, error.code) && + Objects.equals(this.reason, error.reason) && + Objects.equals(this.message, error.message) && + Objects.equals(this.status, error.status) && + Objects.equals(this.referenceError, error.referenceError) && + Objects.equals(this.baseType, error.baseType) && + Objects.equals(this.schemaLocation, error.schemaLocation) && + Objects.equals(this.type, error.type); + } + + @Override + public int hashCode() { + return Objects.hash(code, reason, message, status, referenceError, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Error {\n"); + + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" referenceError: ").append(toIndentedString(referenceError)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/sac640/model/EventSubscription.java new file mode 100644 index 0000000..e0e4e63 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/model/EventSubscription.java @@ -0,0 +1,148 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +public class EventSubscription { + @JsonProperty("id") + private String id = null; + + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscription id(String id) { + this.id = id; + return this; + } + + /** + * Id of the listener + * @return id + **/ + @Schema(description = "Id of the listener") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EventSubscription callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscription query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscription eventSubscription = (EventSubscription) o; + return Objects.equals(this.id, eventSubscription.id) && + Objects.equals(this.callback, eventSubscription.callback) && + Objects.equals(this.query, eventSubscription.query); + } + + @Override + public int hashCode() { + return Objects.hash(id, callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscription {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/model/EventSubscriptionInput.java b/src/main/java/org/etsi/osl/tmf/sac640/model/EventSubscriptionInput.java new file mode 100644 index 0000000..264377e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/model/EventSubscriptionInput.java @@ -0,0 +1,123 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +public class EventSubscriptionInput { + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscriptionInput callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscriptionInput query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscriptionInput eventSubscriptionInput = (EventSubscriptionInput) o; + return Objects.equals(this.callback, eventSubscriptionInput.callback) && + Objects.equals(this.query, eventSubscriptionInput.query); + } + + @Override + public int hashCode() { + return Objects.hash(callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscriptionInput {\n"); + + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/model/HeaderItem.java b/src/main/java/org/etsi/osl/tmf/sac640/model/HeaderItem.java new file mode 100644 index 0000000..9d6cad8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/model/HeaderItem.java @@ -0,0 +1,196 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * An item typically included in a request or response + */ +@Schema(description = "An item typically included in a request or response") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +public class HeaderItem { + @JsonProperty("name") + private String name = null; + + @JsonProperty("value") + private String value = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public HeaderItem name(String name) { + this.name = name; + return this; + } + + /** + * The name of the header item, e.g. locale + * @return name + **/ + @Schema(description = "The name of the header item, e.g. locale") + @NotNull + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public HeaderItem value(String value) { + this.value = value; + return this; + } + + /** + * The value of the header item, e.g. en-us + * @return value + **/ + @Schema(description = "The value of the header item, e.g. en-us") + @NotNull + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public HeaderItem baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public HeaderItem schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public HeaderItem type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HeaderItem headerItem = (HeaderItem) o; + return Objects.equals(this.name, headerItem.name) && + Objects.equals(this.value, headerItem.value) && + Objects.equals(this.baseType, headerItem.baseType) && + Objects.equals(this.schemaLocation, headerItem.schemaLocation) && + Objects.equals(this.type, headerItem.type); + } + + @Override + public int hashCode() { + return Objects.hash(name, value, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class HeaderItem {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/model/Monitor.java b/src/main/java/org/etsi/osl/tmf/sac640/model/Monitor.java new file mode 100644 index 0000000..9eaebb3 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/model/Monitor.java @@ -0,0 +1,292 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Monitoring of resources + */ +@Schema(description = "Monitoring of resources") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +public class Monitor { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("sourceHref") + private String sourceHref = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("request") + private Request request = null; + + @JsonProperty("response") + private Response response = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Monitor id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of an instance of the monitor. Required to be unique within the resource type. Used in URIs as the identifier for specific instances of a type + * @return id + **/ + @Schema(description = "Identifier of an instance of the monitor. Required to be unique within the resource type. Used in URIs as the identifier for specific instances of a type") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Monitor href(String href) { + this.href = href; + return this; + } + + /** + * reference to this monitor + * @return href + **/ + @Schema(description = "reference to this monitor") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public Monitor sourceHref(String sourceHref) { + this.sourceHref = sourceHref; + return this; + } + + /** + * The monitored resource href + * @return sourceHref + **/ + @Schema(description = "The monitored resource href") + + public String getSourceHref() { + return sourceHref; + } + + public void setSourceHref(String sourceHref) { + this.sourceHref = sourceHref; + } + + public Monitor state(String state) { + this.state = state; + return this; + } + + /** + * The Monitor state of the resource. InProgress, InError, Completed + * @return state + **/ + @Schema(description = "The Monitor state of the resource. InProgress, InError, Completed") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public Monitor request(Request request) { + this.request = request; + return this; + } + + /** + * Get request + * @return request + **/ + @Schema(description = "") + + @Valid + public Request getRequest() { + return request; + } + + public void setRequest(Request request) { + this.request = request; + } + + public Monitor response(Response response) { + this.response = response; + return this; + } + + /** + * Get response + * @return response + **/ + @Schema(description = "") + + @Valid + public Response getResponse() { + return response; + } + + public void setResponse(Response response) { + this.response = response; + } + + public Monitor baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public Monitor schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Monitor type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Monitor monitor = (Monitor) o; + return Objects.equals(this.id, monitor.id) && + Objects.equals(this.href, monitor.href) && + Objects.equals(this.sourceHref, monitor.sourceHref) && + Objects.equals(this.state, monitor.state) && + Objects.equals(this.request, monitor.request) && + Objects.equals(this.response, monitor.response) && + Objects.equals(this.baseType, monitor.baseType) && + Objects.equals(this.schemaLocation, monitor.schemaLocation) && + Objects.equals(this.type, monitor.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, sourceHref, state, request, response, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Monitor {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" sourceHref: ").append(toIndentedString(sourceHref)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" request: ").append(toIndentedString(request)).append("\n"); + sb.append(" response: ").append(toIndentedString(response)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorAttributeValueChangeEvent.java new file mode 100644 index 0000000..c1f57f2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorAttributeValueChangeEvent.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +public class MonitorAttributeValueChangeEvent { + @JsonProperty("monitor") + private Monitor monitor = null; + + public MonitorAttributeValueChangeEvent monitor(Monitor monitor) { + this.monitor = monitor; + return this; + } + + /** + * Get monitor + * @return monitor + **/ + @Schema(description = "") + + @Valid + public Monitor getMonitor() { + return monitor; + } + + public void setMonitor(Monitor monitor) { + this.monitor = monitor; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MonitorAttributeValueChangeEvent monitorAttributeValueChangeEvent = (MonitorAttributeValueChangeEvent) o; + return Objects.equals(this.monitor, monitorAttributeValueChangeEvent.monitor); + } + + @Override + public int hashCode() { + return Objects.hash(monitor); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MonitorAttributeValueChangeEvent {\n"); + + sb.append(" monitor: ").append(toIndentedString(monitor)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorAttributeValueChangeNotification.java b/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorAttributeValueChangeNotification.java new file mode 100644 index 0000000..d7ae820 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorAttributeValueChangeNotification.java @@ -0,0 +1,221 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +public class MonitorAttributeValueChangeNotification { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("resourcePath") + private String resourcePath = null; + + @JsonProperty("event") + private MonitorAttributeValueChangeEvent event = null; + + public MonitorAttributeValueChangeNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification + * @return eventId + **/ + @Schema(description = "The identifier of the notification") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public MonitorAttributeValueChangeNotification eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public MonitorAttributeValueChangeNotification eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification + * @return eventType + **/ + @Schema(description = "The type of the notification") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public MonitorAttributeValueChangeNotification fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification") + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public MonitorAttributeValueChangeNotification resourcePath(String resourcePath) { + this.resourcePath = resourcePath; + return this; + } + + /** + * The path identifying the resource object concerned by this notification + * @return resourcePath + **/ + @Schema(description = "The path identifying the resource object concerned by this notification") + + public String getResourcePath() { + return resourcePath; + } + + public void setResourcePath(String resourcePath) { + this.resourcePath = resourcePath; + } + + public MonitorAttributeValueChangeNotification event(MonitorAttributeValueChangeEvent event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public MonitorAttributeValueChangeEvent getEvent() { + return event; + } + + public void setEvent(MonitorAttributeValueChangeEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MonitorAttributeValueChangeNotification monitorAttributeValueChangeNotification = (MonitorAttributeValueChangeNotification) o; + return Objects.equals(this.eventId, monitorAttributeValueChangeNotification.eventId) && + Objects.equals(this.eventTime, monitorAttributeValueChangeNotification.eventTime) && + Objects.equals(this.eventType, monitorAttributeValueChangeNotification.eventType) && + Objects.equals(this.fieldPath, monitorAttributeValueChangeNotification.fieldPath) && + Objects.equals(this.resourcePath, monitorAttributeValueChangeNotification.resourcePath) && + Objects.equals(this.event, monitorAttributeValueChangeNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MonitorAttributeValueChangeNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorCreateEvent.java b/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorCreateEvent.java new file mode 100644 index 0000000..6c4f2d9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorCreateEvent.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +public class MonitorCreateEvent { + @JsonProperty("monitor") + private Monitor monitor = null; + + public MonitorCreateEvent monitor(Monitor monitor) { + this.monitor = monitor; + return this; + } + + /** + * Get monitor + * @return monitor + **/ + @Schema(description = "") + + @Valid + public Monitor getMonitor() { + return monitor; + } + + public void setMonitor(Monitor monitor) { + this.monitor = monitor; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MonitorCreateEvent monitorCreateEvent = (MonitorCreateEvent) o; + return Objects.equals(this.monitor, monitorCreateEvent.monitor); + } + + @Override + public int hashCode() { + return Objects.hash(monitor); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MonitorCreateEvent {\n"); + + sb.append(" monitor: ").append(toIndentedString(monitor)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorCreateNotification.java b/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorCreateNotification.java new file mode 100644 index 0000000..2efceaa --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorCreateNotification.java @@ -0,0 +1,221 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +public class MonitorCreateNotification { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("resourcePath") + private String resourcePath = null; + + @JsonProperty("event") + private MonitorCreateEvent event = null; + + public MonitorCreateNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification + * @return eventId + **/ + @Schema(description = "The identifier of the notification") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public MonitorCreateNotification eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public MonitorCreateNotification eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification + * @return eventType + **/ + @Schema(description = "The type of the notification") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public MonitorCreateNotification fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification") + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public MonitorCreateNotification resourcePath(String resourcePath) { + this.resourcePath = resourcePath; + return this; + } + + /** + * The path identifying the resource object concerned by this notification + * @return resourcePath + **/ + @Schema(description = "The path identifying the resource object concerned by this notification") + + public String getResourcePath() { + return resourcePath; + } + + public void setResourcePath(String resourcePath) { + this.resourcePath = resourcePath; + } + + public MonitorCreateNotification event(MonitorCreateEvent event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public MonitorCreateEvent getEvent() { + return event; + } + + public void setEvent(MonitorCreateEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MonitorCreateNotification monitorCreateNotification = (MonitorCreateNotification) o; + return Objects.equals(this.eventId, monitorCreateNotification.eventId) && + Objects.equals(this.eventTime, monitorCreateNotification.eventTime) && + Objects.equals(this.eventType, monitorCreateNotification.eventType) && + Objects.equals(this.fieldPath, monitorCreateNotification.fieldPath) && + Objects.equals(this.resourcePath, monitorCreateNotification.resourcePath) && + Objects.equals(this.event, monitorCreateNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MonitorCreateNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorDeleteEvent.java new file mode 100644 index 0000000..9fe5ca3 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorDeleteEvent.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +public class MonitorDeleteEvent { + @JsonProperty("monitor") + private Monitor monitor = null; + + public MonitorDeleteEvent monitor(Monitor monitor) { + this.monitor = monitor; + return this; + } + + /** + * Get monitor + * @return monitor + **/ + @Schema(description = "") + + @Valid + public Monitor getMonitor() { + return monitor; + } + + public void setMonitor(Monitor monitor) { + this.monitor = monitor; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MonitorDeleteEvent monitorDeleteEvent = (MonitorDeleteEvent) o; + return Objects.equals(this.monitor, monitorDeleteEvent.monitor); + } + + @Override + public int hashCode() { + return Objects.hash(monitor); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MonitorDeleteEvent {\n"); + + sb.append(" monitor: ").append(toIndentedString(monitor)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorDeleteNotification.java b/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorDeleteNotification.java new file mode 100644 index 0000000..1c7ac6e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorDeleteNotification.java @@ -0,0 +1,221 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +public class MonitorDeleteNotification { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("resourcePath") + private String resourcePath = null; + + @JsonProperty("event") + private MonitorDeleteEvent event = null; + + public MonitorDeleteNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification + * @return eventId + **/ + @Schema(description = "The identifier of the notification") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public MonitorDeleteNotification eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public MonitorDeleteNotification eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification + * @return eventType + **/ + @Schema(description = "The type of the notification") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public MonitorDeleteNotification fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification") + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public MonitorDeleteNotification resourcePath(String resourcePath) { + this.resourcePath = resourcePath; + return this; + } + + /** + * The path identifying the resource object concerned by this notification + * @return resourcePath + **/ + @Schema(description = "The path identifying the resource object concerned by this notification") + + public String getResourcePath() { + return resourcePath; + } + + public void setResourcePath(String resourcePath) { + this.resourcePath = resourcePath; + } + + public MonitorDeleteNotification event(MonitorDeleteEvent event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public MonitorDeleteEvent getEvent() { + return event; + } + + public void setEvent(MonitorDeleteEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MonitorDeleteNotification monitorDeleteNotification = (MonitorDeleteNotification) o; + return Objects.equals(this.eventId, monitorDeleteNotification.eventId) && + Objects.equals(this.eventTime, monitorDeleteNotification.eventTime) && + Objects.equals(this.eventType, monitorDeleteNotification.eventType) && + Objects.equals(this.fieldPath, monitorDeleteNotification.fieldPath) && + Objects.equals(this.resourcePath, monitorDeleteNotification.resourcePath) && + Objects.equals(this.event, monitorDeleteNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MonitorDeleteNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorStateChangeEvent.java new file mode 100644 index 0000000..4d86031 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorStateChangeEvent.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +public class MonitorStateChangeEvent { + @JsonProperty("monitor") + private Monitor monitor = null; + + public MonitorStateChangeEvent monitor(Monitor monitor) { + this.monitor = monitor; + return this; + } + + /** + * Get monitor + * @return monitor + **/ + @Schema(description = "") + + @Valid + public Monitor getMonitor() { + return monitor; + } + + public void setMonitor(Monitor monitor) { + this.monitor = monitor; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MonitorStateChangeEvent monitorStateChangeEvent = (MonitorStateChangeEvent) o; + return Objects.equals(this.monitor, monitorStateChangeEvent.monitor); + } + + @Override + public int hashCode() { + return Objects.hash(monitor); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MonitorStateChangeEvent {\n"); + + sb.append(" monitor: ").append(toIndentedString(monitor)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorStateChangeNotification.java b/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorStateChangeNotification.java new file mode 100644 index 0000000..6cd970e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/model/MonitorStateChangeNotification.java @@ -0,0 +1,221 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +public class MonitorStateChangeNotification { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("resourcePath") + private String resourcePath = null; + + @JsonProperty("event") + private MonitorStateChangeEvent event = null; + + public MonitorStateChangeNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification + * @return eventId + **/ + @Schema(description = "The identifier of the notification") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public MonitorStateChangeNotification eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public MonitorStateChangeNotification eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification + * @return eventType + **/ + @Schema(description = "The type of the notification") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public MonitorStateChangeNotification fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification") + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public MonitorStateChangeNotification resourcePath(String resourcePath) { + this.resourcePath = resourcePath; + return this; + } + + /** + * The path identifying the resource object concerned by this notification + * @return resourcePath + **/ + @Schema(description = "The path identifying the resource object concerned by this notification") + + public String getResourcePath() { + return resourcePath; + } + + public void setResourcePath(String resourcePath) { + this.resourcePath = resourcePath; + } + + public MonitorStateChangeNotification event(MonitorStateChangeEvent event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public MonitorStateChangeEvent getEvent() { + return event; + } + + public void setEvent(MonitorStateChangeEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MonitorStateChangeNotification monitorStateChangeNotification = (MonitorStateChangeNotification) o; + return Objects.equals(this.eventId, monitorStateChangeNotification.eventId) && + Objects.equals(this.eventTime, monitorStateChangeNotification.eventTime) && + Objects.equals(this.eventType, monitorStateChangeNotification.eventType) && + Objects.equals(this.fieldPath, monitorStateChangeNotification.fieldPath) && + Objects.equals(this.resourcePath, monitorStateChangeNotification.resourcePath) && + Objects.equals(this.event, monitorStateChangeNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MonitorStateChangeNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/model/Request.java b/src/main/java/org/etsi/osl/tmf/sac640/model/Request.java new file mode 100644 index 0000000..7605896 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/model/Request.java @@ -0,0 +1,254 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * A response to a request + */ +@Schema(description = "A response to a request") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +public class Request { + @JsonProperty("body") + private String body = null; + + @JsonProperty("method") + private String method = null; + + @JsonProperty("to") + private String to = null; + + @JsonProperty("header") + @Valid + private List header = new ArrayList<>(); + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Request body(String body) { + this.body = body; + return this; + } + + /** + * The body of the request. For example for an HTTP request might contain content of a form . + * @return body + **/ + @Schema(description = "The body of the request. For example for an HTTP request might contain content of a form .") + @NotNull + + public String getBody() { + return body; + } + + public void setBody(String body) { + this.body = body; + } + + public Request method(String method) { + this.method = method; + return this; + } + + /** + * The protocol of the request, e.g. http + * @return method + **/ + @Schema(description = "The protocol of the request, e.g. http") + + public String getMethod() { + return method; + } + + public void setMethod(String method) { + this.method = method; + } + + public Request to(String to) { + this.to = to; + return this; + } + + /** + * The target of the request, e.g. a URL for an HTTP request + * @return to + **/ + @Schema(description = "The target of the request, e.g. a URL for an HTTP request") + + public String getTo() { + return to; + } + + public void setTo(String to) { + this.to = to; + } + + public Request header(List header) { + this.header = header; + return this; + } + + public Request addHeaderItem(HeaderItem headerItem) { + this.header.add(headerItem); + return this; + } + + /** + * Items included in the header of the request. For example for an HTTP request might contain requested locale, basic authentication. + * @return header + **/ + @Schema(description = "Items included in the header of the request. For example for an HTTP request might contain requested locale, basic authentication.") + @NotNull + @Valid + @Size(min=1) public List getHeader() { + return header; + } + + public void setHeader(List header) { + this.header = header; + } + + public Request baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public Request schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Request type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Request request = (Request) o; + return Objects.equals(this.body, request.body) && + Objects.equals(this.method, request.method) && + Objects.equals(this.to, request.to) && + Objects.equals(this.header, request.header) && + Objects.equals(this.baseType, request.baseType) && + Objects.equals(this.schemaLocation, request.schemaLocation) && + Objects.equals(this.type, request.type); + } + + @Override + public int hashCode() { + return Objects.hash(body, method, to, header, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Request {\n"); + + sb.append(" body: ").append(toIndentedString(body)).append("\n"); + sb.append(" method: ").append(toIndentedString(method)).append("\n"); + sb.append(" to: ").append(toIndentedString(to)).append("\n"); + sb.append(" header: ").append(toIndentedString(header)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sac640/model/Response.java b/src/main/java/org/etsi/osl/tmf/sac640/model/Response.java new file mode 100644 index 0000000..df16c51 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sac640/model/Response.java @@ -0,0 +1,230 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sac640.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * A response to a request + */ +@Schema(description = "A response to a request") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-04-29T12:42:32.118457300+03:00[Europe/Athens]") +public class Response { + @JsonProperty("body") + private String body = null; + + @JsonProperty("statusCode") + private String statusCode = null; + + @JsonProperty("header") + @Valid + private List header = new ArrayList<>(); + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Response body(String body) { + this.body = body; + return this; + } + + /** + * The body of the response. For example for an HTTP response might contain HTML for rendering. + * @return body + **/ + @Schema(description = "The body of the response. For example for an HTTP response might contain HTML for rendering.") + @NotNull + + public String getBody() { + return body; + } + + public void setBody(String body) { + this.body = body; + } + + public Response statusCode(String statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * The status of the response. For example for an HTTP response would be codes such as 200, 400, etc. + * @return statusCode + **/ + @Schema(description = "The status of the response. For example for an HTTP response would be codes such as 200, 400, etc.") + + public String getStatusCode() { + return statusCode; + } + + public void setStatusCode(String statusCode) { + this.statusCode = statusCode; + } + + public Response header(List header) { + this.header = header; + return this; + } + + public Response addHeaderItem(HeaderItem headerItem) { + this.header.add(headerItem); + return this; + } + + /** + * Items included in the header of the response. For example for an HTTP response might contain negotiated locale. + * @return header + **/ + @Schema(description = "Items included in the header of the response. For example for an HTTP response might contain negotiated locale.") + @NotNull + @Valid + @Size(min=1) public List getHeader() { + return header; + } + + public void setHeader(List header) { + this.header = header; + } + + public Response baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public Response schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Response type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Response response = (Response) o; + return Objects.equals(this.body, response.body) && + Objects.equals(this.statusCode, response.statusCode) && + Objects.equals(this.header, response.header) && + Objects.equals(this.baseType, response.baseType) && + Objects.equals(this.schemaLocation, response.schemaLocation) && + Objects.equals(this.type, response.type); + } + + @Override + public int hashCode() { + return Objects.hash(body, statusCode, header, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Response {\n"); + + sb.append(" body: ").append(toIndentedString(body)).append("\n"); + sb.append(" statusCode: ").append(toIndentedString(statusCode)).append("\n"); + sb.append(" header: ").append(toIndentedString(header)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/api/ExportJobApi.java b/src/main/java/org/etsi/osl/tmf/scm633/api/ExportJobApi.java new file mode 100644 index 0000000..bda16fa --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/api/ExportJobApi.java @@ -0,0 +1,113 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.4). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.scm633.api; + +import java.util.List; +import org.etsi.osl.tmf.scm633.model.ExportJob; +import org.etsi.osl.tmf.scm633.model.ExportJobCreate; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Tag(name = "exportJob", description = "the exportJob API") +public interface ExportJobApi { + + @Operation(summary = "Creates a ExportJob", operationId = "createExportJob", description = "This operation creates a ExportJob entity.", tags={ "exportJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/exportJob", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity createExportJob(@Parameter(description = "The ExportJob to be created" ,required=true ) @Valid @RequestBody ExportJobCreate exportJob); + + + @Operation(summary = "Deletes a ExportJob", operationId = "deleteExportJob", description = "This operation deletes a ExportJob entity.", tags={ "exportJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/exportJob/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + ResponseEntity deleteExportJob(@Parameter(description = "Identifier of the ExportJob",required=true) @PathVariable("id") String id); + + + @Operation(summary = "List or find ExportJob objects", operationId = "listExportJob", description = "This operation list or find ExportJob entities" , tags={ "exportJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/exportJob", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity> listExportJob(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit); + + + @Operation(summary = "Retrieves a ExportJob by ID", operationId = "retrieveExportJob", description = "This operation retrieves a ExportJob entity. Attribute selection is enabled for all first level attributes.", tags={ "exportJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/exportJob/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity retrieveExportJob(@Parameter(description = "Identifier of the ExportJob",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields); + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/api/ExportJobApiController633.java b/src/main/java/org/etsi/osl/tmf/scm633/api/ExportJobApiController633.java new file mode 100644 index 0000000..c5ff4dc --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/api/ExportJobApiController633.java @@ -0,0 +1,105 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.api; + +import java.io.IOException; +import java.util.List; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.scm633.model.ExportJob; +import org.etsi.osl.tmf.scm633.model.ExportJobCreate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Parameter; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Controller("ExportJobApiController633") +@RequestMapping("/serviceCatalogManagement/v4/") +public class ExportJobApiController633 implements ExportJobApi { + + private static final Logger log = LoggerFactory.getLogger(ExportJobApiController633.class); + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ExportJobApiController633(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + public ResponseEntity createExportJob(@Parameter(description = "The ExportJob to be created" ,required=true ) @Valid @RequestBody ExportJobCreate exportJob) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity(objectMapper.readValue("{ \"@type\" : \"@type\", \"query\" : \"query\", \"errorLog\" : \"errorLog\", \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\", \"url\" : \"url\", \"path\" : \"path\", \"@baseType\" : \"@baseType\", \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"contentType\" : \"contentType\", \"status\" : \"status\"}", ExportJob.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity deleteExportJob(@Parameter(description = "Identifier of the ExportJob",required=true) @PathVariable("id") String id) { + String accept = request.getHeader("Accept"); + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity> listExportJob(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity>(objectMapper.readValue("[ { \"@type\" : \"@type\", \"query\" : \"query\", \"errorLog\" : \"errorLog\", \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\", \"url\" : \"url\", \"path\" : \"path\", \"@baseType\" : \"@baseType\", \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"contentType\" : \"contentType\", \"status\" : \"status\"}, { \"@type\" : \"@type\", \"query\" : \"query\", \"errorLog\" : \"errorLog\", \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\", \"url\" : \"url\", \"path\" : \"path\", \"@baseType\" : \"@baseType\", \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"contentType\" : \"contentType\", \"status\" : \"status\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity>(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity retrieveExportJob(@Parameter(description = "Identifier of the ExportJob",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity(objectMapper.readValue("{ \"@type\" : \"@type\", \"query\" : \"query\", \"errorLog\" : \"errorLog\", \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\", \"url\" : \"url\", \"path\" : \"path\", \"@baseType\" : \"@baseType\", \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\", \"id\" : \"id\", \"href\" : \"href\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"contentType\" : \"contentType\", \"status\" : \"status\"}", ExportJob.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/scm633/api/HubApi.java new file mode 100644 index 0000000..cd7d130 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/api/HubApi.java @@ -0,0 +1,77 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.4). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.scm633.api; + +import org.etsi.osl.tmf.scm633.model.EventSubscription; +import org.etsi.osl.tmf.scm633.model.EventSubscriptionInput; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Tag(name = "hub", description = "the hub API") +public interface HubApi { + + @Operation(summary = "Register a listener", operationId = "registerListener", description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Subscribed" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput data); + + + @Operation(summary = "Unregister a listener", operationId = "unregisterListener", description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method not allowed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id); + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/scm633/api/HubApiController.java new file mode 100644 index 0000000..2d7ec59 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/api/HubApiController.java @@ -0,0 +1,75 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.api; + +import java.io.IOException; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.scm633.model.EventSubscription; +import org.etsi.osl.tmf.scm633.model.EventSubscriptionInput; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import io.swagger.v3.oas.annotations.Parameter; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Controller("HubApiController633") +@RequestMapping("/serviceCatalogManagement/v4/") +public class HubApiController implements HubApi { + + private static final Logger log = LoggerFactory.getLogger(HubApiController.class); + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public HubApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + public ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput data) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity(objectMapper.readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id) { + String accept = request.getHeader("Accept"); + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/api/ImportJobApi.java b/src/main/java/org/etsi/osl/tmf/scm633/api/ImportJobApi.java new file mode 100644 index 0000000..905123a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/api/ImportJobApi.java @@ -0,0 +1,113 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.4). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.scm633.api; + +import java.util.List; +import org.etsi.osl.tmf.scm633.model.ImportJob; +import org.etsi.osl.tmf.scm633.model.ImportJobCreate; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Tag(name = "importJob", description = "the importJob API") +public interface ImportJobApi { + + @Operation(summary = "Creates a ImportJob", operationId = "createImportJob", description = "This operation creates a ImportJob entity.", tags={ "importJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/importJob", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity createImportJob(@Parameter(description = "The ImportJob to be created" ,required=true ) @Valid @RequestBody ImportJobCreate importJob); + + + @Operation(summary = "Deletes a ImportJob", operationId = "deleteImportJob", description = "This operation deletes a ImportJob entity.", tags={ "importJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/importJob/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + ResponseEntity deleteImportJob(@Parameter(description = "Identifier of the ImportJob",required=true) @PathVariable("id") String id); + + + @Operation(summary = "List or find ImportJob objects", operationId = "listImportJob", description = "This operation list or find ImportJob entities" , tags={ "importJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/importJob", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity> listImportJob(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit); + + + @Operation(summary = "Retrieves a ImportJob by ID", operationId = "retrieveImportJob", description = "This operation retrieves a ImportJob entity. Attribute selection is enabled for all first level attributes.", tags={ "importJob", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/importJob/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity retrieveImportJob(@Parameter(description = "Identifier of the ImportJob",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields); + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/api/ImportJobApiController.java b/src/main/java/org/etsi/osl/tmf/scm633/api/ImportJobApiController.java new file mode 100644 index 0000000..a8a40db --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/api/ImportJobApiController.java @@ -0,0 +1,105 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.api; + +import java.io.IOException; +import java.util.List; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.scm633.model.ImportJob; +import org.etsi.osl.tmf.scm633.model.ImportJobCreate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Parameter; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Controller("ImportJobApiController633") +@RequestMapping("/serviceCatalogManagement/v4/") +public class ImportJobApiController implements ImportJobApi { + + private static final Logger log = LoggerFactory.getLogger(ImportJobApiController.class); + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ImportJobApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + public ResponseEntity createImportJob(@Parameter(description = "The ImportJob to be created" ,required=true ) @Valid @RequestBody ImportJobCreate importJob) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity(objectMapper.readValue("{ \"path\" : \"path\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\", \"errorLog\" : \"errorLog\", \"id\" : \"id\", \"href\" : \"href\", \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"contentType\" : \"contentType\", \"url\" : \"url\", \"status\" : \"status\"}", ImportJob.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity deleteImportJob(@Parameter(description = "Identifier of the ImportJob",required=true) @PathVariable("id") String id) { + String accept = request.getHeader("Accept"); + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity> listImportJob(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity>(objectMapper.readValue("[ { \"path\" : \"path\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\", \"errorLog\" : \"errorLog\", \"id\" : \"id\", \"href\" : \"href\", \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"contentType\" : \"contentType\", \"url\" : \"url\", \"status\" : \"status\"}, { \"path\" : \"path\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\", \"errorLog\" : \"errorLog\", \"id\" : \"id\", \"href\" : \"href\", \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"contentType\" : \"contentType\", \"url\" : \"url\", \"status\" : \"status\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity>(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity retrieveImportJob(@Parameter(description = "Identifier of the ImportJob",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity(objectMapper.readValue("{ \"path\" : \"path\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"completionDate\" : \"2000-01-23T04:56:07.000+00:00\", \"errorLog\" : \"errorLog\", \"id\" : \"id\", \"href\" : \"href\", \"creationDate\" : \"2000-01-23T04:56:07.000+00:00\", \"@schemaLocation\" : \"http://example.com/aeiou\", \"contentType\" : \"contentType\", \"url\" : \"url\", \"status\" : \"status\"}", ImportJob.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/api/ListenerApi.java b/src/main/java/org/etsi/osl/tmf/scm633/api/ListenerApi.java new file mode 100644 index 0000000..32be677 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/api/ListenerApi.java @@ -0,0 +1,276 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.4). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.scm633.api; + +import org.etsi.osl.tmf.scm633.model.EventSubscription; +import org.etsi.osl.tmf.scm633.model.ServiceCandidateChangeNotification; +import org.etsi.osl.tmf.scm633.model.ServiceCandidateCreateNotification; +import org.etsi.osl.tmf.scm633.model.ServiceCandidateDeleteNotification; +import org.etsi.osl.tmf.scm633.model.ServiceCatalogBatchNotification; +import org.etsi.osl.tmf.scm633.model.ServiceCatalogChangeNotification; +import org.etsi.osl.tmf.scm633.model.ServiceCatalogCreateNotification; +import org.etsi.osl.tmf.scm633.model.ServiceCatalogDeleteNotification; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryChangeNotification; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryCreateNotification; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryDeleteNotification; +import org.etsi.osl.tmf.scm633.model.ServiceSpecificationChangeNotification; +import org.etsi.osl.tmf.scm633.model.ServiceSpecificationCreateNotification; +import org.etsi.osl.tmf.scm633.model.ServiceSpecificationDeleteNotification; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Tag(name = "listener", description = "the listener API") +public interface ListenerApi { + + @Operation(summary = "Client listener for entity ServiceCandidateChangeNotification", operationId = "listenToServiceCandidateChangeNotification", description = "Example of a client listener for receiving the notification ServiceCandidateChangeNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceCandidateChangeNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity listenToServiceCandidateChangeNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCandidateChangeNotification data); + + + @Operation(summary = "Client listener for entity ServiceCandidateCreateNotification", operationId = "listenToServiceCandidateCreateNotification", description = "Example of a client listener for receiving the notification ServiceCandidateCreateNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceCandidateCreateNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity listenToServiceCandidateCreateNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCandidateCreateNotification data); + + + @Operation(summary = "Client listener for entity ServiceCandidateDeleteNotification", operationId = "listenToServiceCandidateDeleteNotification", description = "Example of a client listener for receiving the notification ServiceCandidateDeleteNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceCandidateDeleteNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity listenToServiceCandidateDeleteNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCandidateDeleteNotification data); + + + @Operation(summary = "Client listener for entity ServiceCatalogBatchNotification", operationId = "listenToServiceCatalogBatchNotification", description = "Example of a client listener for receiving the notification ServiceCatalogBatchNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceCatalogBatchNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity listenToServiceCatalogBatchNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCatalogBatchNotification data); + + + @Operation(summary = "Client listener for entity ServiceCatalogChangeNotification", operationId = "listenToServiceCatalogChangeNotification", description = "Example of a client listener for receiving the notification ServiceCatalogChangeNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceCatalogChangeNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity listenToServiceCatalogChangeNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCatalogChangeNotification data); + + + @Operation(summary = "Client listener for entity ServiceCatalogCreateNotification", operationId = "listenToServiceCatalogCreateNotification", description = "Example of a client listener for receiving the notification ServiceCatalogCreateNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceCatalogCreateNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity listenToServiceCatalogCreateNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCatalogCreateNotification data); + + + @Operation(summary = "Client listener for entity ServiceCatalogDeleteNotification", operationId = "listenToServiceCatalogDeleteNotification", description = "Example of a client listener for receiving the notification ServiceCatalogDeleteNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceCatalogDeleteNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity listenToServiceCatalogDeleteNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCatalogDeleteNotification data); + + + @Operation(summary = "Client listener for entity ServiceCategoryChangeNotification", operationId = "listenToServiceCategoryChangeNotification", description = "Example of a client listener for receiving the notification ServiceCategoryChangeNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceCategoryChangeNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity listenToServiceCategoryChangeNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCategoryChangeNotification data); + + + @Operation(summary = "Client listener for entity ServiceCategoryCreateNotification", operationId = "listenToServiceCategoryCreateNotification", description = "Example of a client listener for receiving the notification ServiceCategoryCreateNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceCategoryCreateNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity listenToServiceCategoryCreateNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCategoryCreateNotification data); + + + @Operation(summary = "Client listener for entity ServiceCategoryDeleteNotification", operationId = "listenToServiceCategoryDeleteNotification", description = "Example of a client listener for receiving the notification ServiceCategoryDeleteNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceCategoryDeleteNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity listenToServiceCategoryDeleteNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCategoryDeleteNotification data); + + + @Operation(summary = "Client listener for entity ServiceSpecificationChangeNotification", operationId = "listenToServiceSpecificationChangeNotification", description = "Example of a client listener for receiving the notification ServiceSpecificationChangeNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceSpecificationChangeNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity listenToServiceSpecificationChangeNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceSpecificationChangeNotification data); + + + @Operation(summary = "Client listener for entity ServiceSpecificationCreateNotification", operationId = "listenToServiceSpecificationCreateNotification", description = "Example of a client listener for receiving the notification ServiceSpecificationCreateNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceSpecificationCreateNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity listenToServiceSpecificationCreateNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceSpecificationCreateNotification data); + + + @Operation(summary = "Client listener for entity ServiceSpecificationDeleteNotification", operationId = "listenToServiceSpecificationDeleteNotification", description = "Example of a client listener for receiving the notification ServiceSpecificationDeleteNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceSpecificationDeleteNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity listenToServiceSpecificationDeleteNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceSpecificationDeleteNotification data); + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/api/ListenerApiController.java b/src/main/java/org/etsi/osl/tmf/scm633/api/ListenerApiController.java new file mode 100644 index 0000000..912e48f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/api/ListenerApiController.java @@ -0,0 +1,249 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.api; + +import java.io.IOException; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.scm633.model.EventSubscription; +import org.etsi.osl.tmf.scm633.model.ServiceCandidateChangeNotification; +import org.etsi.osl.tmf.scm633.model.ServiceCandidateCreateNotification; +import org.etsi.osl.tmf.scm633.model.ServiceCandidateDeleteNotification; +import org.etsi.osl.tmf.scm633.model.ServiceCatalogBatchNotification; +import org.etsi.osl.tmf.scm633.model.ServiceCatalogChangeNotification; +import org.etsi.osl.tmf.scm633.model.ServiceCatalogCreateNotification; +import org.etsi.osl.tmf.scm633.model.ServiceCatalogDeleteNotification; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryChangeNotification; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryCreateNotification; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryDeleteNotification; +import org.etsi.osl.tmf.scm633.model.ServiceSpecificationChangeNotification; +import org.etsi.osl.tmf.scm633.model.ServiceSpecificationCreateNotification; +import org.etsi.osl.tmf.scm633.model.ServiceSpecificationDeleteNotification; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import io.swagger.v3.oas.annotations.Parameter; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Controller("ListenerApiController633") +@RequestMapping("/serviceCatalogManagement/v4/") +public class ListenerApiController implements ListenerApi { + + private static final Logger log = LoggerFactory.getLogger(ListenerApiController.class); + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ListenerApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + public ResponseEntity listenToServiceCandidateChangeNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCandidateChangeNotification data) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity(objectMapper.readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity listenToServiceCandidateCreateNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCandidateCreateNotification data) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity(objectMapper.readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity listenToServiceCandidateDeleteNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCandidateDeleteNotification data) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity(objectMapper.readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity listenToServiceCatalogBatchNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCatalogBatchNotification data) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity(objectMapper.readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity listenToServiceCatalogChangeNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCatalogChangeNotification data) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity(objectMapper.readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity listenToServiceCatalogCreateNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCatalogCreateNotification data) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity(objectMapper.readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity listenToServiceCatalogDeleteNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCatalogDeleteNotification data) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity(objectMapper.readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity listenToServiceCategoryChangeNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCategoryChangeNotification data) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity(objectMapper.readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity listenToServiceCategoryCreateNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCategoryCreateNotification data) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity(objectMapper.readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity listenToServiceCategoryDeleteNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCategoryDeleteNotification data) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity(objectMapper.readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity listenToServiceSpecificationChangeNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceSpecificationChangeNotification data) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity(objectMapper.readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity listenToServiceSpecificationCreateNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceSpecificationCreateNotification data) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity(objectMapper.readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + + public ResponseEntity listenToServiceSpecificationDeleteNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceSpecificationDeleteNotification data) { + String accept = request.getHeader("Accept"); + if (accept != null && accept.contains("application/json")) { + try { + return new ResponseEntity(objectMapper.readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCandidateApi.java b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCandidateApi.java new file mode 100644 index 0000000..df96d13 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCandidateApi.java @@ -0,0 +1,128 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.4). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.scm633.api; + +import java.util.List; +import org.etsi.osl.tmf.scm633.model.ServiceCandidate; +import org.etsi.osl.tmf.scm633.model.ServiceCandidateCreate; +import org.etsi.osl.tmf.scm633.model.ServiceCandidateUpdate; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Tag(name = "serviceCandidate", description = "the serviceCandidate API") +public interface ServiceCandidateApi { + + @Operation(summary = "Creates a ServiceCandidate", operationId = "createServiceCandidate", description = "This operation creates a ServiceCandidate entity.", tags={ "serviceCandidate", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceCandidate", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity createServiceCandidate(@Parameter(description = "The ServiceCandidate to be created" ,required=true ) @Valid @RequestBody ServiceCandidateCreate serviceCandidate); + + + @Operation(summary = "Deletes a ServiceCandidate", operationId = "deleteServiceCandidate", description = "This operation deletes a ServiceCandidate entity.", tags={ "serviceCandidate", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceCandidate/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + ResponseEntity deleteServiceCandidate(@Parameter(description = "Identifier of the ServiceCandidate",required=true) @PathVariable("id") String id); + + + @Operation(summary = "List or find ServiceCandidate objects", operationId = "listServiceCandidate", description = "This operation list or find ServiceCandidate entities" , tags={ "serviceCandidate", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceCandidate", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity> listServiceCandidate(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit); + + + @Operation(summary = "Updates partially a ServiceCandidate", operationId = "patchServiceCandidate", description = "This operation updates partially a ServiceCandidate entity.", tags={ "serviceCandidate", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceCandidate/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + ResponseEntity patchServiceCandidate(@Parameter(description = "Identifier of the ServiceCandidate",required=true) @PathVariable("id") String id,@Parameter(description = "The ServiceCandidate to be updated" ,required=true ) @Valid @RequestBody ServiceCandidateUpdate serviceCandidate); + + + @Operation(summary = "Retrieves a ServiceCandidate by ID", operationId = "retrieveServiceCandidate", description = "This operation retrieves a ServiceCandidate entity. Attribute selection is enabled for all first level attributes.", tags={ "serviceCandidate", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceCandidate/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity retrieveServiceCandidate(@Parameter(description = "Identifier of the ServiceCandidate",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields); + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCandidateApiController.java b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCandidateApiController.java new file mode 100644 index 0000000..a5ec332 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCandidateApiController.java @@ -0,0 +1,111 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.api; + +import java.util.List; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.scm633.model.ServiceCandidate; +import org.etsi.osl.tmf.scm633.model.ServiceCandidateCreate; +import org.etsi.osl.tmf.scm633.model.ServiceCandidateUpdate; +import org.etsi.osl.tmf.scm633.reposervices.CandidateRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Parameter; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Controller +@RequestMapping("/serviceCatalogManagement/v4/") +public class ServiceCandidateApiController implements ServiceCandidateApi { + + private static final Logger log = LoggerFactory.getLogger(ServiceCandidateApiController.class); + + private final HttpServletRequest request; + + @Autowired + CandidateRepoService candidateRepoService; + + + @org.springframework.beans.factory.annotation.Autowired + public ServiceCandidateApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.request = request; + } + + public ResponseEntity createServiceCandidate(@Parameter(description = "The ServiceCandidate to be created" ,required=true ) @Valid @RequestBody ServiceCandidateCreate serviceCandidate) { + try { + + ServiceCandidate c = candidateRepoService.addServiceCandidate( serviceCandidate ); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + public ResponseEntity deleteServiceCandidate(@Parameter(description = "Identifier of the ServiceCandidate",required=true) @PathVariable("id") String id) { + try { + + return new ResponseEntity( candidateRepoService.deleteById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + public ResponseEntity> listServiceCandidate(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + String accept = request.getHeader("Accept"); + try { + return new ResponseEntity>( candidateRepoService.findAll() , HttpStatus.OK); + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + public ResponseEntity patchServiceCandidate(@Parameter(description = "Identifier of the ServiceCandidate",required=true) @PathVariable("id") String id,@Parameter(description = "The ServiceCandidate to be updated" ,required=true ) @Valid @RequestBody ServiceCandidateUpdate serviceCandidate) { + + ServiceCandidate c = candidateRepoService.updateCandidate( id, serviceCandidate ); + + return new ResponseEntity(c, HttpStatus.OK); + } + + public ResponseEntity retrieveServiceCandidate(@Parameter(description = "Identifier of the ServiceCandidate",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + try { + + return new ResponseEntity( candidateRepoService.findById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCatalogApi.java b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCatalogApi.java new file mode 100644 index 0000000..2e1bc18 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCatalogApi.java @@ -0,0 +1,128 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.4). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.scm633.api; + +import java.util.List; +import org.etsi.osl.tmf.scm633.model.ServiceCatalog; +import org.etsi.osl.tmf.scm633.model.ServiceCatalogCreate; +import org.etsi.osl.tmf.scm633.model.ServiceCatalogUpdate; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Tag(name = "serviceCatalog", description = "the serviceCatalog API") +public interface ServiceCatalogApi { + + @Operation(summary = "Creates a ServiceCatalog", operationId = "createServiceCatalog", description = "This operation creates a ServiceCatalog entity.", tags={ "serviceCatalog", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceCatalog", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity createServiceCatalog(@Parameter(description = "The ServiceCatalog to be created" ,required=true ) @Valid @RequestBody ServiceCatalogCreate serviceCatalog); + + + @Operation(summary = "Deletes a ServiceCatalog", operationId = "deleteServiceCatalog", description = "This operation deletes a ServiceCatalog entity.", tags={ "serviceCatalog", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceCatalog/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + ResponseEntity deleteServiceCatalog(@Parameter(description = "Identifier of the ServiceCatalog",required=true) @PathVariable("id") String id); + + + @Operation(summary = "List or find ServiceCatalog objects", operationId = "listServiceCatalog", description = "This operation list or find ServiceCatalog entities" , tags={ "serviceCatalog", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceCatalog", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity> listServiceCatalog(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit); + + + @Operation(summary = "Updates partially a ServiceCatalog", operationId = "patchServiceCatalog", description = "This operation updates partially a ServiceCatalog entity.", tags={ "serviceCatalog", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceCatalog/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + ResponseEntity patchServiceCatalog(@Parameter(description = "Identifier of the ServiceCatalog",required=true) @PathVariable("id") String id,@Parameter(description = "The ServiceCatalog to be updated" ,required=true ) @Valid @RequestBody ServiceCatalogUpdate serviceCatalog); + + + @Operation(summary = "Retrieves a ServiceCatalog by ID", operationId = "retrieveServiceCatalog", description = "This operation retrieves a ServiceCatalog entity. Attribute selection is enabled for all first level attributes.", tags={ "serviceCatalog", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceCatalog/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity retrieveServiceCatalog(@Parameter(description = "Identifier of the ServiceCatalog",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields); + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCatalogApiController.java b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCatalogApiController.java new file mode 100644 index 0000000..92a7d51 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCatalogApiController.java @@ -0,0 +1,108 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.api; + +import java.util.List; +import org.etsi.osl.tmf.scm633.model.ServiceCatalog; +import org.etsi.osl.tmf.scm633.model.ServiceCatalogCreate; +import org.etsi.osl.tmf.scm633.model.ServiceCatalogUpdate; +import org.etsi.osl.tmf.scm633.reposervices.CatalogRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Parameter; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Controller +@RequestMapping("/serviceCatalogManagement/v4/") +public class ServiceCatalogApiController implements ServiceCatalogApi { + + private static final Logger log = LoggerFactory.getLogger(ServiceCatalogApiController.class); + + + + @Autowired + CatalogRepoService catalogRepoService; + + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity createServiceCatalog( + @Parameter(description = "The ServiceCatalog to be created" ,required=true ) @Valid @RequestBody ServiceCatalogCreate serviceCatalog) { + try { + + ServiceCatalog c = catalogRepoService.addCatalog( serviceCatalog ); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity deleteServiceCatalog(@Parameter(description = "Identifier of the ServiceCatalog",required=true) @PathVariable("id") String id) { + try { + + return new ResponseEntity( catalogRepoService.deleteById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + public ResponseEntity> listServiceCatalog(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + + try { + return new ResponseEntity>( catalogRepoService.findAll() , HttpStatus.OK); + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity patchServiceCatalog(@Parameter(description = "Identifier of the ServiceCatalog",required=true) @PathVariable("id") String id,@Parameter(description = "The ServiceCatalog to be updated" ,required=true ) @Valid @RequestBody ServiceCatalogUpdate serviceCatalog) { + + ServiceCatalog c = catalogRepoService.updateCatalog( id, serviceCatalog ); + + return new ResponseEntity(c, HttpStatus.OK); + } + + public ResponseEntity retrieveServiceCatalog(@Parameter(description = "Identifier of the ServiceCatalog",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + try { + + return new ResponseEntity( catalogRepoService.findById( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCategoryApi.java b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCategoryApi.java new file mode 100644 index 0000000..4f15500 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCategoryApi.java @@ -0,0 +1,129 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.4). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.scm633.api; + +import java.util.List; +import org.etsi.osl.tmf.scm633.model.ServiceCategory; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryCreate; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryUpdate; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Tag(name = "serviceCategory", description = "the serviceCategory API") +public interface ServiceCategoryApi { + + @Operation(summary = "Creates a ServiceCategory", operationId = "createServiceCategory", description = "This operation creates a ServiceCategory entity.", tags={ "serviceCategory", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceCategory", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity createServiceCategory(@Parameter(description = "The ServiceCategory to be created" ,required=true ) @Valid @RequestBody ServiceCategoryCreate serviceCategory); + + + @Operation(summary = "Deletes a ServiceCategory", operationId = "deleteServiceCategory", description = "This operation deletes a ServiceCategory entity.", tags={ "serviceCategory", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceCategory/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + ResponseEntity deleteServiceCategory(@Parameter(description = "Identifier of the ServiceCategory",required=true) @PathVariable("id") String id); + + + @Operation(summary = "List or find ServiceCategory objects", operationId = "listServiceCategory", description = "This operation list or find ServiceCategory entities" , tags={ "serviceCategory", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "413", description = "Not modifed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceCategory", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity> listServiceCategory(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit); + + + @Operation(summary = "Updates partially a ServiceCategory", operationId = "patchServiceCategory", description = "This operation updates partially a ServiceCategory entity.", tags={ "serviceCategory", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceCategory/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + ResponseEntity patchServiceCategory(@Parameter(description = "Identifier of the ServiceCategory",required=true) @PathVariable("id") String id,@Parameter(description = "The ServiceCategory to be updated" ,required=true ) @Valid @RequestBody ServiceCategoryUpdate serviceCategory); + + + @Operation(summary = "Retrieves a ServiceCategory by ID", operationId = "retrieveServiceCategory", description = "This operation retrieves a ServiceCategory entity. Attribute selection is enabled for all first level attributes.", tags={ "serviceCategory", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceCategory/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity retrieveServiceCategory(@Parameter(description = "Identifier of the ServiceCategory",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields); + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCategoryApiController.java b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCategoryApiController.java new file mode 100644 index 0000000..0b745f2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceCategoryApiController.java @@ -0,0 +1,138 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.api; + +import java.util.List; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.scm633.model.ServiceCategory; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryCreate; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryUpdate; +import org.etsi.osl.tmf.scm633.reposervices.CategoryRepoService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Parameter; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Controller +@RequestMapping("/serviceCatalogManagement/v4/") +public class ServiceCategoryApiController implements ServiceCategoryApi { + + private static final Logger log = LoggerFactory.getLogger(ServiceCategoryApiController.class); + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @Autowired + CategoryRepoService categoryRepoService; + + @org.springframework.beans.factory.annotation.Autowired + public ServiceCategoryApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity createServiceCategory( + @Parameter(description = "The ServiceCategory to be created", required = true) @Valid @RequestBody ServiceCategoryCreate serviceCategory) { + + try { + + ServiceCategory c = categoryRepoService.addCategory(serviceCategory); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity deleteServiceCategory( + @Parameter(description = "Identifier of the ServiceCategory", required = true) @PathVariable("id") String id) { + + try { + if ( categoryRepoService.deleteById(id) ) { + return new ResponseEntity(HttpStatus.OK); + + } else { + return new ResponseEntity(HttpStatus.NOT_MODIFIED ); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + public ResponseEntity> listServiceCategory( + @Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + + try { + return new ResponseEntity>(categoryRepoService.findAll(), HttpStatus.OK); + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity patchServiceCategory( + @Parameter(description = "Identifier of the ServiceCategory", required = true) @PathVariable("id") String id, + @Parameter(description = "The ServiceCategory to be updated", required = true) @Valid @RequestBody ServiceCategoryUpdate serviceCategory) { + + ServiceCategory c = categoryRepoService.updateCategory(id, serviceCategory); + + return new ResponseEntity(c, HttpStatus.OK); + } + + public ResponseEntity retrieveServiceCategory( + @Parameter(description = "Identifier of the ServiceCategory", required = true) @PathVariable("id") String id, + @Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + + try { + + return new ResponseEntity(categoryRepoService.findByUuid(id), HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceSpecificationApi.java b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceSpecificationApi.java new file mode 100644 index 0000000..bb2e27f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceSpecificationApi.java @@ -0,0 +1,345 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.4). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.scm633.api; + +import java.util.List; +import java.util.Map; +import org.etsi.osl.sd.model.ServiceDescriptor; +import org.etsi.osl.tmf.common.model.Attachment; +import org.etsi.osl.tmf.scm633.model.ServiceSpecification; +import org.etsi.osl.tmf.scm633.model.ServiceSpecificationCreate; +import org.etsi.osl.tmf.scm633.model.ServiceSpecificationUpdate; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public interface ServiceSpecificationApi { + + @Operation(summary = "Creates a ServiceSpecification", operationId = "createServiceSpecification", description = "This operation creates a ServiceSpecification entity.", tags={ "serviceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceSpecification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + ResponseEntity createServiceSpecification(@Parameter(description = "The ServiceSpecification to be created" ,required=true ) @Valid @RequestBody ServiceSpecificationCreate serviceSpecification); + + + @Operation(summary = "Deletes a ServiceSpecification", operationId = "deleteServiceSpecification", description = "This operation deletes a ServiceSpecification entity.", tags={ "serviceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceSpecification/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + ResponseEntity deleteServiceSpecification(@Parameter(description = "Identifier of the ServiceSpecification",required=true) @PathVariable("id") String id); + + + @Operation(summary = "List or find ServiceSpecification objects", operationId = "listServiceSpecification", description = "This operation list or find ServiceSpecification entities" , tags={ "serviceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceSpecification", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity> listServiceSpecification(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit, + @Parameter( hidden = true) @Valid @RequestParam Map allParams); + + + @Operation(summary = "Updates partially a ServiceSpecification", operationId = "patchServiceSpecification", description = "This operation updates partially a ServiceSpecification entity.", tags={ "serviceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceSpecification/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + ResponseEntity patchServiceSpecification(@Parameter(description = "Identifier of the ServiceSpecification",required=true) @PathVariable("id") String id,@Parameter(description = "The ServiceSpecification to be updated" ,required=true ) @Valid @RequestBody ServiceSpecificationUpdate serviceSpecification); + + + @Operation(summary = "Retrieves a ServiceSpecification by ID", operationId = "retrieveServiceSpecification", description = "This operation retrieves a ServiceSpecification entity. Attribute selection is enabled for all first level attributes.", tags={ "serviceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceSpecification/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity retrieveServiceSpecification(@Parameter(description = "Identifier of the ServiceSpecification",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields); + + @Operation(summary = "Clones a ServiceSpecification", operationId = "cloneServiceSpecification", description = "This operation clones a ServiceSpecification entity. The response is the cloned spec", tags={ "serviceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Cloned" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceSpecification/{id}/clone", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity cloneServiceSpecification(@Parameter(description = "Identifier of the ServiceSpecification to clone",required=true) @PathVariable("id") String id ); + + @Operation(summary = "Clones a GST ServiceSpecification", operationId = "cloneGSTServiceSpecification", + description = "This operation clones a ServiceSpecification GST entity. The response is the cloned spec", tags={ "serviceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Cloned" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceSpecification/cloneGST", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity cloneGSTServiceSpecification( + @Parameter(description = "A name of the cloned GST") @RequestParam(value="serviceName", required=true) String serviceName); + + @Operation(summary = "Clones a VINNI ServiceSpecification", operationId = "cloneVINNIServiceSpecification", + description = "This operation clones a ServiceSpecification 5G-VINNI entity. The response is the cloned spec", tags={ "serviceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Cloned" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceSpecification/cloneVINNI", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity cloneVINNIServiceSpecification( + @Parameter(description = "A name of the cloned VINNI Template") @RequestParam( value="serviceName",required=true) String serviceName, + @Parameter(description = "If true adds a Service Topology Spec in the Bundle") @RequestParam( value="addServiceTopology",required=true) Boolean addServiceTopology, + @Parameter(description = "If true adds a Service Requirements Spec in the Bundle") @RequestParam( value="addServiceRequirements",required=true) Boolean addServiceRequirements, + @Parameter(description = "If true adds a Service Exposure Level1 Spec in the Bundle") @RequestParam( value="addServiceExposureLevel1",required=true) Boolean addServiceExposureLevel1, + @Parameter(description = "If true adds a Service Exposure Level2 Spec in the Bundle") @RequestParam( value="addServiceExposureLevel2",required=true) Boolean addServiceExposureLevel2, + @Parameter(description = "If true adds a Service Exposure Level3 Spec in the Bundle") @RequestParam( value="addServiceExposureLevel3",required=true) Boolean addServiceExposureLevel3, + @Parameter(description = "If true adds a Service Exposure Level4 Spec in the Bundle" ) @RequestParam( value="addServiceExposureLevel4",required=true) Boolean addServiceExposureLevel4, + @Parameter(description = "If true adds a Service Monitoring Spec in the Bundle" ) @RequestParam( value="addServiceMonitoring",required=true) Boolean addServiceMonitoring, + @Parameter(description = "If true adds a Service Testing Spec in the Bundle" ) @RequestParam( value="addServiceTesting",required=true) Boolean addServiceTesting, + @Parameter(description = "If true adds a Service 3rd party VNF Spec in the Bundle" ) @RequestParam( value="addServiceVNF",required=true) Boolean addServiceVNF, + @Parameter(description = "If true adds a Service 3rd party NSD Spec in the Bundle" ) @RequestParam( value="addServiceNSD",required=true) Boolean addServiceNSD); + + + @Operation(summary = "Creates a ServiceSpecification from an NSD id. It retreives the NSD from the NSD/VNF catalog", operationId = "createServiceSpecificationFromNSDID", + description = "This operation creates a ServiceSpecification from an NSD id. It retreives the NSD from the NSD/VNF catalog. " + + "The response is the cloned spec", tags={ "serviceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceSpecification/specFromNSDID/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity specFromNSDID( @Parameter(description = "Identifier of the NSD id from the NSD/VNF catalog",required=true) @PathVariable("id") String id ); + + @Operation(summary = "Adds an attachment to a ServiceSpecification", operationId = "addAttachmentToServiceSpecification", + description = "This operation adds an attachment to a ServiceSpecification and updates partially a ServiceSpecification entity", tags={ "serviceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceSpecification/{id}/attachment", + produces = { "application/json;charset=utf-8" }, + consumes = { "multipart/form-data" }, + method = RequestMethod.POST) + ResponseEntity addAttachmentToServiceSpecification( + @Parameter(description = "Identifier of the ServiceSpecification",required=true) @PathVariable("id") String id, + //@Parameter(description = "The Attachment object to be added" ,required=false ) @Valid @ModelAttribute("attachment") Attachment attachment, + @Parameter(description = "The Attachment file to be added" ,required=false, name = "afile" ) @Valid MultipartFile file, + HttpServletRequest request); + + @Operation(summary = "Get an attachment", operationId = "getAttachment", + description = "This operation gets an attachment", tags={ "serviceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceSpecification/{id}/attachment/{attid}", + produces = MediaType.ALL_VALUE, + method = RequestMethod.GET) + ResponseEntity getAttachment( + @Parameter(description = "Identifier of the ServiceSpecification",required=true) @PathVariable("id") String id, + @Parameter(description = "Identifier of the Attachment",required=true) @PathVariable("attid") String attid); + + + + @Operation(summary = "Get an attachment with filename", operationId = "getAttachmentWithFilename", + description = "This operation gets an attachment", tags={ "serviceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceSpecification/{id}/attachment/{attid}/{afilename}", + produces = MediaType.ALL_VALUE , + method = RequestMethod.GET) + ResponseEntity getAttachmentWithFilename( + @Parameter(description = "Identifier of the ServiceSpecification",required=true) @PathVariable("id") String id, + @Parameter(description = "Identifier of the Attachment",required=true) @PathVariable("attid") String attid, + @Parameter(description = "Identifier of the Filename",required=true) @PathVariable("afilename") String afilename); + + + + @Operation(summary = "Retrieves a ServiceDescriptor by ServiceSpecification ID", operationId = "retrieveServiceSpecificationDescriptor", description = "This operation retrieves a Service Descriptor entity. Attribute selection is enabled for all first level attributes.", tags={ "serviceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceSpecification/{id}/sd", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity retrieveServiceSpecificationDescriptor(@Parameter(description = "Identifier of the ServiceSpecification",required=true) @PathVariable("id") String id); + + @Operation(summary = "Creates a ServiceSpecification from an ServiceTestSpecification id. It retreives the ServicTestSpecification from the ServiceTestSpecification catalog", operationId = "createServiceSpecificationFromServiceTestSpecification", + description = "This operation creates a ServiceSpecification from a ServiceTestSpecification id. It retreives the ServiceTestSpecification from the ServiceTestSpecification catalog. " + + "The response is the Service Spec", tags={ "serviceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceSpecification/specFromTestSpec/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity specFromTestSpec( @Parameter(description = "Identifier of the ServiceTestSpecification id from the ServiceTestSpecification catalog",required=true) @PathVariable("id") String id ); + + + @Operation(summary = "Creates a Resource Facing ServiceSpecification from a ResourceSpecification id. It retreives the ResourceSpecification from the ResourceSpecification catalog", + operationId = "createServiceSpecificationFromResourceSpecification", + description = "This operation creates a Resource Facing ServiceSpecification from a ResourceSpecification id. It retreives the ResourceSpecification from the ResourceSpecification catalog. " + + "The response is the Service Spec", tags={ "serviceSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceSpecification/specFromResourceSpec/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + ResponseEntity specFromResourceSpec( @Parameter(description = "Identifier of the ResourceSpecification id from the ResourceSpecification catalog",required=true) @PathVariable("id") String id ); + + + + @Operation(summary = "Get a SVG image with specification relationship graph", operationId = "getImageSpecificationRelationshipGraph", + description = "This operation returns a SVG image with specification relationship graph", tags={ "serviceSpecification", }) + @ApiResponses(value = { + + @ApiResponse(responseCode = "302", description = "Success" ), + //@ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceSpecification/{id}/relationship_graph", + produces = MediaType.ALL_VALUE , + method = RequestMethod.GET) + ResponseEntity getImageSpecificationRelationshipGraph( + @Parameter(description = "Identifier of the ServiceSpecification",required=true) @PathVariable("id") String id); +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceSpecificationApiController.java b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceSpecificationApiController.java new file mode 100644 index 0000000..cd488ba --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceSpecificationApiController.java @@ -0,0 +1,381 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.api; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.net.URI; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.commons.io.IOUtils; +import org.etsi.osl.centrallog.client.CLevel; +import org.etsi.osl.centrallog.client.CentralLogger; +import org.etsi.osl.sd.model.ServiceDescriptor; +import org.etsi.osl.tmf.common.model.Attachment; +import org.etsi.osl.tmf.common.model.UserPartRoleType; +import org.etsi.osl.tmf.scm633.model.ServiceSpecification; +import org.etsi.osl.tmf.scm633.model.ServiceSpecificationCreate; +import org.etsi.osl.tmf.scm633.model.ServiceSpecificationUpdate; +import org.etsi.osl.tmf.scm633.reposervices.ServiceSpecificationRepoService; +import org.etsi.osl.tmf.util.AddUserAsOwnerToRelatedParties; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.CacheControl; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Controller +@RequestMapping("/serviceCatalogManagement/v4/") +@Tag(name = "serviceSpecification", description = "the serviceSpecification API") +public class ServiceSpecificationApiController implements ServiceSpecificationApi { + + private static final Logger log = LoggerFactory.getLogger(ServiceSpecificationApiController.class); + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @Autowired + ServiceSpecificationRepoService serviceSpecificationRepoService; + + + @Value("${spring.application.name}") + private String compname; + + + @Value("${kroki.serverurl}") + private String KROKI_SERVERURL = ""; + + @Autowired + private CentralLogger centralLogger; + + @org.springframework.beans.factory.annotation.Autowired + public ServiceSpecificationApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity createServiceSpecification( + @Parameter(description = "The ServiceSpecification to be created", required = true) @Valid @RequestBody ServiceSpecificationCreate serviceSpecification) { + try { + + serviceSpecification.setRelatedParty(AddUserAsOwnerToRelatedParties.addUser( + SecurityContextHolder.getContext().getAuthentication().getName(), + SecurityContextHolder.getContext().getAuthentication().getName(), + UserPartRoleType.OWNER, + "", + serviceSpecification.getRelatedParty())); + + ServiceSpecification c = serviceSpecificationRepoService.addServiceSpecification(serviceSpecification); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity deleteServiceSpecification( + @Parameter(description = "Identifier of the ServiceSpecification", required = true) @PathVariable("id") String id) { + try { + + return new ResponseEntity(serviceSpecificationRepoService.deleteByUuid(id), HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + public ResponseEntity> listServiceSpecification( + @Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit, + @Parameter(hidden = true) @Valid @RequestParam Map allParams) { + + try { + if (allParams != null) { + allParams.remove("fields"); + allParams.remove("offset"); + allParams.remove("limit"); + } else { + allParams = new HashMap<>(); + } + if ((fields == null) && (allParams.size() == 0)) { + + String myfields = "lastUpdate,lifecycleStatus"; + return new ResponseEntity>( + serviceSpecificationRepoService.findAll( myfields, allParams), HttpStatus.OK); +// return new ResponseEntity>(serviceSpecificationRepoService.findAll(), +// HttpStatus.OK); + + + } else { + + + return new ResponseEntity>( + serviceSpecificationRepoService.findAll(fields, allParams), HttpStatus.OK); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity patchServiceSpecification( + @Parameter(description = "Identifier of the ServiceSpecification", required = true) @PathVariable("id") String id, + @Parameter(description = "The ServiceSpecification to be updated", required = true) @Valid @RequestBody ServiceSpecificationUpdate serviceSpecification) { + + ServiceSpecification c = serviceSpecificationRepoService.updateServiceSpecification(id, serviceSpecification); + + return new ResponseEntity(c, HttpStatus.OK); + } + + public ResponseEntity retrieveServiceSpecification( + @Parameter(description = "Identifier of the ServiceSpecification", required = true) @PathVariable("id") String id, + @Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + try { + + Object attr = request.getSession().getAttribute("SPRING_SECURITY_CONTEXT"); + + if ( attr!=null) { + SecurityContextHolder.setContext( (SecurityContext) attr ); + } + if ( SecurityContextHolder.getContext().getAuthentication() != null ) { + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + centralLogger.log( CLevel.INFO, "User " + authentication.getName() + " retrieve spec id: "+ id , compname ); + } else { + centralLogger.log( CLevel.INFO, "Anonymous retrieve spec id: "+ id, compname ); + } + + return new ResponseEntity(serviceSpecificationRepoService.findByUuid(id), + HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + public ResponseEntity cloneServiceSpecification( + @Parameter(description = "Identifier of the ServiceSpecification to clone", required = true) @PathVariable("id") String id) { + + ServiceSpecification c = serviceSpecificationRepoService.cloneServiceSpecification(id); + + return new ResponseEntity(c, HttpStatus.OK); + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity addAttachmentToServiceSpecification(String specid, + //@Valid @ModelAttribute("attachment") Attachment att, + @RequestParam(name = "afile") @Valid MultipartFile file, + HttpServletRequest request) { + try { + + //log.info("addAttachmentToServiceSpecification attachment=" + att.toString()); + log.info("addAttachmentToServiceSpecification file=" + file); + + //Attachment att = objectMapper.readValue(attachment, Attachment.class); + //log.info("addAttachmentToServiceSpecification att=" + att); + +// return new ResponseEntity( serviceSpecificationRepoService.findByUuid( id ), HttpStatus.OK); + Attachment c = serviceSpecificationRepoService.addAttachmentToService(specid, file, request.getRequestURI()); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @Override + @ResponseBody + public ResponseEntity getAttachment(String id, String attid) { + try { + Attachment att; + if ( attid.equals("logo")) { + att = serviceSpecificationRepoService.getAttachmentLogo( id, attid ); + } else { + att = serviceSpecificationRepoService.getAttachment( attid ); + } + + if ( att == null ) { + return new ResponseEntity(HttpStatus.NOT_FOUND); + } + if ( att.getContent() == null ) { + return new ResponseEntity(HttpStatus.NOT_FOUND); + } + File file = new File( att.getContent() ); + Path path = Paths.get(file.getAbsolutePath()); + //ByteArrayResource resource = new ByteArrayResource(Files.readAllBytes(path)); + HttpHeaders headers = new HttpHeaders(); + InputStream in = new FileInputStream( file ); + + byte[] media = IOUtils.toByteArray(in); + headers.setCacheControl(CacheControl.noCache().getHeaderValue()); + headers.setContentType( MediaType. parseMediaType( att.getMimeType()) ); + + if ( att.getMimeType().contains("zip") || att.getMimeType().contains("gz")) { + headers.add( "Content-Disposition", "attachment; filename=" + file.getName());//remove this returns directly the object + } + + ResponseEntity responseEntity = new ResponseEntity<>(media, headers, HttpStatus.OK); + return responseEntity; + + +// return ResponseEntity.ok() +// .header("Content-Disposition", "attachment; filename=" + file.getName()) +// .contentLength(file.length()) +// .contentType( MediaType. parseMediaType( att.getMimeType()) )//MediaType.parseMediaType("application/gzip")) +// .body(resource); + + + } catch (Exception e) { + log.error("Couldn't serialize response ByteArrayResource", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + + @Override + @ResponseBody + public ResponseEntity getAttachmentWithFilename(String id, String attid, String afilename) { + + return getAttachment(id, attid); + } + + + + @Override + public ResponseEntity retrieveServiceSpecificationDescriptor(String id) { + try { + ServiceSpecification spec = serviceSpecificationRepoService.findByUuid(id); + if (spec != null) { + return new ResponseEntity(spec.getServiceDescriptor(), HttpStatus.OK); + } else { + + return new ResponseEntity(HttpStatus.NOT_FOUND); + } + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity cloneGSTServiceSpecification(String serviceName) { + ServiceSpecification c = serviceSpecificationRepoService.cloneGSTServiceSpecification( serviceName ); + + return new ResponseEntity(c, HttpStatus.OK); + } + + @Override + public ResponseEntity cloneVINNIServiceSpecification(String serviceName, Boolean addServiceTopology, + Boolean addServiceRequirements, Boolean addServiceExposureLevel1, Boolean addServiceExposureLevel2, + Boolean addServiceExposureLevel3, Boolean addServiceExposureLevel4, Boolean addServiceMonitoring, + Boolean addServiceTesting, Boolean addServiceVNF, Boolean addServiceNSD) { + + ServiceSpecification c = serviceSpecificationRepoService.cloneVINNIServiceSpecification(serviceName, + addServiceTopology, + addServiceRequirements, addServiceExposureLevel1, addServiceExposureLevel2, addServiceExposureLevel3, + addServiceExposureLevel4, addServiceMonitoring, addServiceTesting, addServiceVNF, addServiceNSD); + + return new ResponseEntity(c, HttpStatus.OK); + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity specFromNSDID(String id) { + List result = serviceSpecificationRepoService.specFromNSDID(id); + ServiceSpecification c = null; + if ( result.size()>0) { + c = result.get(0); //we by default return the first one + } + return new ResponseEntity(c, HttpStatus.OK); + } + + @Override + public ResponseEntity specFromTestSpec(String id) { + ServiceSpecification result = serviceSpecificationRepoService.specFromTestSpec(id); + + return new ResponseEntity( result, HttpStatus.OK); + } + + @Override + public ResponseEntity getImageSpecificationRelationshipGraph(String id) { + + String encodedDiagram = serviceSpecificationRepoService.getImageSpecificationRelationshipGraph(id); + + //consider redirect to kroki..id + return ResponseEntity + .status(HttpStatus.FOUND) + .location(URI.create(KROKI_SERVERURL + "/blockdiag/svg/" + encodedDiagram)) + .build(); + //return null; + } + + @Override + public ResponseEntity specFromResourceSpec(String id) { + ServiceSpecification result = serviceSpecificationRepoService.specFromResourceSpec(id); + return new ResponseEntity( result, HttpStatus.OK); + } + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceSpecificationApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceSpecificationApiRouteBuilder.java new file mode 100644 index 0000000..8116a38 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceSpecificationApiRouteBuilder.java @@ -0,0 +1,129 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.api; + +import java.io.IOException; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.camel.LoggingLevel; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.model.dataformat.JsonLibrary; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.scm633.model.ServiceSpecification; +import org.etsi.osl.tmf.scm633.model.ServiceSpecificationCreate; +import org.etsi.osl.tmf.scm633.model.ServiceSpecificationUpdate; +import org.etsi.osl.tmf.scm633.reposervices.ServiceSpecificationRepoService; +import org.etsi.osl.tmf.sim638.model.ServiceCreate; +import org.etsi.osl.tmf.sim638.model.ServiceUpdate; +import org.etsi.osl.tmf.so641.api.ServiceOrderApiRouteBuilder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +@Configuration +//@RefreshScope +@Component +public class ServiceSpecificationApiRouteBuilder extends RouteBuilder { + + private static final transient Log logger = LogFactory.getLog(ServiceOrderApiRouteBuilder.class.getName()); + + @Value("${CATALOG_GET_SERVICESPEC_BY_ID}") + private String CATALOG_GET_SERVICESPEC_BY_ID = ""; + + + @Value("${CATALOG_ADD_SERVICESPEC}") + private String CATALOG_ADD_SERVICESPEC = ""; + + + @Value("${CATALOG_UPD_SERVICESPEC}") + private String CATALOG_UPD_SERVICESPEC = ""; + + @Value("${CATALOG_UPDADD_SERVICESPEC}") + private String CATALOG_UPDADD_SERVICESPEC = ""; + + @Value("${NFV_CATALOG_GET_NSD_BY_ID}") + private String NFV_CATALOG_GET_NSD_BY_ID = ""; + + @Value("${CATALOG_UPD_EXTERNAL_SERVICESPEC}") + private String CATALOG_UPD_EXTERNAL_SERVICESPEC = ""; + + @Autowired + ServiceSpecificationRepoService serviceSpecificationRepoService; + + + @Override + public void configure() throws Exception { + + from( CATALOG_GET_SERVICESPEC_BY_ID ) + .log(LoggingLevel.INFO, log, CATALOG_GET_SERVICESPEC_BY_ID + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean( serviceSpecificationRepoService, "findByUuidEager") + .marshal().json( JsonLibrary.Jackson, String.class) + .convertBodyTo( String.class ); + + from( CATALOG_UPD_EXTERNAL_SERVICESPEC ) + .log(LoggingLevel.INFO, log, CATALOG_UPD_EXTERNAL_SERVICESPEC + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal() + .json(JsonLibrary.Jackson, ServiceSpecification.class, true) + .bean( serviceSpecificationRepoService, "updateExternalServiceSpec(${header.servicespecid}, ${header.orgid}, ${body})") + .marshal().json( JsonLibrary.Jackson, String.class) + .convertBodyTo( String.class ); + + from( CATALOG_ADD_SERVICESPEC ) + .log(LoggingLevel.INFO, log, CATALOG_ADD_SERVICESPEC + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, ServiceSpecificationCreate .class, true) + .bean( serviceSpecificationRepoService, "addServiceSpecification(${body})") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + from( CATALOG_UPD_SERVICESPEC ) + .log(LoggingLevel.INFO, log, CATALOG_UPD_SERVICESPEC + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, ServiceSpecificationUpdate.class, true) + .bean( serviceSpecificationRepoService, "updateServiceSpecification(${header.serviceSpecId}, ${body} )") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + from( CATALOG_UPDADD_SERVICESPEC ) + .log(LoggingLevel.INFO, log, CATALOG_UPD_SERVICESPEC + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, ServiceSpecificationUpdate.class, true) + .bean( serviceSpecificationRepoService, "updateOrAddServiceSpecification(${header.serviceSpecId}, ${header.forceId}, ${body} )") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + } + + + + + + static T toJsonObj(String content, Class valueType) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.readValue( content, valueType); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceSpecificationApiRouteBuilderNSD.java b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceSpecificationApiRouteBuilderNSD.java new file mode 100644 index 0000000..565a365 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/api/ServiceSpecificationApiRouteBuilderNSD.java @@ -0,0 +1,93 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.api; + +import java.io.IOException; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +import org.etsi.osl.model.NetworkServiceDescriptor; + +@Configuration +//@RefreshScope +@Component +public class ServiceSpecificationApiRouteBuilderNSD extends RouteBuilder { + + private static final transient Log logger = LogFactory.getLog(ServiceSpecificationApiRouteBuilderNSD.class.getName()); + + @Value("${NFV_CATALOG_GET_NSD_BY_ID}") + private String NFV_CATALOG_GET_NSD_BY_ID = ""; + + + @Autowired + private ProducerTemplate template; + + @Override + public void configure() throws Exception { + + + } + + + /** + * get service order by id from model via bus + * @param id + * @return + * @throws IOException + */ + public NetworkServiceDescriptor retrieveNSD( String nsdID) { + logger.info("will retrieve NetworkServiceDescriptor from NSD/VNF catalog nsdID=" + nsdID ); + try { + Object response = template. + requestBody( NFV_CATALOG_GET_NSD_BY_ID, nsdID); + + if ( !(response instanceof String)) { + logger.error("NetworkServiceDescriptor object is wrong."); + return null; + } + NetworkServiceDescriptor sor = toJsonObj( (String)response, NetworkServiceDescriptor.class); + //logger.debug("retrieveServiceOrder response is: " + response); + return sor; + + }catch (Exception e) { + logger.error("Cannot retrieve NetworkServiceDescriptor details from catalog. " + e.toString()); + } + return null; + } + + + + static T toJsonObj(String content, Class valueType) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.readValue( content, valueType); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/Error.java b/src/main/java/org/etsi/osl/tmf/scm633/model/Error.java new file mode 100644 index 0000000..8e1a0c6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/Error.java @@ -0,0 +1,278 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx) + */ +@Schema(description = "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class Error { + @JsonProperty("code") + private Integer code = null; + + @JsonProperty("reason") + private String reason = null; + + @JsonProperty("message") + private String message = null; + + @JsonProperty("status") + private Integer status = null; + + @JsonProperty("referenceError") + private String referenceError = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Error code(Integer code) { + this.code = code; + return this; + } + + /** + * Application relevant detail, defined in the API or a common list. + * @return code + **/ + @Schema(description = "Application relevant detail, defined in the API or a common list.") + @NotNull + + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public Error reason(String reason) { + this.reason = reason; + return this; + } + + /** + * Explanation of the reason for the error which can be shown to a client user. + * @return reason + **/ + @Schema(description = "Explanation of the reason for the error which can be shown to a client user.") + @NotNull + + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public Error message(String message) { + this.message = message; + return this; + } + + /** + * More details and corrective actions related to the error which can be shown to a client user. + * @return message + **/ + @Schema(description = "More details and corrective actions related to the error which can be shown to a client user.") + + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Error status(Integer status) { + this.status = status; + return this; + } + + /** + * HTTP Error code extension + * @return status + **/ + @Schema(description = "HTTP Error code extension") + + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Error referenceError(String referenceError) { + this.referenceError = referenceError; + return this; + } + + /** + * URI of documentation describing the error. + * @return referenceError + **/ + @Schema(description = "URI of documentation describing the error.") + + + public String getReferenceError() { + return referenceError; + } + + public void setReferenceError(String referenceError) { + this.referenceError = referenceError; + } + + public Error baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class. + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class.") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public Error schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Error type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name. + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name.") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Error error = (Error) o; + return Objects.equals(this.code, error.code) && + Objects.equals(this.reason, error.reason) && + Objects.equals(this.message, error.message) && + Objects.equals(this.status, error.status) && + Objects.equals(this.referenceError, error.referenceError) && + Objects.equals(this.baseType, error.baseType) && + Objects.equals(this.schemaLocation, error.schemaLocation) && + Objects.equals(this.type, error.type); + } + + @Override + public int hashCode() { + return Objects.hash(code, reason, message, status, referenceError, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Error {\n"); + + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" referenceError: ").append(toIndentedString(referenceError)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/scm633/model/EventSubscription.java new file mode 100644 index 0000000..80807b8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/EventSubscription.java @@ -0,0 +1,153 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class EventSubscription { + @JsonProperty("id") + private String id = null; + + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscription id(String id) { + this.id = id; + return this; + } + + /** + * Id of the listener + * @return id + **/ + @Schema(description = "Id of the listener") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EventSubscription callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscription query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscription eventSubscription = (EventSubscription) o; + return Objects.equals(this.id, eventSubscription.id) && + Objects.equals(this.callback, eventSubscription.callback) && + Objects.equals(this.query, eventSubscription.query); + } + + @Override + public int hashCode() { + return Objects.hash(id, callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscription {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/EventSubscriptionInput.java b/src/main/java/org/etsi/osl/tmf/scm633/model/EventSubscriptionInput.java new file mode 100644 index 0000000..f09423d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/EventSubscriptionInput.java @@ -0,0 +1,127 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class EventSubscriptionInput { + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscriptionInput callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscriptionInput query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscriptionInput eventSubscriptionInput = (EventSubscriptionInput) o; + return Objects.equals(this.callback, eventSubscriptionInput.callback) && + Objects.equals(this.query, eventSubscriptionInput.query); + } + + @Override + public int hashCode() { + return Objects.hash(callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscriptionInput {\n"); + + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ExportJob.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ExportJob.java new file mode 100644 index 0000000..d514e7d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ExportJob.java @@ -0,0 +1,404 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Represents a task used to export resources to a file + */ +@Schema(description = "Represents a task used to export resources to a file") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ExportJob { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("completionDate") + private OffsetDateTime completionDate = null; + + @JsonProperty("contentType") + private String contentType = null; + + @JsonProperty("creationDate") + private OffsetDateTime creationDate = null; + + @JsonProperty("errorLog") + private String errorLog = null; + + @JsonProperty("path") + private String path = null; + + @JsonProperty("query") + private String query = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("url") + private String url = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ExportJob id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the export job + * @return id + **/ + @Schema(description = "Identifier of the export job") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ExportJob href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the export job + * @return href + **/ + @Schema(description = "Reference of the export job") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ExportJob completionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Data at which the job was completed + * @return completionDate + **/ + @Schema(description = "Data at which the job was completed") + + @Valid + + public OffsetDateTime getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + } + + public ExportJob contentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * The format of the exported data + * @return contentType + **/ + @Schema(description = "The format of the exported data") + + + public String getContentType() { + return contentType; + } + + public void setContentType(String contentType) { + this.contentType = contentType; + } + + public ExportJob creationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + return this; + } + + /** + * Date at which the job was created + * @return creationDate + **/ + @Schema(description = "Date at which the job was created") + + @Valid + + public OffsetDateTime getCreationDate() { + return creationDate; + } + + public void setCreationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + } + + public ExportJob errorLog(String errorLog) { + this.errorLog = errorLog; + return this; + } + + /** + * Reason for failure + * @return errorLog + **/ + @Schema(description = "Reason for failure") + + + public String getErrorLog() { + return errorLog; + } + + public void setErrorLog(String errorLog) { + this.errorLog = errorLog; + } + + public ExportJob path(String path) { + this.path = path; + return this; + } + + /** + * URL of the root resource acting as the source for streaming content to the file specified by the export job + * @return path + **/ + @Schema(description = "URL of the root resource acting as the source for streaming content to the file specified by the export job") + + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public ExportJob query(String query) { + this.query = query; + return this; + } + + /** + * Used to scope the exported data + * @return query + **/ + @Schema(description = "Used to scope the exported data") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + public ExportJob status(String status) { + this.status = status; + return this; + } + + /** + * Status of the export job (not started, running, succeeded, failed) + * @return status + **/ + @Schema(description = "Status of the export job (not started, running, succeeded, failed)") + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public ExportJob url(String url) { + this.url = url; + return this; + } + + /** + * URL of the file containing the data to be exported + * @return url + **/ + @Schema(description = "URL of the file containing the data to be exported") + + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public ExportJob baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ExportJob schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ExportJob type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExportJob exportJob = (ExportJob) o; + return Objects.equals(this.id, exportJob.id) && + Objects.equals(this.href, exportJob.href) && + Objects.equals(this.completionDate, exportJob.completionDate) && + Objects.equals(this.contentType, exportJob.contentType) && + Objects.equals(this.creationDate, exportJob.creationDate) && + Objects.equals(this.errorLog, exportJob.errorLog) && + Objects.equals(this.path, exportJob.path) && + Objects.equals(this.query, exportJob.query) && + Objects.equals(this.status, exportJob.status) && + Objects.equals(this.url, exportJob.url) && + Objects.equals(this.baseType, exportJob.baseType) && + Objects.equals(this.schemaLocation, exportJob.schemaLocation) && + Objects.equals(this.type, exportJob.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, completionDate, contentType, creationDate, errorLog, path, query, status, url, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ExportJob {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" contentType: ").append(toIndentedString(contentType)).append("\n"); + sb.append(" creationDate: ").append(toIndentedString(creationDate)).append("\n"); + sb.append(" errorLog: ").append(toIndentedString(errorLog)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ExportJobCreate.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ExportJobCreate.java new file mode 100644 index 0000000..e5b0593 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ExportJobCreate.java @@ -0,0 +1,356 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Represents a task used to export resources to a file Skipped properties: id,href + */ +@Schema(description = "Represents a task used to export resources to a file Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ExportJobCreate { + @JsonProperty("completionDate") + private OffsetDateTime completionDate = null; + + @JsonProperty("contentType") + private String contentType = null; + + @JsonProperty("creationDate") + private OffsetDateTime creationDate = null; + + @JsonProperty("errorLog") + private String errorLog = null; + + @JsonProperty("path") + private String path = null; + + @JsonProperty("query") + private String query = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("url") + private String url = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ExportJobCreate completionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Data at which the job was completed + * @return completionDate + **/ + @Schema(description = "Data at which the job was completed") + + @Valid + + public OffsetDateTime getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + } + + public ExportJobCreate contentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * The format of the exported data + * @return contentType + **/ + @Schema(description = "The format of the exported data") + + + public String getContentType() { + return contentType; + } + + public void setContentType(String contentType) { + this.contentType = contentType; + } + + public ExportJobCreate creationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + return this; + } + + /** + * Date at which the job was created + * @return creationDate + **/ + @Schema(description = "Date at which the job was created") + + @Valid + + public OffsetDateTime getCreationDate() { + return creationDate; + } + + public void setCreationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + } + + public ExportJobCreate errorLog(String errorLog) { + this.errorLog = errorLog; + return this; + } + + /** + * Reason for failure + * @return errorLog + **/ + @Schema(description = "Reason for failure") + + + public String getErrorLog() { + return errorLog; + } + + public void setErrorLog(String errorLog) { + this.errorLog = errorLog; + } + + public ExportJobCreate path(String path) { + this.path = path; + return this; + } + + /** + * URL of the root resource acting as the source for streaming content to the file specified by the export job + * @return path + **/ + @Schema(description = "URL of the root resource acting as the source for streaming content to the file specified by the export job") + + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public ExportJobCreate query(String query) { + this.query = query; + return this; + } + + /** + * Used to scope the exported data + * @return query + **/ + @Schema(description = "Used to scope the exported data") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + public ExportJobCreate status(String status) { + this.status = status; + return this; + } + + /** + * Status of the export job (not started, running, succeeded, failed) + * @return status + **/ + @Schema(description = "Status of the export job (not started, running, succeeded, failed)") + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public ExportJobCreate url(String url) { + this.url = url; + return this; + } + + /** + * URL of the file containing the data to be exported + * @return url + **/ + @Schema(description = "URL of the file containing the data to be exported") + @NotNull + + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public ExportJobCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ExportJobCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ExportJobCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExportJobCreate exportJobCreate = (ExportJobCreate) o; + return Objects.equals(this.completionDate, exportJobCreate.completionDate) && + Objects.equals(this.contentType, exportJobCreate.contentType) && + Objects.equals(this.creationDate, exportJobCreate.creationDate) && + Objects.equals(this.errorLog, exportJobCreate.errorLog) && + Objects.equals(this.path, exportJobCreate.path) && + Objects.equals(this.query, exportJobCreate.query) && + Objects.equals(this.status, exportJobCreate.status) && + Objects.equals(this.url, exportJobCreate.url) && + Objects.equals(this.baseType, exportJobCreate.baseType) && + Objects.equals(this.schemaLocation, exportJobCreate.schemaLocation) && + Objects.equals(this.type, exportJobCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(completionDate, contentType, creationDate, errorLog, path, query, status, url, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ExportJobCreate {\n"); + + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" contentType: ").append(toIndentedString(contentType)).append("\n"); + sb.append(" creationDate: ").append(toIndentedString(creationDate)).append("\n"); + sb.append(" errorLog: ").append(toIndentedString(errorLog)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ImportJob.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ImportJob.java new file mode 100644 index 0000000..4456b08 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ImportJob.java @@ -0,0 +1,379 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Represents a task used to import resources from a file + */ +@Schema(description = "Represents a task used to import resources from a file") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ImportJob { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("completionDate") + private OffsetDateTime completionDate = null; + + @JsonProperty("contentType") + private String contentType = null; + + @JsonProperty("creationDate") + private OffsetDateTime creationDate = null; + + @JsonProperty("errorLog") + private String errorLog = null; + + @JsonProperty("path") + private String path = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("url") + private String url = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ImportJob id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the import job + * @return id + **/ + @Schema(description = "Identifier of the import job") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ImportJob href(String href) { + this.href = href; + return this; + } + + /** + * Reference of the import job + * @return href + **/ + @Schema(description = "Reference of the import job") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ImportJob completionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Date at which the job was completed + * @return completionDate + **/ + @Schema(description = "Date at which the job was completed") + + @Valid + + public OffsetDateTime getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + } + + public ImportJob contentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * Indicates the format of the imported data + * @return contentType + **/ + @Schema(description = "Indicates the format of the imported data") + + + public String getContentType() { + return contentType; + } + + public void setContentType(String contentType) { + this.contentType = contentType; + } + + public ImportJob creationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + return this; + } + + /** + * Date at which the job was created + * @return creationDate + **/ + @Schema(description = "Date at which the job was created") + + @Valid + + public OffsetDateTime getCreationDate() { + return creationDate; + } + + public void setCreationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + } + + public ImportJob errorLog(String errorLog) { + this.errorLog = errorLog; + return this; + } + + /** + * Reason for failure if status is failed + * @return errorLog + **/ + @Schema(description = "Reason for failure if status is failed") + + + public String getErrorLog() { + return errorLog; + } + + public void setErrorLog(String errorLog) { + this.errorLog = errorLog; + } + + public ImportJob path(String path) { + this.path = path; + return this; + } + + /** + * URL of the root resource where the content of the file specified by the import job must be applied + * @return path + **/ + @Schema(description = "URL of the root resource where the content of the file specified by the import job must be applied") + + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public ImportJob status(String status) { + this.status = status; + return this; + } + + /** + * Status of the import job (not started, running, succeeded, failed) + * @return status + **/ + @Schema(description = "Status of the import job (not started, running, succeeded, failed)") + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public ImportJob url(String url) { + this.url = url; + return this; + } + + /** + * URL of the file containing the data to be imported + * @return url + **/ + @Schema(description = "URL of the file containing the data to be imported") + + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public ImportJob baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ImportJob schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ImportJob type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImportJob importJob = (ImportJob) o; + return Objects.equals(this.id, importJob.id) && + Objects.equals(this.href, importJob.href) && + Objects.equals(this.completionDate, importJob.completionDate) && + Objects.equals(this.contentType, importJob.contentType) && + Objects.equals(this.creationDate, importJob.creationDate) && + Objects.equals(this.errorLog, importJob.errorLog) && + Objects.equals(this.path, importJob.path) && + Objects.equals(this.status, importJob.status) && + Objects.equals(this.url, importJob.url) && + Objects.equals(this.baseType, importJob.baseType) && + Objects.equals(this.schemaLocation, importJob.schemaLocation) && + Objects.equals(this.type, importJob.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, completionDate, contentType, creationDate, errorLog, path, status, url, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImportJob {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" contentType: ").append(toIndentedString(contentType)).append("\n"); + sb.append(" creationDate: ").append(toIndentedString(creationDate)).append("\n"); + sb.append(" errorLog: ").append(toIndentedString(errorLog)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ImportJobCreate.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ImportJobCreate.java new file mode 100644 index 0000000..1326f27 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ImportJobCreate.java @@ -0,0 +1,331 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Represents a task used to import resources from a file Skipped properties: id,href + */ +@Schema(description = "Represents a task used to import resources from a file Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ImportJobCreate { + @JsonProperty("completionDate") + private OffsetDateTime completionDate = null; + + @JsonProperty("contentType") + private String contentType = null; + + @JsonProperty("creationDate") + private OffsetDateTime creationDate = null; + + @JsonProperty("errorLog") + private String errorLog = null; + + @JsonProperty("path") + private String path = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("url") + private String url = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ImportJobCreate completionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Date at which the job was completed + * @return completionDate + **/ + @Schema(description = "Date at which the job was completed") + + @Valid + + public OffsetDateTime getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + } + + public ImportJobCreate contentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * Indicates the format of the imported data + * @return contentType + **/ + @Schema(description = "Indicates the format of the imported data") + + + public String getContentType() { + return contentType; + } + + public void setContentType(String contentType) { + this.contentType = contentType; + } + + public ImportJobCreate creationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + return this; + } + + /** + * Date at which the job was created + * @return creationDate + **/ + @Schema(description = "Date at which the job was created") + + @Valid + + public OffsetDateTime getCreationDate() { + return creationDate; + } + + public void setCreationDate(OffsetDateTime creationDate) { + this.creationDate = creationDate; + } + + public ImportJobCreate errorLog(String errorLog) { + this.errorLog = errorLog; + return this; + } + + /** + * Reason for failure if status is failed + * @return errorLog + **/ + @Schema(description = "Reason for failure if status is failed") + + + public String getErrorLog() { + return errorLog; + } + + public void setErrorLog(String errorLog) { + this.errorLog = errorLog; + } + + public ImportJobCreate path(String path) { + this.path = path; + return this; + } + + /** + * URL of the root resource where the content of the file specified by the import job must be applied + * @return path + **/ + @Schema(description = "URL of the root resource where the content of the file specified by the import job must be applied") + + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public ImportJobCreate status(String status) { + this.status = status; + return this; + } + + /** + * Status of the import job (not started, running, succeeded, failed) + * @return status + **/ + @Schema(description = "Status of the import job (not started, running, succeeded, failed)") + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public ImportJobCreate url(String url) { + this.url = url; + return this; + } + + /** + * URL of the file containing the data to be imported + * @return url + **/ + @Schema(description = "URL of the file containing the data to be imported") + @NotNull + + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public ImportJobCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ImportJobCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ImportJobCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImportJobCreate importJobCreate = (ImportJobCreate) o; + return Objects.equals(this.completionDate, importJobCreate.completionDate) && + Objects.equals(this.contentType, importJobCreate.contentType) && + Objects.equals(this.creationDate, importJobCreate.creationDate) && + Objects.equals(this.errorLog, importJobCreate.errorLog) && + Objects.equals(this.path, importJobCreate.path) && + Objects.equals(this.status, importJobCreate.status) && + Objects.equals(this.url, importJobCreate.url) && + Objects.equals(this.baseType, importJobCreate.baseType) && + Objects.equals(this.schemaLocation, importJobCreate.schemaLocation) && + Objects.equals(this.type, importJobCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(completionDate, contentType, creationDate, errorLog, path, status, url, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImportJobCreate {\n"); + + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" contentType: ").append(toIndentedString(contentType)).append("\n"); + sb.append(" creationDate: ").append(toIndentedString(creationDate)).append("\n"); + sb.append(" errorLog: ").append(toIndentedString(errorLog)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidate.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidate.java new file mode 100644 index 0000000..73c2384 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidate.java @@ -0,0 +1,261 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import jakarta.persistence.Transient; +import jakarta.validation.Valid; + +/** + * ServiceCandidate is an entity that makes a service specification available to + * a catalog. A ServiceCandidate and its associated service specification may be + * published - made visible - in any number of service catalogs, or in none. One + * service specification can be composed of other service specifications. + */ +@Schema(description = "ServiceCandidate is an entity that makes a service specification available to a catalog. A ServiceCandidate and its associated service specification may be published - made visible - in any number of service catalogs, or in none. One service specification can be composed of other service specifications.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") +@Entity(name = "ServiceCandidate" ) +@Table( name = "ServiceCandidate" ) + +public class ServiceCandidate extends BaseEntity { + + + @ManyToMany( mappedBy ="serviceCandidateObj", cascade = {CascadeType.MERGE, CascadeType.DETACH} ) + @JsonIgnore + private Set categoryObj = new HashSet<>(); + + @OneToOne( cascade = {CascadeType.MERGE, CascadeType.DETACH} ) + @JoinColumn(name = "service_specid", referencedColumnName = "uuid") + @JsonIgnore + private ServiceSpecification serviceSpecificationObj = null; + + @JsonProperty("id") + protected String id = null; + + + /** + * @return the id + */ + public String getId() { + if ( uuid != null ) { + return uuid; + } else { + return id; + } + } + + + public ServiceCandidate() { + super(); + this.type = "ServiceCandidate"; + this.baseType = "BaseEntity"; + } + + + + + public String getVersion() { + if ( this.serviceSpecificationObj != null ) + { + return this.serviceSpecificationObj.getVersion(); + } + + return null; + } + + public String getName() { + if ( this.serviceSpecificationObj != null ) + { + return this.serviceSpecificationObj.getName(); + } + + return null; + } + + /** + * The service specification implied by this candidate + * + * @return serviceSpecification + **/ + @Schema(description = "The service specification implied by this candidate") + + @Transient + @JsonProperty("serviceSpecification") + @Valid + public ServiceSpecificationRef getServiceSpecificationRef() { + if ( this.serviceSpecificationObj != null ) + { + ServiceSpecificationRef sref = new ServiceSpecificationRef(); + + sref.setId( this.serviceSpecificationObj.getUuid()); + sref.setName( this.serviceSpecificationObj.getName() ); + sref.setVersion( this.serviceSpecificationObj.getVersion()); + sref.setBaseType(ServiceSpecificationRef.class.getName()); + return sref; + } + + return null; + } + + + /** + * @return the serviceSpecificationObj + */ + public ServiceSpecification getServiceSpecificationObj() { + return serviceSpecificationObj; + } + + + + + /** + * @param serviceSpecificationObj the serviceSpecificationObj to set + */ + + @JsonProperty("serviceSpecification") + public void setServiceSpecificationObj(ServiceSpecification serviceSpecificationObj) { + this.serviceSpecificationObj = serviceSpecificationObj; + } + + + + + /** + * The service specification implied by this candidate + * + * @return serviceSpecification + **/ + @Schema(description = "The category specification implied by this candidate") + + @Transient + @JsonProperty("category") + @Valid + public List getCategory() { + + List category = new ArrayList<>(); + + for (ServiceCategory serviceCategory : categoryObj) { + ServiceCategoryRef scr = new ServiceCategoryRef(); + scr.setId(serviceCategory.getId()); + scr.setName(serviceCategory.getName()); + scr.setBaseType(ServiceCategoryRef.class.getName()); + category.add(scr); + } + + return category; + } + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCandidate serviceCandidate = (ServiceCandidate) o; + return Objects.equals(this.id, serviceCandidate.id) && Objects.equals(this.href, serviceCandidate.href) + && Objects.equals(this.description, serviceCandidate.description) + && Objects.equals(this.lastUpdate, serviceCandidate.lastUpdate) + && Objects.equals(this.lifecycleStatus, serviceCandidate.lifecycleStatus) + && Objects.equals(this.name, serviceCandidate.name) + && Objects.equals(this.version, serviceCandidate.version) + && Objects.equals(this.getCategory(), serviceCandidate.getCategory()) + && Objects.equals(this.getServiceSpecificationRef() , serviceCandidate.getServiceSpecificationRef() ) + && Objects.equals(this.validFor, serviceCandidate.validFor) + && Objects.equals(this.baseType, serviceCandidate.baseType) + && Objects.equals(this.schemaLocation, serviceCandidate.schemaLocation) + && Objects.equals(this.type, serviceCandidate.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, description, lastUpdate, lifecycleStatus, name, version, getCategory(), +// getServiceSpecificationRef() , validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCandidate {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" category: ").append(toIndentedString(getCategory())).append("\n"); + sb.append(" serviceSpecification: ").append(toIndentedString(getServiceSpecificationRef() )).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * @return the categoryObj + */ + public Set getCategoryObj() { + return categoryObj; + } + + /** + * @param categoryObj the categoryObj to set + */ + public void setCategoryObj(Set categoryObj) { + this.categoryObj = categoryObj; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateChangeEvent.java new file mode 100644 index 0000000..13002bf --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateChangeEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCandidateChangeEvent { + @JsonProperty("serviceCandidate") + private ServiceCandidate serviceCandidate = null; + + public ServiceCandidateChangeEvent serviceCandidate(ServiceCandidate serviceCandidate) { + this.serviceCandidate = serviceCandidate; + return this; + } + + /** + * The involved resource data for the event + * @return serviceCandidate + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ServiceCandidate getServiceCandidate() { + return serviceCandidate; + } + + public void setServiceCandidate(ServiceCandidate serviceCandidate) { + this.serviceCandidate = serviceCandidate; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCandidateChangeEvent serviceCandidateChangeEvent = (ServiceCandidateChangeEvent) o; + return Objects.equals(this.serviceCandidate, serviceCandidateChangeEvent.serviceCandidate); + } + + @Override + public int hashCode() { + return Objects.hash(serviceCandidate); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCandidateChangeEvent {\n"); + + sb.append(" serviceCandidate: ").append(toIndentedString(serviceCandidate)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateChangeNotification.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateChangeNotification.java new file mode 100644 index 0000000..3664a01 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateChangeNotification.java @@ -0,0 +1,229 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCandidateChangeNotification { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("resourcePath") + private String resourcePath = null; + + @JsonProperty("event") + private ServiceCandidateChangeEvent event = null; + + public ServiceCandidateChangeNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification + * @return eventId + **/ + @Schema(description = "The identifier of the notification") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceCandidateChangeNotification eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceCandidateChangeNotification eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification + * @return eventType + **/ + @Schema(description = "The type of the notification") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceCandidateChangeNotification fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ServiceCandidateChangeNotification resourcePath(String resourcePath) { + this.resourcePath = resourcePath; + return this; + } + + /** + * The path identifying the resource object concerned by this notification + * @return resourcePath + **/ + @Schema(description = "The path identifying the resource object concerned by this notification") + + + public String getResourcePath() { + return resourcePath; + } + + public void setResourcePath(String resourcePath) { + this.resourcePath = resourcePath; + } + + public ServiceCandidateChangeNotification event(ServiceCandidateChangeEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceCandidateChangeEvent getEvent() { + return event; + } + + public void setEvent(ServiceCandidateChangeEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCandidateChangeNotification serviceCandidateChangeNotification = (ServiceCandidateChangeNotification) o; + return Objects.equals(this.eventId, serviceCandidateChangeNotification.eventId) && + Objects.equals(this.eventTime, serviceCandidateChangeNotification.eventTime) && + Objects.equals(this.eventType, serviceCandidateChangeNotification.eventType) && + Objects.equals(this.fieldPath, serviceCandidateChangeNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceCandidateChangeNotification.resourcePath) && + Objects.equals(this.event, serviceCandidateChangeNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCandidateChangeNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateCreate.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateCreate.java new file mode 100644 index 0000000..d3e878f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateCreate.java @@ -0,0 +1,122 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * ServiceCandidate is an entity that makes a service specification available to a catalog. A ServiceCandidate and its associated service specification may be published - made visible - in any number of service catalogs, or in none. One service specification can be composed of other service specifications. Skipped properties: id,href + */ +@Schema(description = "ServiceCandidate is an entity that makes a service specification available to a catalog. A ServiceCandidate and its associated service specification may be published - made visible - in any number of service catalogs, or in none. One service specification can be composed of other service specifications. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCandidateCreate extends ServiceCandidateUpdate { + + @JsonProperty("lastUpdate") + private OffsetDateTime lastUpdate = null; + + + /** + * Date and time of the last update of this REST resource + * @return lastUpdate + **/ + @Schema(description = "Date and time of the last update of this REST resource") + + @Valid + + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCandidateCreate serviceCandidateCreate = (ServiceCandidateCreate) o; + return Objects.equals(this.description, serviceCandidateCreate.description) && + Objects.equals(this.lastUpdate, serviceCandidateCreate.lastUpdate) && + Objects.equals(this.lifecycleStatus, serviceCandidateCreate.lifecycleStatus) && + Objects.equals(this.name, serviceCandidateCreate.name) && + Objects.equals(this.version, serviceCandidateCreate.version) && + Objects.equals(this.category, serviceCandidateCreate.category) && + Objects.equals(this.serviceSpecification, serviceCandidateCreate.serviceSpecification) && + Objects.equals(this.validFor, serviceCandidateCreate.validFor) && + Objects.equals(this.baseType, serviceCandidateCreate.baseType) && + Objects.equals(this.schemaLocation, serviceCandidateCreate.schemaLocation) && + Objects.equals(this.type, serviceCandidateCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, lastUpdate, lifecycleStatus, name, version, category, serviceSpecification, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCandidateCreate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" serviceSpecification: ").append(toIndentedString(serviceSpecification)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateCreateEvent.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateCreateEvent.java new file mode 100644 index 0000000..4e4cfbe --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateCreateEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCandidateCreateEvent { + @JsonProperty("serviceCandidate") + private ServiceCandidate serviceCandidate = null; + + public ServiceCandidateCreateEvent serviceCandidate(ServiceCandidate serviceCandidate) { + this.serviceCandidate = serviceCandidate; + return this; + } + + /** + * The involved resource data for the event + * @return serviceCandidate + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ServiceCandidate getServiceCandidate() { + return serviceCandidate; + } + + public void setServiceCandidate(ServiceCandidate serviceCandidate) { + this.serviceCandidate = serviceCandidate; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCandidateCreateEvent serviceCandidateCreateEvent = (ServiceCandidateCreateEvent) o; + return Objects.equals(this.serviceCandidate, serviceCandidateCreateEvent.serviceCandidate); + } + + @Override + public int hashCode() { + return Objects.hash(serviceCandidate); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCandidateCreateEvent {\n"); + + sb.append(" serviceCandidate: ").append(toIndentedString(serviceCandidate)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateCreateNotification.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateCreateNotification.java new file mode 100644 index 0000000..93656ac --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateCreateNotification.java @@ -0,0 +1,229 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCandidateCreateNotification { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("resourcePath") + private String resourcePath = null; + + @JsonProperty("event") + private ServiceCandidateCreateEvent event = null; + + public ServiceCandidateCreateNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification + * @return eventId + **/ + @Schema(description = "The identifier of the notification") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceCandidateCreateNotification eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceCandidateCreateNotification eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification + * @return eventType + **/ + @Schema(description = "The type of the notification") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceCandidateCreateNotification fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ServiceCandidateCreateNotification resourcePath(String resourcePath) { + this.resourcePath = resourcePath; + return this; + } + + /** + * The path identifying the resource object concerned by this notification + * @return resourcePath + **/ + @Schema(description = "The path identifying the resource object concerned by this notification") + + + public String getResourcePath() { + return resourcePath; + } + + public void setResourcePath(String resourcePath) { + this.resourcePath = resourcePath; + } + + public ServiceCandidateCreateNotification event(ServiceCandidateCreateEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceCandidateCreateEvent getEvent() { + return event; + } + + public void setEvent(ServiceCandidateCreateEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCandidateCreateNotification serviceCandidateCreateNotification = (ServiceCandidateCreateNotification) o; + return Objects.equals(this.eventId, serviceCandidateCreateNotification.eventId) && + Objects.equals(this.eventTime, serviceCandidateCreateNotification.eventTime) && + Objects.equals(this.eventType, serviceCandidateCreateNotification.eventType) && + Objects.equals(this.fieldPath, serviceCandidateCreateNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceCandidateCreateNotification.resourcePath) && + Objects.equals(this.event, serviceCandidateCreateNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCandidateCreateNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateDeleteEvent.java new file mode 100644 index 0000000..af13cb2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateDeleteEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCandidateDeleteEvent { + @JsonProperty("serviceCandidate") + private ServiceCandidate serviceCandidate = null; + + public ServiceCandidateDeleteEvent serviceCandidate(ServiceCandidate serviceCandidate) { + this.serviceCandidate = serviceCandidate; + return this; + } + + /** + * The involved resource data for the event + * @return serviceCandidate + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ServiceCandidate getServiceCandidate() { + return serviceCandidate; + } + + public void setServiceCandidate(ServiceCandidate serviceCandidate) { + this.serviceCandidate = serviceCandidate; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCandidateDeleteEvent serviceCandidateDeleteEvent = (ServiceCandidateDeleteEvent) o; + return Objects.equals(this.serviceCandidate, serviceCandidateDeleteEvent.serviceCandidate); + } + + @Override + public int hashCode() { + return Objects.hash(serviceCandidate); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCandidateDeleteEvent {\n"); + + sb.append(" serviceCandidate: ").append(toIndentedString(serviceCandidate)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateDeleteNotification.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateDeleteNotification.java new file mode 100644 index 0000000..a6331bc --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateDeleteNotification.java @@ -0,0 +1,229 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCandidateDeleteNotification { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("resourcePath") + private String resourcePath = null; + + @JsonProperty("event") + private ServiceCandidateDeleteEvent event = null; + + public ServiceCandidateDeleteNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification + * @return eventId + **/ + @Schema(description = "The identifier of the notification") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceCandidateDeleteNotification eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceCandidateDeleteNotification eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification + * @return eventType + **/ + @Schema(description = "The type of the notification") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceCandidateDeleteNotification fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ServiceCandidateDeleteNotification resourcePath(String resourcePath) { + this.resourcePath = resourcePath; + return this; + } + + /** + * The path identifying the resource object concerned by this notification + * @return resourcePath + **/ + @Schema(description = "The path identifying the resource object concerned by this notification") + + + public String getResourcePath() { + return resourcePath; + } + + public void setResourcePath(String resourcePath) { + this.resourcePath = resourcePath; + } + + public ServiceCandidateDeleteNotification event(ServiceCandidateDeleteEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceCandidateDeleteEvent getEvent() { + return event; + } + + public void setEvent(ServiceCandidateDeleteEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCandidateDeleteNotification serviceCandidateDeleteNotification = (ServiceCandidateDeleteNotification) o; + return Objects.equals(this.eventId, serviceCandidateDeleteNotification.eventId) && + Objects.equals(this.eventTime, serviceCandidateDeleteNotification.eventTime) && + Objects.equals(this.eventType, serviceCandidateDeleteNotification.eventType) && + Objects.equals(this.fieldPath, serviceCandidateDeleteNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceCandidateDeleteNotification.resourcePath) && + Objects.equals(this.event, serviceCandidateDeleteNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCandidateDeleteNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateRef.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateRef.java new file mode 100644 index 0000000..f9bcb47 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateRef.java @@ -0,0 +1,158 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * ServiceCandidate reference. ServiceCandidate is an entity that makes a + * ServiceSpecification available to a catalog. + */ +@Schema(description = "ServiceCandidate reference. ServiceCandidate is an entity that makes a ServiceSpecification available to a catalog.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCandidateRef extends BaseRootNamedEntity { + + @JsonProperty("version") + private String version = null; + + @JsonProperty("@referredType") + private String referredType = null; + + @JsonProperty("id") + protected String id = null; + + /** + * @return the id + */ + public String getId() { + return id; + } + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + public ServiceCandidateRef() { + super(); + this.baseType = "BaseRootEntity"; + this.type = this.getClass().getName(); + } + + public ServiceCandidateRef version(String version) { + this.version = version; + return this; + } + + /** + * Version of the service candidate + * + * @return version + **/ + @Schema(description = "Version of the service candidate") + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public ServiceCandidateRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCandidateRef serviceCandidateRef = (ServiceCandidateRef) o; + return Objects.equals(this.id, serviceCandidateRef.id) && Objects.equals(this.href, serviceCandidateRef.href) + && Objects.equals(this.name, serviceCandidateRef.name) + && Objects.equals(this.version, serviceCandidateRef.version) + && Objects.equals(this.baseType, serviceCandidateRef.baseType) + && Objects.equals(this.schemaLocation, serviceCandidateRef.schemaLocation) + && Objects.equals(this.type, serviceCandidateRef.type) + && Objects.equals(this.referredType, serviceCandidateRef.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, version, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCandidateRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateUpdate.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateUpdate.java new file mode 100644 index 0000000..f89e201 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCandidateUpdate.java @@ -0,0 +1,347 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * ServiceCandidate is an entity that makes a service specification available to + * a catalog. A ServiceCandidate and its associated service specification may be + * published - made visible - in any number of service catalogs, or in none. One + * service specification can be composed of other service specifications. + * Skipped properties: id,href,lastUpdate + */ +@Schema(description = "ServiceCandidate is an entity that makes a service specification available to a catalog. A ServiceCandidate and its associated service specification may be published - made visible - in any number of service catalogs, or in none. One service specification can be composed of other service specifications. Skipped properties: id,href,lastUpdate") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCandidateUpdate { + @JsonProperty("description") + protected String description = null; + + @JsonProperty("lifecycleStatus") + protected String lifecycleStatus = null; + + @JsonProperty("name") + protected String name = null; + + @JsonProperty("version") + protected String version = null; + + @JsonProperty("category") + @Valid + protected List category = null; + + @JsonProperty("serviceSpecification") + protected ServiceSpecificationRef serviceSpecification = null; + + @JsonProperty("validFor") + protected TimePeriod validFor = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@type") + protected String type = null; + + public ServiceCandidateUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Description of this REST resource + * + * @return description + **/ + @Schema(description = "Description of this REST resource") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceCandidateUpdate lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Used to indicate the current lifecycle status of the service candidate. + * + * @return lifecycleStatus + **/ + @Schema(description = "Used to indicate the current lifecycle status of the service candidate.") + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public ServiceCandidateUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name given to this REST resource + * + * @return name + **/ + @Schema(description = "Name given to this REST resource") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ServiceCandidateUpdate version(String version) { + this.version = version; + return this; + } + + /** + * the version of service candidate + * + * @return version + **/ + @Schema(description = "the version of service candidate") + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public ServiceCandidateUpdate category(List category) { + this.category = category; + return this; + } + + public ServiceCandidateUpdate addCategoryItem(ServiceCategoryRef categoryItem) { + if (this.category == null) { + this.category = new ArrayList(); + } + this.category.add(categoryItem); + return this; + } + + /** + * List of categories for this candidate + * + * @return category + **/ + @Schema(description = "List of categories for this candidate") + + @Valid + + public List getCategory() { + return category; + } + + public void setCategory(List category) { + this.category = category; + } + + public ServiceCandidateUpdate serviceSpecification(ServiceSpecificationRef serviceSpecification) { + this.serviceSpecification = serviceSpecification; + return this; + } + + /** + * The service specification implied by this candidate + * + * @return serviceSpecification + **/ + @Schema(description = "The service specification implied by this candidate") + + @Valid + + public ServiceSpecificationRef getServiceSpecification() { + return serviceSpecification; + } + + public void setServiceSpecification(ServiceSpecificationRef serviceSpecification) { + this.serviceSpecification = serviceSpecification; + } + + public ServiceCandidateUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which this REST resource is valid + * + * @return validFor + **/ + @Schema(description = "The period for which this REST resource is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ServiceCandidateUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ServiceCandidateUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ServiceCandidateUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCandidateUpdate serviceCandidateUpdate = (ServiceCandidateUpdate) o; + return Objects.equals(this.description, serviceCandidateUpdate.description) + && Objects.equals(this.lifecycleStatus, serviceCandidateUpdate.lifecycleStatus) + && Objects.equals(this.name, serviceCandidateUpdate.name) + && Objects.equals(this.version, serviceCandidateUpdate.version) + && Objects.equals(this.category, serviceCandidateUpdate.category) + && Objects.equals(this.serviceSpecification, serviceCandidateUpdate.serviceSpecification) + && Objects.equals(this.validFor, serviceCandidateUpdate.validFor) + && Objects.equals(this.baseType, serviceCandidateUpdate.baseType) + && Objects.equals(this.schemaLocation, serviceCandidateUpdate.schemaLocation) + && Objects.equals(this.type, serviceCandidateUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, lifecycleStatus, name, version, category, serviceSpecification, validFor, + baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCandidateUpdate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" serviceSpecification: ").append(toIndentedString(serviceSpecification)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalog.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalog.java new file mode 100644 index 0000000..a07874b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalog.java @@ -0,0 +1,292 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinTable; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.Table; +import jakarta.persistence.Transient; +import jakarta.validation.Valid; + +/** + * The root entity for service catalog management. A service catalog is a group + * of service specifications made available through service candidates that an + * organization provides to the consumers (internal consumers like its employees + * or B2B customers or B2C customers). A service catalog typically includes + * name, description and time period that is valid for. It will have a list of + * ServiceCandidate catalog items. A ServiceCandidate is an entity that makes a + * ServiceSpecification available to a catalog. A ServiceCandidate and its + * associated ServiceSpecification may be \"published\" - made visible + * -in any number of ServiceCatalogs, or in none. + */ +@Schema(description = "The root entity for service catalog management. A service catalog is a group of service specifications made available through service candidates that an organization provides to the consumers (internal consumers like its employees or B2B customers or B2C customers). A service catalog typically includes name, description and time period that is valid for. It will have a list of ServiceCandidate catalog items. A ServiceCandidate is an entity that makes a ServiceSpecification available to a catalog. A ServiceCandidate and its associated ServiceSpecification may be \"published\" - made visible -in any number of ServiceCatalogs, or in none.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Entity(name = "ServiceCatalog") +@Table( name = "ServiceCatalog" ) +public class ServiceCatalog extends BaseEntity{ + + + + + @ManyToMany(cascade = { CascadeType.DETACH } ) + @JoinTable() + @JsonIgnore + private Set categoryObj = new HashSet<>(); + + + + @Transient + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + + public ServiceCatalog() { + super(); + this.type = "ServiceCatalog"; + this.baseType = "BaseEntity"; + } + + @JsonProperty("id") + protected String id = null; + + + /** + * @return the id + */ + public String getId() { + return uuid; + } + +// /** +// * @param id the id to set +// */ +// public void setId(String id) { +// this.id = id; +// } + + /** + * List of service categories associated with this catalog + * + * @return category + **/ + @Schema(description = "List of service categories associated with this catalog") + @Transient + @JsonProperty("category") + @Valid + public List getCategoryRefs() { + + List category = new ArrayList<>(); + + for (ServiceCategory serviceCategory : categoryObj) { + ServiceCategoryRef scr = new ServiceCategoryRef(); + scr.setId( serviceCategory.getId()); + scr.setName( serviceCategory.getName()); + scr.setBaseType( ServiceCategoryRef.class.getName() ); + category.add(scr); + + } + + return category; + } + + /** + * @param crefs + */ + public void setCategoryRefs( List crefs){ + for (ServiceCategoryRef serviceCategoryRef : crefs) { + ServiceCategory e = new ServiceCategory(); + e.setUuid( serviceCategoryRef.getId() ); + e.setName(serviceCategoryRef.getName()); + categoryObj.add(e ); + } + } + + /** + * @return the categoryObj + */ + public Set getCategoryObj() { + return categoryObj; + } + + /** + * @param categoryObj the categoryObj to set + */ + public void setCategoryObj(Set categoryObj) { + this.categoryObj = categoryObj; + } + + +// public void setCategory(List category) { +// this.category = category; +// } + + public ServiceCatalog relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ServiceCatalog addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * List of parties or party roles related to this category + * + * @return relatedParty + **/ + @Schema(description = "List of parties or party roles related to this category") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCatalog serviceCatalog = (ServiceCatalog) o; + return Objects.equals(this.id, serviceCatalog.id) && Objects.equals(this.href, serviceCatalog.href) + && Objects.equals(this.description, serviceCatalog.description) + && Objects.equals(this.lastUpdate, serviceCatalog.lastUpdate) + && Objects.equals(this.lifecycleStatus, serviceCatalog.lifecycleStatus) + && Objects.equals(this.name, serviceCatalog.name) + && Objects.equals(this.version, serviceCatalog.version) + && Objects.equals(this.getCategoryRefs(), serviceCatalog.getCategoryRefs()) + && Objects.equals(this.relatedParty, serviceCatalog.relatedParty) + && Objects.equals(this.validFor, serviceCatalog.validFor) + && Objects.equals(this.baseType, serviceCatalog.baseType) + && Objects.equals(this.schemaLocation, serviceCatalog.schemaLocation) + && Objects.equals(this.type, serviceCatalog.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, description, lastUpdate, lifecycleStatus, name, version, this.getCategoryRefs(), relatedParty, +// validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCatalog {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" category: ").append(toIndentedString(this.getCategoryRefs())).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + + public void addCategory(ServiceCategory servcat) { + if (!categoryObj.contains(servcat) ) { + categoryObj.add(servcat); + } + + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogBatchEvent.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogBatchEvent.java new file mode 100644 index 0000000..5b24775 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogBatchEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCatalogBatchEvent { + @JsonProperty("serviceCatalog") + private ServiceCatalog serviceCatalog = null; + + public ServiceCatalogBatchEvent serviceCatalog(ServiceCatalog serviceCatalog) { + this.serviceCatalog = serviceCatalog; + return this; + } + + /** + * The involved resource data for the event + * @return serviceCatalog + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ServiceCatalog getServiceCatalog() { + return serviceCatalog; + } + + public void setServiceCatalog(ServiceCatalog serviceCatalog) { + this.serviceCatalog = serviceCatalog; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCatalogBatchEvent serviceCatalogBatchEvent = (ServiceCatalogBatchEvent) o; + return Objects.equals(this.serviceCatalog, serviceCatalogBatchEvent.serviceCatalog); + } + + @Override + public int hashCode() { + return Objects.hash(serviceCatalog); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCatalogBatchEvent {\n"); + + sb.append(" serviceCatalog: ").append(toIndentedString(serviceCatalog)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogBatchNotification.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogBatchNotification.java new file mode 100644 index 0000000..876da07 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogBatchNotification.java @@ -0,0 +1,229 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCatalogBatchNotification { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("resourcePath") + private String resourcePath = null; + + @JsonProperty("event") + private ServiceCatalogBatchEvent event = null; + + public ServiceCatalogBatchNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification + * @return eventId + **/ + @Schema(description = "The identifier of the notification") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceCatalogBatchNotification eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceCatalogBatchNotification eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification + * @return eventType + **/ + @Schema(description = "The type of the notification") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceCatalogBatchNotification fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ServiceCatalogBatchNotification resourcePath(String resourcePath) { + this.resourcePath = resourcePath; + return this; + } + + /** + * The path identifying the resource object concerned by this notification + * @return resourcePath + **/ + @Schema(description = "The path identifying the resource object concerned by this notification") + + + public String getResourcePath() { + return resourcePath; + } + + public void setResourcePath(String resourcePath) { + this.resourcePath = resourcePath; + } + + public ServiceCatalogBatchNotification event(ServiceCatalogBatchEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceCatalogBatchEvent getEvent() { + return event; + } + + public void setEvent(ServiceCatalogBatchEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCatalogBatchNotification serviceCatalogBatchNotification = (ServiceCatalogBatchNotification) o; + return Objects.equals(this.eventId, serviceCatalogBatchNotification.eventId) && + Objects.equals(this.eventTime, serviceCatalogBatchNotification.eventTime) && + Objects.equals(this.eventType, serviceCatalogBatchNotification.eventType) && + Objects.equals(this.fieldPath, serviceCatalogBatchNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceCatalogBatchNotification.resourcePath) && + Objects.equals(this.event, serviceCatalogBatchNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCatalogBatchNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogChangeEvent.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogChangeEvent.java new file mode 100644 index 0000000..fc08910 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogChangeEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCatalogChangeEvent { + @JsonProperty("serviceCatalog") + private ServiceCatalog serviceCatalog = null; + + public ServiceCatalogChangeEvent serviceCatalog(ServiceCatalog serviceCatalog) { + this.serviceCatalog = serviceCatalog; + return this; + } + + /** + * The involved resource data for the event + * @return serviceCatalog + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ServiceCatalog getServiceCatalog() { + return serviceCatalog; + } + + public void setServiceCatalog(ServiceCatalog serviceCatalog) { + this.serviceCatalog = serviceCatalog; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCatalogChangeEvent serviceCatalogChangeEvent = (ServiceCatalogChangeEvent) o; + return Objects.equals(this.serviceCatalog, serviceCatalogChangeEvent.serviceCatalog); + } + + @Override + public int hashCode() { + return Objects.hash(serviceCatalog); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCatalogChangeEvent {\n"); + + sb.append(" serviceCatalog: ").append(toIndentedString(serviceCatalog)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogChangeNotification.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogChangeNotification.java new file mode 100644 index 0000000..7b84799 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogChangeNotification.java @@ -0,0 +1,229 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCatalogChangeNotification { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("resourcePath") + private String resourcePath = null; + + @JsonProperty("event") + private ServiceCatalogChangeEvent event = null; + + public ServiceCatalogChangeNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification + * @return eventId + **/ + @Schema(description = "The identifier of the notification") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceCatalogChangeNotification eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceCatalogChangeNotification eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification + * @return eventType + **/ + @Schema(description = "The type of the notification") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceCatalogChangeNotification fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ServiceCatalogChangeNotification resourcePath(String resourcePath) { + this.resourcePath = resourcePath; + return this; + } + + /** + * The path identifying the resource object concerned by this notification + * @return resourcePath + **/ + @Schema(description = "The path identifying the resource object concerned by this notification") + + + public String getResourcePath() { + return resourcePath; + } + + public void setResourcePath(String resourcePath) { + this.resourcePath = resourcePath; + } + + public ServiceCatalogChangeNotification event(ServiceCatalogChangeEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceCatalogChangeEvent getEvent() { + return event; + } + + public void setEvent(ServiceCatalogChangeEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCatalogChangeNotification serviceCatalogChangeNotification = (ServiceCatalogChangeNotification) o; + return Objects.equals(this.eventId, serviceCatalogChangeNotification.eventId) && + Objects.equals(this.eventTime, serviceCatalogChangeNotification.eventTime) && + Objects.equals(this.eventType, serviceCatalogChangeNotification.eventType) && + Objects.equals(this.fieldPath, serviceCatalogChangeNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceCatalogChangeNotification.resourcePath) && + Objects.equals(this.event, serviceCatalogChangeNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCatalogChangeNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogCreate.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogCreate.java new file mode 100644 index 0000000..f672c79 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogCreate.java @@ -0,0 +1,130 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The root entity for service catalog management. A service catalog is a group of service specifications made available through service candidates that an organization provides to the consumers (internal consumers like its employees or B2B customers or B2C customers). A service catalog typically includes name, description and time period that is valid for. It will have a list of ServiceCandidate catalog items. A ServiceCandidate is an entity that makes a ServiceSpecification available to a catalog. A ServiceCandidate and its associated ServiceSpecification may be \"published\" - made visible -in any number of ServiceCatalogs, or in none. Skipped properties: id,href + */ +@Schema(description = "The root entity for service catalog management. A service catalog is a group of service specifications made available through service candidates that an organization provides to the consumers (internal consumers like its employees or B2B customers or B2C customers). A service catalog typically includes name, description and time period that is valid for. It will have a list of ServiceCandidate catalog items. A ServiceCandidate is an entity that makes a ServiceSpecification available to a catalog. A ServiceCandidate and its associated ServiceSpecification may be \"published\" - made visible -in any number of ServiceCatalogs, or in none. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCatalogCreate extends ServiceCatalogUpdate { + + + @JsonProperty("lastUpdate") + private OffsetDateTime lastUpdate = null; + + + + + public ServiceCatalogCreate lastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + /** + * Date and time of the last update + * @return lastUpdate + **/ + @Schema(description = "Date and time of the last update") + + @Valid + + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCatalogCreate serviceCatalogCreate = (ServiceCatalogCreate) o; + return Objects.equals(this.description, serviceCatalogCreate.description) && + Objects.equals(this.lastUpdate, serviceCatalogCreate.lastUpdate) && + Objects.equals(this.lifecycleStatus, serviceCatalogCreate.lifecycleStatus) && + Objects.equals(this.name, serviceCatalogCreate.name) && + Objects.equals(this.version, serviceCatalogCreate.version) && + Objects.equals(this.category, serviceCatalogCreate.category) && + Objects.equals(this.relatedParty, serviceCatalogCreate.relatedParty) && + Objects.equals(this.validFor, serviceCatalogCreate.validFor) && + Objects.equals(this.baseType, serviceCatalogCreate.baseType) && + Objects.equals(this.schemaLocation, serviceCatalogCreate.schemaLocation) && + Objects.equals(this.type, serviceCatalogCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, lastUpdate, lifecycleStatus, name, version, category, relatedParty, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCatalogCreate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogCreateEvent.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogCreateEvent.java new file mode 100644 index 0000000..d48cf87 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogCreateEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCatalogCreateEvent { + @JsonProperty("serviceCatalog") + private ServiceCatalog serviceCatalog = null; + + public ServiceCatalogCreateEvent serviceCatalog(ServiceCatalog serviceCatalog) { + this.serviceCatalog = serviceCatalog; + return this; + } + + /** + * The involved resource data for the event + * @return serviceCatalog + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ServiceCatalog getServiceCatalog() { + return serviceCatalog; + } + + public void setServiceCatalog(ServiceCatalog serviceCatalog) { + this.serviceCatalog = serviceCatalog; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCatalogCreateEvent serviceCatalogCreateEvent = (ServiceCatalogCreateEvent) o; + return Objects.equals(this.serviceCatalog, serviceCatalogCreateEvent.serviceCatalog); + } + + @Override + public int hashCode() { + return Objects.hash(serviceCatalog); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCatalogCreateEvent {\n"); + + sb.append(" serviceCatalog: ").append(toIndentedString(serviceCatalog)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogCreateNotification.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogCreateNotification.java new file mode 100644 index 0000000..305b799 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogCreateNotification.java @@ -0,0 +1,229 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCatalogCreateNotification { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("resourcePath") + private String resourcePath = null; + + @JsonProperty("event") + private ServiceCatalogCreateEvent event = null; + + public ServiceCatalogCreateNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification + * @return eventId + **/ + @Schema(description = "The identifier of the notification") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceCatalogCreateNotification eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceCatalogCreateNotification eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification + * @return eventType + **/ + @Schema(description = "The type of the notification") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceCatalogCreateNotification fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ServiceCatalogCreateNotification resourcePath(String resourcePath) { + this.resourcePath = resourcePath; + return this; + } + + /** + * The path identifying the resource object concerned by this notification + * @return resourcePath + **/ + @Schema(description = "The path identifying the resource object concerned by this notification") + + + public String getResourcePath() { + return resourcePath; + } + + public void setResourcePath(String resourcePath) { + this.resourcePath = resourcePath; + } + + public ServiceCatalogCreateNotification event(ServiceCatalogCreateEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceCatalogCreateEvent getEvent() { + return event; + } + + public void setEvent(ServiceCatalogCreateEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCatalogCreateNotification serviceCatalogCreateNotification = (ServiceCatalogCreateNotification) o; + return Objects.equals(this.eventId, serviceCatalogCreateNotification.eventId) && + Objects.equals(this.eventTime, serviceCatalogCreateNotification.eventTime) && + Objects.equals(this.eventType, serviceCatalogCreateNotification.eventType) && + Objects.equals(this.fieldPath, serviceCatalogCreateNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceCatalogCreateNotification.resourcePath) && + Objects.equals(this.event, serviceCatalogCreateNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCatalogCreateNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogDeleteEvent.java new file mode 100644 index 0000000..c670654 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogDeleteEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCatalogDeleteEvent { + @JsonProperty("serviceCatalog") + private ServiceCatalog serviceCatalog = null; + + public ServiceCatalogDeleteEvent serviceCatalog(ServiceCatalog serviceCatalog) { + this.serviceCatalog = serviceCatalog; + return this; + } + + /** + * The involved resource data for the event + * @return serviceCatalog + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ServiceCatalog getServiceCatalog() { + return serviceCatalog; + } + + public void setServiceCatalog(ServiceCatalog serviceCatalog) { + this.serviceCatalog = serviceCatalog; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCatalogDeleteEvent serviceCatalogDeleteEvent = (ServiceCatalogDeleteEvent) o; + return Objects.equals(this.serviceCatalog, serviceCatalogDeleteEvent.serviceCatalog); + } + + @Override + public int hashCode() { + return Objects.hash(serviceCatalog); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCatalogDeleteEvent {\n"); + + sb.append(" serviceCatalog: ").append(toIndentedString(serviceCatalog)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogDeleteNotification.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogDeleteNotification.java new file mode 100644 index 0000000..f337eb6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogDeleteNotification.java @@ -0,0 +1,229 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCatalogDeleteNotification { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("resourcePath") + private String resourcePath = null; + + @JsonProperty("event") + private ServiceCatalogDeleteEvent event = null; + + public ServiceCatalogDeleteNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification + * @return eventId + **/ + @Schema(description = "The identifier of the notification") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceCatalogDeleteNotification eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceCatalogDeleteNotification eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification + * @return eventType + **/ + @Schema(description = "The type of the notification") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceCatalogDeleteNotification fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ServiceCatalogDeleteNotification resourcePath(String resourcePath) { + this.resourcePath = resourcePath; + return this; + } + + /** + * The path identifying the resource object concerned by this notification + * @return resourcePath + **/ + @Schema(description = "The path identifying the resource object concerned by this notification") + + + public String getResourcePath() { + return resourcePath; + } + + public void setResourcePath(String resourcePath) { + this.resourcePath = resourcePath; + } + + public ServiceCatalogDeleteNotification event(ServiceCatalogDeleteEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceCatalogDeleteEvent getEvent() { + return event; + } + + public void setEvent(ServiceCatalogDeleteEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCatalogDeleteNotification serviceCatalogDeleteNotification = (ServiceCatalogDeleteNotification) o; + return Objects.equals(this.eventId, serviceCatalogDeleteNotification.eventId) && + Objects.equals(this.eventTime, serviceCatalogDeleteNotification.eventTime) && + Objects.equals(this.eventType, serviceCatalogDeleteNotification.eventType) && + Objects.equals(this.fieldPath, serviceCatalogDeleteNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceCatalogDeleteNotification.resourcePath) && + Objects.equals(this.event, serviceCatalogDeleteNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCatalogDeleteNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogUpdate.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogUpdate.java new file mode 100644 index 0000000..4b03ddf --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCatalogUpdate.java @@ -0,0 +1,349 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The root entity for service catalog management. A service catalog is a group of service specifications made available through service candidates that an organization provides to the consumers (internal consumers like its employees or B2B customers or B2C customers). A service catalog typically includes name, description and time period that is valid for. It will have a list of ServiceCandidate catalog items. A ServiceCandidate is an entity that makes a ServiceSpecification available to a catalog. A ServiceCandidate and its associated ServiceSpecification may be \"published\" - made visible -in any number of ServiceCatalogs, or in none. Skipped properties: id,href,lastUpdate + */ +@Schema(description = "The root entity for service catalog management. A service catalog is a group of service specifications made available through service candidates that an organization provides to the consumers (internal consumers like its employees or B2B customers or B2C customers). A service catalog typically includes name, description and time period that is valid for. It will have a list of ServiceCandidate catalog items. A ServiceCandidate is an entity that makes a ServiceSpecification available to a catalog. A ServiceCandidate and its associated ServiceSpecification may be \"published\" - made visible -in any number of ServiceCatalogs, or in none. Skipped properties: id,href,lastUpdate") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCatalogUpdate { + @JsonProperty("description") +protected String description = null; + + @JsonProperty("lifecycleStatus") + protected String lifecycleStatus = null; + + @JsonProperty("name") + protected String name = null; + + @JsonProperty("version") + protected String version = null; + + @JsonProperty("category") + @Valid + protected List category = null; + + @JsonProperty("relatedParty") + @Valid + protected List relatedParty = null; + + @JsonProperty("validFor") + protected TimePeriod validFor = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@type") + protected String type = null; + + public ServiceCatalogUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Description of this catalog + * @return description + **/ + @Schema(description = "Description of this catalog") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceCatalogUpdate lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Used to indicate the current lifecycle status + * @return lifecycleStatus + **/ + @Schema(description = "Used to indicate the current lifecycle status") + + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public ServiceCatalogUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the service catalog + * @return name + **/ + @Schema(description = "Name of the service catalog") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ServiceCatalogUpdate version(String version) { + this.version = version; + return this; + } + + /** + * ServiceCatalog version + * @return version + **/ + @Schema(description = "ServiceCatalog version") + + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public ServiceCatalogUpdate category(List category) { + this.category = category; + return this; + } + + public ServiceCatalogUpdate addCategoryItem(ServiceCategoryRef categoryItem) { + if (this.category == null) { + this.category = new ArrayList(); + } + this.category.add(categoryItem); + return this; + } + + /** + * List of service categories associated with this catalog + * @return category + **/ + @Schema(description = "List of service categories associated with this catalog") + + @Valid + + public List getCategory() { + return category; + } + + public void setCategory(List category) { + this.category = category; + } + + public ServiceCatalogUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ServiceCatalogUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * List of parties or party roles related to this category + * @return relatedParty + **/ + @Schema(description = "List of parties or party roles related to this category") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public ServiceCatalogUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the service catalog is valid + * @return validFor + **/ + @Schema(description = "The period for which the service catalog is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ServiceCatalogUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ServiceCatalogUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ServiceCatalogUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCatalogUpdate serviceCatalogUpdate = (ServiceCatalogUpdate) o; + return Objects.equals(this.description, serviceCatalogUpdate.description) && + Objects.equals(this.lifecycleStatus, serviceCatalogUpdate.lifecycleStatus) && + Objects.equals(this.name, serviceCatalogUpdate.name) && + Objects.equals(this.version, serviceCatalogUpdate.version) && + Objects.equals(this.category, serviceCatalogUpdate.category) && + Objects.equals(this.relatedParty, serviceCatalogUpdate.relatedParty) && + Objects.equals(this.validFor, serviceCatalogUpdate.validFor) && + Objects.equals(this.baseType, serviceCatalogUpdate.baseType) && + Objects.equals(this.schemaLocation, serviceCatalogUpdate.schemaLocation) && + Objects.equals(this.type, serviceCatalogUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, lifecycleStatus, name, version, category, relatedParty, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCatalogUpdate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategory.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategory.java new file mode 100644 index 0000000..c47aff6 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategory.java @@ -0,0 +1,314 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinTable; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import jakarta.persistence.Transient; +import jakarta.validation.Valid; + +/** + * The (service) category resource is used to group service candidates in + * logical containers. Categories can contain other categories. + */ +@Schema(description = "The (service) category resource is used to group service candidates in logical containers. Categories can contain other categories.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Entity(name = "ServiceCategory") +@Table( name = "ServiceCategory" ) +public class ServiceCategory extends BaseEntity { + + + @JsonProperty("isRoot") + private Boolean isRoot = null; + + + @JsonProperty("parentId") + private String parentId = null; + + + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.DETACH }) + @JoinTable() + @JsonIgnore + private Set categoryObj = new HashSet<>(); + + + + @ManyToMany(cascade = { CascadeType.MERGE, CascadeType.REMOVE } ) + @JoinTable() + @JsonIgnore + private Set serviceCandidateObj = new HashSet<>(); + + @JsonProperty("id") + protected String id = null; + + + /** + * @return the id + */ + public String getId() { + id = uuid; + return uuid; + } + +// @Transient +// @JsonProperty("serviceCandidate") +// @Valid +// private List serviceCandidate = null; + + + public ServiceCategory() { + super(); + this.baseType = "BaseEntity"; + this.type = "ServiceCategory"; + } + + + + + /** + * If true, this Boolean indicates that the category is a root of categories + * + * @return isRoot + **/ + @Schema(description = "If true, this Boolean indicates that the category is a root of categories") + + public Boolean isIsRoot() { + return isRoot; + } + + public void setIsRoot(Boolean isRoot) { + if ( isRoot == null ) { + this.isRoot = true; + } else { + this.isRoot = isRoot; + } + } + + + + /** + * Unique identifier of the parent category + * + * @return parentId + **/ + @Schema(description = "Unique identifier of the parent category") + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + + + + + /** + * List of child categories in the tree for in this category + * + * @return category + **/ + @Schema(description = "List of child categories in the tree for in this category") + @Transient + @JsonProperty("category") + @Valid + public List getCategoryRefs() { + + List category = new ArrayList<>(); + + for (ServiceCategory serviceCategory : categoryObj) { + ServiceCategoryRef scr = new ServiceCategoryRef(); + scr.setId( serviceCategory.getId()); + scr.setName( serviceCategory.getName()); + scr.setBaseType( ServiceCategoryRef.class.getName() ); + category.add(scr); + + } + + return category; + } + + + /** + * @param categoryObj the categoryObj to set + */ + @JsonProperty("category") + public void setCategoryObj(List alist) { + this.categoryObj.clear(); + for (ServiceCategoryRef serviceCategoryRef : alist) { + ServiceCategory sc = new ServiceCategory(); + sc.setUuid( serviceCategoryRef.getId()); + sc.setName(serviceCategoryRef.getName()); + sc.setBaseType(serviceCategoryRef.getBaseType()); + this.categoryObj.add(sc); + } + } + + + /** + * @return the categoryObj + */ + public Set getCategoryObj() { + return categoryObj; + } + + /** + * @param categoryObj the categoryObj to set + */ + public void setCategoryObj(Set categoryObj) { + this.categoryObj = categoryObj; + } + + + + /** + * List of service candidates associated with this category + * + * @return serviceCandidate + **/ + @Schema(description = "List of service candidates associated with this category") + + @Valid + @JsonProperty("serviceCandidate") + public List getServiceCandidateRefs() { + + List scref = new ArrayList<>(); + + for (ServiceCandidate sc : serviceCandidateObj) { + ServiceCandidateRef scr = new ServiceCandidateRef(); + scr.setId( sc.getId()); + scr.setName( sc.getName()); + scr.setVersion( sc.getVersion()); + scr.setBaseType( ServiceCategoryRef.class.getName() ); + scref.add(scr); + } + + return scref; + } + + + + /** + * @return the serviceCandidateObj + */ + public Set getServiceCandidateObj() { + return serviceCandidateObj; + } + + + + + /** + * @param serviceCandidateObj the serviceCandidateObj to set + */ + @JsonProperty("serviceCandidate") + public void setServiceCandidateObj(Set serviceCandidateObj) { + this.serviceCandidateObj = serviceCandidateObj; + } + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCategory serviceCategory = (ServiceCategory) o; + return Objects.equals(this.id, serviceCategory.id) && Objects.equals(this.href, serviceCategory.href) + && Objects.equals(this.description, serviceCategory.description) + && Objects.equals(this.isRoot, serviceCategory.isRoot) + && Objects.equals(this.lastUpdate, serviceCategory.lastUpdate) + && Objects.equals(this.lifecycleStatus, serviceCategory.lifecycleStatus) + && Objects.equals(this.name, serviceCategory.name) + && Objects.equals(this.parentId, serviceCategory.parentId) + && Objects.equals(this.version, serviceCategory.version) + && Objects.equals(this.getCategoryRefs(), serviceCategory.getCategoryRefs()) + && Objects.equals(this.getServiceCandidateRefs(), serviceCategory.getServiceCandidateRefs()) + && Objects.equals(this.validFor, serviceCategory.validFor) + && Objects.equals(this.baseType, serviceCategory.baseType) + && Objects.equals(this.schemaLocation, serviceCategory.schemaLocation) + && Objects.equals(this.type, serviceCategory.type); + } +// +// @Override +// public int hashCode() { +// return Objects.hash(id, href, description, isRoot, lastUpdate, lifecycleStatus, name, parentId, version, +//// getCategoryObj(), getServiceCandidateObj(), +// validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCategory {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isRoot: ").append(toIndentedString(isRoot)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" parentId: ").append(toIndentedString(parentId)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" category: ").append(toIndentedString(getCategoryRefs())).append("\n"); + sb.append(" serviceCandidate: ").append(toIndentedString(getServiceCandidateRefs())).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryChangeEvent.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryChangeEvent.java new file mode 100644 index 0000000..5f8037f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryChangeEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCategoryChangeEvent { + @JsonProperty("serviceCategory") + private ServiceCategory serviceCategory = null; + + public ServiceCategoryChangeEvent serviceCategory(ServiceCategory serviceCategory) { + this.serviceCategory = serviceCategory; + return this; + } + + /** + * The involved resource data for the event + * @return serviceCategory + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ServiceCategory getServiceCategory() { + return serviceCategory; + } + + public void setServiceCategory(ServiceCategory serviceCategory) { + this.serviceCategory = serviceCategory; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCategoryChangeEvent serviceCategoryChangeEvent = (ServiceCategoryChangeEvent) o; + return Objects.equals(this.serviceCategory, serviceCategoryChangeEvent.serviceCategory); + } + + @Override + public int hashCode() { + return Objects.hash(serviceCategory); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCategoryChangeEvent {\n"); + + sb.append(" serviceCategory: ").append(toIndentedString(serviceCategory)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryChangeNotification.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryChangeNotification.java new file mode 100644 index 0000000..4c67d11 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryChangeNotification.java @@ -0,0 +1,229 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCategoryChangeNotification { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("resourcePath") + private String resourcePath = null; + + @JsonProperty("event") + private ServiceCategoryChangeEvent event = null; + + public ServiceCategoryChangeNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification + * @return eventId + **/ + @Schema(description = "The identifier of the notification") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceCategoryChangeNotification eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceCategoryChangeNotification eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification + * @return eventType + **/ + @Schema(description = "The type of the notification") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceCategoryChangeNotification fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ServiceCategoryChangeNotification resourcePath(String resourcePath) { + this.resourcePath = resourcePath; + return this; + } + + /** + * The path identifying the resource object concerned by this notification + * @return resourcePath + **/ + @Schema(description = "The path identifying the resource object concerned by this notification") + + + public String getResourcePath() { + return resourcePath; + } + + public void setResourcePath(String resourcePath) { + this.resourcePath = resourcePath; + } + + public ServiceCategoryChangeNotification event(ServiceCategoryChangeEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceCategoryChangeEvent getEvent() { + return event; + } + + public void setEvent(ServiceCategoryChangeEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCategoryChangeNotification serviceCategoryChangeNotification = (ServiceCategoryChangeNotification) o; + return Objects.equals(this.eventId, serviceCategoryChangeNotification.eventId) && + Objects.equals(this.eventTime, serviceCategoryChangeNotification.eventTime) && + Objects.equals(this.eventType, serviceCategoryChangeNotification.eventType) && + Objects.equals(this.fieldPath, serviceCategoryChangeNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceCategoryChangeNotification.resourcePath) && + Objects.equals(this.event, serviceCategoryChangeNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCategoryChangeNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryCreate.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryCreate.java new file mode 100644 index 0000000..263f1ae --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryCreate.java @@ -0,0 +1,130 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The (service) category resource is used to group service candidates in + * logical containers. Categories can contain other categories. Skipped + * properties: id,href + */ +@Schema(description = "The (service) category resource is used to group service candidates in logical containers. Categories can contain other categories. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCategoryCreate extends ServiceCategoryUpdate { + + + @JsonProperty("lastUpdate") + private OffsetDateTime lastUpdate = null; + + + + /** + * Date and time of the last update + * + * @return lastUpdate + **/ + @Schema(description = "Date and time of the last update") + + @Valid + + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCategoryCreate serviceCategoryCreate = (ServiceCategoryCreate) o; + return Objects.equals(this.description, serviceCategoryCreate.description) + && Objects.equals(this.isRoot, serviceCategoryCreate.isRoot) + && Objects.equals(this.lastUpdate, serviceCategoryCreate.lastUpdate) + && Objects.equals(this.lifecycleStatus, serviceCategoryCreate.lifecycleStatus) + && Objects.equals(this.name, serviceCategoryCreate.name) + && Objects.equals(this.parentId, serviceCategoryCreate.parentId) + && Objects.equals(this.version, serviceCategoryCreate.version) + && Objects.equals(this.category, serviceCategoryCreate.category) + && Objects.equals(this.serviceCandidate, serviceCategoryCreate.serviceCandidate) + && Objects.equals(this.validFor, serviceCategoryCreate.validFor) + && Objects.equals(this.baseType, serviceCategoryCreate.baseType) + && Objects.equals(this.schemaLocation, serviceCategoryCreate.schemaLocation) + && Objects.equals(this.type, serviceCategoryCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, isRoot, lastUpdate, lifecycleStatus, name, parentId, version, category, + serviceCandidate, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCategoryCreate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isRoot: ").append(toIndentedString(isRoot)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" parentId: ").append(toIndentedString(parentId)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" serviceCandidate: ").append(toIndentedString(serviceCandidate)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryCreateEvent.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryCreateEvent.java new file mode 100644 index 0000000..4504d5c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryCreateEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCategoryCreateEvent { + @JsonProperty("serviceCategory") + private ServiceCategory serviceCategory = null; + + public ServiceCategoryCreateEvent serviceCategory(ServiceCategory serviceCategory) { + this.serviceCategory = serviceCategory; + return this; + } + + /** + * The involved resource data for the event + * @return serviceCategory + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ServiceCategory getServiceCategory() { + return serviceCategory; + } + + public void setServiceCategory(ServiceCategory serviceCategory) { + this.serviceCategory = serviceCategory; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCategoryCreateEvent serviceCategoryCreateEvent = (ServiceCategoryCreateEvent) o; + return Objects.equals(this.serviceCategory, serviceCategoryCreateEvent.serviceCategory); + } + + @Override + public int hashCode() { + return Objects.hash(serviceCategory); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCategoryCreateEvent {\n"); + + sb.append(" serviceCategory: ").append(toIndentedString(serviceCategory)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryCreateNotification.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryCreateNotification.java new file mode 100644 index 0000000..bbfc7c0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryCreateNotification.java @@ -0,0 +1,229 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCategoryCreateNotification { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("resourcePath") + private String resourcePath = null; + + @JsonProperty("event") + private ServiceCategoryCreateEvent event = null; + + public ServiceCategoryCreateNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification + * @return eventId + **/ + @Schema(description = "The identifier of the notification") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceCategoryCreateNotification eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceCategoryCreateNotification eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification + * @return eventType + **/ + @Schema(description = "The type of the notification") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceCategoryCreateNotification fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ServiceCategoryCreateNotification resourcePath(String resourcePath) { + this.resourcePath = resourcePath; + return this; + } + + /** + * The path identifying the resource object concerned by this notification + * @return resourcePath + **/ + @Schema(description = "The path identifying the resource object concerned by this notification") + + + public String getResourcePath() { + return resourcePath; + } + + public void setResourcePath(String resourcePath) { + this.resourcePath = resourcePath; + } + + public ServiceCategoryCreateNotification event(ServiceCategoryCreateEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceCategoryCreateEvent getEvent() { + return event; + } + + public void setEvent(ServiceCategoryCreateEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCategoryCreateNotification serviceCategoryCreateNotification = (ServiceCategoryCreateNotification) o; + return Objects.equals(this.eventId, serviceCategoryCreateNotification.eventId) && + Objects.equals(this.eventTime, serviceCategoryCreateNotification.eventTime) && + Objects.equals(this.eventType, serviceCategoryCreateNotification.eventType) && + Objects.equals(this.fieldPath, serviceCategoryCreateNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceCategoryCreateNotification.resourcePath) && + Objects.equals(this.event, serviceCategoryCreateNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCategoryCreateNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryDeleteEvent.java new file mode 100644 index 0000000..c08f183 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryDeleteEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCategoryDeleteEvent { + @JsonProperty("serviceCategory") + private ServiceCategory serviceCategory = null; + + public ServiceCategoryDeleteEvent serviceCategory(ServiceCategory serviceCategory) { + this.serviceCategory = serviceCategory; + return this; + } + + /** + * The involved resource data for the event + * @return serviceCategory + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ServiceCategory getServiceCategory() { + return serviceCategory; + } + + public void setServiceCategory(ServiceCategory serviceCategory) { + this.serviceCategory = serviceCategory; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCategoryDeleteEvent serviceCategoryDeleteEvent = (ServiceCategoryDeleteEvent) o; + return Objects.equals(this.serviceCategory, serviceCategoryDeleteEvent.serviceCategory); + } + + @Override + public int hashCode() { + return Objects.hash(serviceCategory); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCategoryDeleteEvent {\n"); + + sb.append(" serviceCategory: ").append(toIndentedString(serviceCategory)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryDeleteNotification.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryDeleteNotification.java new file mode 100644 index 0000000..3388698 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryDeleteNotification.java @@ -0,0 +1,229 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCategoryDeleteNotification { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("resourcePath") + private String resourcePath = null; + + @JsonProperty("event") + private ServiceCategoryDeleteEvent event = null; + + public ServiceCategoryDeleteNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification + * @return eventId + **/ + @Schema(description = "The identifier of the notification") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceCategoryDeleteNotification eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceCategoryDeleteNotification eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification + * @return eventType + **/ + @Schema(description = "The type of the notification") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceCategoryDeleteNotification fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ServiceCategoryDeleteNotification resourcePath(String resourcePath) { + this.resourcePath = resourcePath; + return this; + } + + /** + * The path identifying the resource object concerned by this notification + * @return resourcePath + **/ + @Schema(description = "The path identifying the resource object concerned by this notification") + + + public String getResourcePath() { + return resourcePath; + } + + public void setResourcePath(String resourcePath) { + this.resourcePath = resourcePath; + } + + public ServiceCategoryDeleteNotification event(ServiceCategoryDeleteEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceCategoryDeleteEvent getEvent() { + return event; + } + + public void setEvent(ServiceCategoryDeleteEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCategoryDeleteNotification serviceCategoryDeleteNotification = (ServiceCategoryDeleteNotification) o; + return Objects.equals(this.eventId, serviceCategoryDeleteNotification.eventId) && + Objects.equals(this.eventTime, serviceCategoryDeleteNotification.eventTime) && + Objects.equals(this.eventType, serviceCategoryDeleteNotification.eventType) && + Objects.equals(this.fieldPath, serviceCategoryDeleteNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceCategoryDeleteNotification.resourcePath) && + Objects.equals(this.event, serviceCategoryDeleteNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCategoryDeleteNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryRef.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryRef.java new file mode 100644 index 0000000..a641f0f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryRef.java @@ -0,0 +1,138 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * The (service) category resource is used to group service candidates in + * logical containers. Categories can contain other categories. + */ +@Schema(description = "The (service) category resource is used to group service candidates in logical containers. Categories can contain other categories.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") +@JsonIgnoreProperties( {"uuid"} ) +public class ServiceCategoryRef extends BaseRootNamedEntity { + + + @JsonProperty("@referredType") + private String referredType = null; + + public ServiceCategoryRef() { + super(); + this.baseType = "BaseRootEntity"; + this.type = this.getClass().getName(); + } + + public ServiceCategoryRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + @JsonProperty("id") + protected String id = null; + + + + + /** + * @return the id + */ + public String getId() { + return id; + } + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCategoryRef serviceCategoryRef = (ServiceCategoryRef) o; + return Objects.equals(this.id, serviceCategoryRef.id) && Objects.equals(this.href, serviceCategoryRef.href) + && Objects.equals(this.name, serviceCategoryRef.name) + && Objects.equals(this.baseType, serviceCategoryRef.baseType) + && Objects.equals(this.schemaLocation, serviceCategoryRef.schemaLocation) + && Objects.equals(this.type, serviceCategoryRef.type) + && Objects.equals(this.referredType, serviceCategoryRef.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCategoryRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryUpdate.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryUpdate.java new file mode 100644 index 0000000..ca8597e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceCategoryUpdate.java @@ -0,0 +1,398 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The (service) category resource is used to group service candidates in logical containers. Categories can contain other categories. Skipped properties: id,href,lastUpdate + */ +@Schema(description = "The (service) category resource is used to group service candidates in logical containers. Categories can contain other categories. Skipped properties: id,href,lastUpdate") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceCategoryUpdate { + @JsonProperty("description") + protected String description = null; + + @JsonProperty("isRoot") + protected Boolean isRoot = null; + + @JsonProperty("lifecycleStatus") + protected String lifecycleStatus = null; + + @JsonProperty("name") + protected String name = null; + + @JsonProperty("parentId") + protected String parentId = null; + + @JsonProperty("version") + protected String version = null; + + @JsonProperty("category") + @Valid + protected List category = null; + + @JsonProperty("serviceCandidate") + @Valid + protected List serviceCandidate = null; + + @JsonProperty("validFor") + protected TimePeriod validFor = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@type") + protected String type = null; + + public ServiceCategoryUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Description of the category + * @return description + **/ + @Schema(description = "Description of the category") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceCategoryUpdate isRoot(Boolean isRoot) { + this.isRoot = isRoot; + return this; + } + + /** + * If true, this Boolean indicates that the category is a root of categories + * @return isRoot + **/ + @Schema(description = "If true, this Boolean indicates that the category is a root of categories") + + + public Boolean isIsRoot() { + return isRoot; + } + + public void setIsRoot(Boolean isRoot) { + this.isRoot = isRoot; + } + + public ServiceCategoryUpdate lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Used to indicate the current lifecycle status + * @return lifecycleStatus + **/ + @Schema(description = "Used to indicate the current lifecycle status") + + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public ServiceCategoryUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the category + * @return name + **/ + @Schema(description = "Name of the category") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ServiceCategoryUpdate parentId(String parentId) { + this.parentId = parentId; + return this; + } + + /** + * Unique identifier of the parent category + * @return parentId + **/ + @Schema(description = "Unique identifier of the parent category") + + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public ServiceCategoryUpdate version(String version) { + this.version = version; + return this; + } + + /** + * ServiceCategory version + * @return version + **/ + @Schema(description = "ServiceCategory version") + + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public ServiceCategoryUpdate category(List category) { + this.category = category; + return this; + } + + public ServiceCategoryUpdate addCategoryItem(ServiceCategoryRef categoryItem) { + if (this.category == null) { + this.category = new ArrayList(); + } + this.category.add(categoryItem); + return this; + } + + /** + * List of child categories in the tree for in this category + * @return category + **/ + @Schema(description = "List of child categories in the tree for in this category") + + @Valid + + public List getCategory() { + return category; + } + + public void setCategory(List category) { + this.category = category; + } + + public ServiceCategoryUpdate serviceCandidate(List serviceCandidate) { + this.serviceCandidate = serviceCandidate; + return this; + } + + public ServiceCategoryUpdate addServiceCandidateItem(ServiceCandidateRef serviceCandidateItem) { + if (this.serviceCandidate == null) { + this.serviceCandidate = new ArrayList(); + } + this.serviceCandidate.add(serviceCandidateItem); + return this; + } + + /** + * List of service candidates associated with this category + * @return serviceCandidate + **/ + @Schema(description = "List of service candidates associated with this category") + + @Valid + + public List getServiceCandidate() { + return serviceCandidate; + } + + public void setServiceCandidate(List serviceCandidate) { + this.serviceCandidate = serviceCandidate; + } + + public ServiceCategoryUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the category is valid + * @return validFor + **/ + @Schema(description = "The period for which the category is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ServiceCategoryUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ServiceCategoryUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ServiceCategoryUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCategoryUpdate serviceCategoryUpdate = (ServiceCategoryUpdate) o; + return Objects.equals(this.description, serviceCategoryUpdate.description) && + Objects.equals(this.isRoot, serviceCategoryUpdate.isRoot) && + Objects.equals(this.lifecycleStatus, serviceCategoryUpdate.lifecycleStatus) && + Objects.equals(this.name, serviceCategoryUpdate.name) && + Objects.equals(this.parentId, serviceCategoryUpdate.parentId) && + Objects.equals(this.version, serviceCategoryUpdate.version) && + Objects.equals(this.category, serviceCategoryUpdate.category) && + Objects.equals(this.serviceCandidate, serviceCategoryUpdate.serviceCandidate) && + Objects.equals(this.validFor, serviceCategoryUpdate.validFor) && + Objects.equals(this.baseType, serviceCategoryUpdate.baseType) && + Objects.equals(this.schemaLocation, serviceCategoryUpdate.schemaLocation) && + Objects.equals(this.type, serviceCategoryUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, isRoot, lifecycleStatus, name, parentId, version, category, serviceCandidate, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCategoryUpdate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isRoot: ").append(toIndentedString(isRoot)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" parentId: ").append(toIndentedString(parentId)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" serviceCandidate: ").append(toIndentedString(serviceCandidate)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceLevelSpecificationRef.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceLevelSpecificationRef.java new file mode 100644 index 0000000..1cb1bcc --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceLevelSpecificationRef.java @@ -0,0 +1,149 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; + +/** + * A Service Level Specification represents a pre-defined or negotiated set of + * Service Level Objectives. In addition, certain consequences are associated + * with not meeting the Service Level Objectives. Service Level Agreements are + * expressed in terms of Service Level Specifications. + */ +@Schema(description = "A Service Level Specification represents a pre-defined or negotiated set of Service Level Objectives. In addition, certain consequences are associated with not meeting the Service Level Objectives. Service Level Agreements are expressed in terms of Service Level Specifications.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Entity(name = "ServiceLevelSpecificationRef") +public class ServiceLevelSpecificationRef extends BaseRootNamedEntity { + + @JsonProperty("@referredType") + private String referredType = null; + + @JsonProperty("id") + protected String id = null; + + /** + * @return the id + */ + public String getId() { + return id; + } + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + public ServiceLevelSpecificationRef id(String id) { + this.id = id; + return this; + } + + public ServiceLevelSpecificationRef() { + super(); + this.baseType = "BaseRootEntity"; + this.type = this.getClass().getName(); + } + + public ServiceLevelSpecificationRef(ServiceLevelSpecificationRef r) { + this(); + name = r.name; + id = r.id; + } + + public ServiceLevelSpecificationRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceLevelSpecificationRef serviceLevelSpecificationRef = (ServiceLevelSpecificationRef) o; + return Objects.equals(this.id, serviceLevelSpecificationRef.id) + && Objects.equals(this.href, serviceLevelSpecificationRef.href) + && Objects.equals(this.name, serviceLevelSpecificationRef.name) + && Objects.equals(this.baseType, serviceLevelSpecificationRef.baseType) + && Objects.equals(this.schemaLocation, serviceLevelSpecificationRef.schemaLocation) + && Objects.equals(this.type, serviceLevelSpecificationRef.type) + && Objects.equals(this.referredType, serviceLevelSpecificationRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(id, href, name, baseType, schemaLocation, type, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceLevelSpecificationRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecCharRelationship.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecCharRelationship.java new file mode 100644 index 0000000..2208da5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecCharRelationship.java @@ -0,0 +1,287 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.hibernate.annotations.GenericGenerator; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.validation.Valid; + +/** + * An aggregation, migration, substitution, dependency or exclusivity + * relationship between/among serviceSpecCharacteristics. + */ +@Schema(description = "An aggregation, migration, substitution, dependency or exclusivity relationship between/among serviceSpecCharacteristics.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") +@Entity(name = "ServiceSpecCharRelationship") +public class ServiceSpecCharRelationship { + + @Id + @GeneratedValue(generator = "uuid") + @GenericGenerator(name = "uuid", strategy = "uuid2") + protected String uuid = null; + + + @JsonProperty("id") + protected String id = null; + + @JsonProperty("name") + protected String name = null; + + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("@baseType") + protected String baseType = "BaseEntity"; + + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + + @JsonProperty("@type") + protected String type = null; + + @JsonProperty("role") + private String role = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + + public ServiceSpecCharRelationship() { + } + + public ServiceSpecCharRelationship(ServiceSpecCharRelationship src ){ + name = src.name; + relationshipType = src.relationshipType; + role = src.role; + validFor = new TimePeriod( src.validFor ); + id = src.id; + } + + /** + * @return the id + */ + public String getId() { + return id; + } + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + /** + * @return the name + */ + public String getName() { + return name; + } + + /** + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + + /** + * @return the baseType + */ + public String getBaseType() { + return baseType; + } + + /** + * @param baseType the baseType to set + */ + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + /** + * @return the schemaLocation + */ + public String getSchemaLocation() { + return schemaLocation; + } + + /** + * @param schemaLocation the schemaLocation to set + */ + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + /** + * @return the type + */ + public String getType() { + return type; + } + + /** + * @param type the type to set + */ + public void setType(String type) { + this.type = type; + } + + /** + * @return the uuid + */ + public String getUuid() { + return uuid; + } + + /** + * @param uuid the uuid to set + */ + public void setUuid(String uuid) { + this.uuid = uuid; + } + + public ServiceSpecCharRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * Type of relationship such as aggregation, migration, substitution, + * dependency, exclusivity + * + * @return relationshipType + **/ + @Schema(description = "Type of relationship such as aggregation, migration, substitution, dependency, exclusivity") + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public ServiceSpecCharRelationship role(String role) { + this.role = role; + return this; + } + + /** + * The association role for this service specification + * + * @return role + **/ + @Schema(description = "The association role for this service specification") + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public ServiceSpecCharRelationship validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the serviceSpecCharRelationship is valid + * + * @return validFor + **/ + @Schema(description = "The period for which the serviceSpecCharRelationship is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceSpecCharRelationship serviceSpecCharRelationship = (ServiceSpecCharRelationship) o; + return Objects.equals(this.id, serviceSpecCharRelationship.id) + && Objects.equals(this.name, serviceSpecCharRelationship.name) + && Objects.equals(this.relationshipType, serviceSpecCharRelationship.relationshipType) + && Objects.equals(this.role, serviceSpecCharRelationship.role) + && Objects.equals(this.validFor, serviceSpecCharRelationship.validFor) + && Objects.equals(this.baseType, serviceSpecCharRelationship.baseType) + && Objects.equals(this.schemaLocation, serviceSpecCharRelationship.schemaLocation) + && Objects.equals(this.type, serviceSpecCharRelationship.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, name, relationshipType, role, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceSpecCharRelationship {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecCharacteristic.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecCharacteristic.java new file mode 100644 index 0000000..237cf53 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecCharacteristic.java @@ -0,0 +1,623 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Lob; +import jakarta.persistence.OneToMany; +import jakarta.validation.Valid; + +/** + * This class represents the key features of this service specification. For + * example, bandwidth is a characteristic of many different types of services; + * if bandwidth is a relevant characteristic (e.g., from the point-of-view of a + * Customer obtaining this Service via a Product) then bandwidth would be a + * ServiceSpecCharacteristic for that particular Service. + */ +@Schema(description = "This class represents the key features of this service specification. For example, bandwidth is a characteristic of many different types of services; if bandwidth is a relevant characteristic (e.g., from the point-of-view of a Customer obtaining this Service via a Product) then bandwidth would be a ServiceSpecCharacteristic for that particular Service.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Entity(name = "ServiceSpecCharacteristic") +public class ServiceSpecCharacteristic extends BaseRootNamedEntity { + @JsonProperty("configurable") + private Boolean configurable = null; + + @Lob + @Column(name = "LDESCRIPTION", columnDefinition = "LONGTEXT") + @JsonProperty("description") + private String description = null; + + @JsonProperty("extensible") + private Boolean extensible = null; + + @JsonProperty("isUnique") + private Boolean isUnique = null; + + @JsonProperty("maxCardinality") + private Integer maxCardinality = null; + + @JsonProperty("minCardinality") + private Integer minCardinality = null; + + @JsonProperty("regex") + private String regex = null; + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("serviceSpecCharRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set serviceSpecCharRelationship = new HashSet<>(); + + @JsonProperty("serviceSpecCharacteristicValue") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set serviceSpecCharacteristicValue = new HashSet<>(); + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@valueSchemaLocation") + private String valueSchemaLocation = null; + + + @JsonProperty("id") + protected String id = null; + + /** + * @return the id + */ + public String getId() { + id = uuid; + return uuid; + } + + public ServiceSpecCharacteristic configurable(Boolean configurable) { + this.configurable = configurable; + return this; + } + + public ServiceSpecCharacteristic() { + super(); + this.baseType = "BaseRootEntity"; + this.type = this.getClass().getName(); + } + + public ServiceSpecCharacteristic(ServiceSpecCharacteristic src) { + this(); + configurable = src.configurable; + description = src.description; + extensible = src.extensible; + isUnique = src.isUnique; + maxCardinality = src.maxCardinality; + minCardinality = src.minCardinality; + name = src.name; + regex = src.regex; + valueType = src.valueType; + validFor = new TimePeriod( src.validFor ) ; + + for (ServiceSpecCharRelationship r : src.serviceSpecCharRelationship) { + this.addServiceSpecCharRelationshipItem( new ServiceSpecCharRelationship( r )); + } + + for (ServiceSpecCharacteristicValue r : src.serviceSpecCharacteristicValue) { + this.addServiceSpecCharacteristicValueItem( new ServiceSpecCharacteristicValue(r) ); + } + + } + + /** + * If true, the Boolean indicates that the serviceSpecCharacteristic is + * configurable + * + * @return configurable + **/ + @Schema(description = "If true, the Boolean indicates that the serviceSpecCharacteristic is configurable") + + public Boolean isConfigurable() { + return configurable; + } + + public void setConfigurable(Boolean configurable) { + this.configurable = configurable; + } + + public ServiceSpecCharacteristic description(String description) { + this.description = description; + return this; + } + + /** + * A narrative that explains in detail what the serviceSpecCharacteristic is + * + * @return description + **/ + @Schema(description = "A narrative that explains in detail what the serviceSpecCharacteristic is") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceSpecCharacteristic extensible(Boolean extensible) { + this.extensible = extensible; + return this; + } + + /** + * An indicator that specifies that the values for the characteristic can be + * extended by adding new values when instantiating a characteristic for an + * Entity. + * + * @return extensible + **/ + @Schema(description = "An indicator that specifies that the values for the characteristic can be extended by adding new values when instantiating a characteristic for an Entity.") + + public Boolean isExtensible() { + return extensible; + } + + public void setExtensible(Boolean extensible) { + this.extensible = extensible; + } + + public ServiceSpecCharacteristic isUnique(Boolean isUnique) { + this.isUnique = isUnique; + return this; + } + + /** + * An indicator that specifies if a value is unique for the specification. + * Possible values are; \"unique while value is in effect\" and \"unique + * whether value is in effect or not\" + * + * @return isUnique + **/ + @Schema(description = "An indicator that specifies if a value is unique for the specification. Possible values are; \"unique while value is in effect\" and \"unique whether value is in effect or not\"") + + public Boolean isIsUnique() { + return isUnique; + } + + public void setIsUnique(Boolean isUnique) { + this.isUnique = isUnique; + } + + public ServiceSpecCharacteristic maxCardinality(Integer maxCardinality) { + this.maxCardinality = maxCardinality; + return this; + } + + /** + * The maximum number of instances a CharacteristicValue can take on. For + * example, zero to five phone numbers in a group calling plan, where five + * is the value for the maxCardinality. + * + * @return maxCardinality + **/ + @Schema(description = "The maximum number of instances a CharacteristicValue can take on. For example, zero to five phone numbers in a group calling plan, where five is the value for the maxCardinality.") + + public Integer getMaxCardinality() { + return maxCardinality; + } + + public void setMaxCardinality(Integer maxCardinality) { + this.maxCardinality = maxCardinality; + } + + public ServiceSpecCharacteristic minCardinality(Integer minCardinality) { + this.minCardinality = minCardinality; + return this; + } + + /** + * The minimum number of instances a CharacteristicValue can take on. For + * example, zero to five phone numbers in a group calling plan, where zero + * is the value for the minCardinality. + * + * @return minCardinality + **/ + @Schema(description = "The minimum number of instances a CharacteristicValue can take on. For example, zero to five phone numbers in a group calling plan, where zero is the value for the minCardinality.") + + public Integer getMinCardinality() { + return minCardinality; + } + + public void setMinCardinality(Integer minCardinality) { + this.minCardinality = minCardinality; + } + + public ServiceSpecCharacteristic regex(String regex) { + this.regex = regex; + return this; + } + + /** + * A rule or principle represented in regular expression used to derive the + * value of a characteristic value. + * + * @return regex + **/ + @Schema(description = "A rule or principle represented in regular expression used to derive the value of a characteristic value.") + + public String getRegex() { + return regex; + } + + public void setRegex(String regex) { + this.regex = regex; + } + + public ServiceSpecCharacteristic valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * A kind of value that the characteristic can take on, such as numeric, + * text and so forth + * + * @return valueType + **/ + @Schema(description = "A kind of value that the characteristic can take on, such as numeric, text and so forth") + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public ServiceSpecCharacteristic serviceSpecCharRelationship( + Set serviceSpecCharRelationship) { + this.serviceSpecCharRelationship = serviceSpecCharRelationship; + return this; + } + + public ServiceSpecCharacteristic addServiceSpecCharRelationshipItem( + ServiceSpecCharRelationship serviceSpecCharRelationshipItem) { + if (this.serviceSpecCharRelationship == null) { + this.serviceSpecCharRelationship = new HashSet(); + } + this.serviceSpecCharRelationship.add(serviceSpecCharRelationshipItem); + return this; + } + + /** + * A list of service spec char relationships (ServiceSpecCharRelationship + * [*]). An aggregation, migration, substitution, dependency or exclusivity + * relationship between/among Specification Characteristics. + * + * @return serviceSpecCharRelationship + **/ + @Schema(description = "A list of service spec char relationships (ServiceSpecCharRelationship [*]). An aggregation, migration, substitution, dependency or exclusivity relationship between/among Specification Characteristics.") + + @Valid + + public Set getServiceSpecCharRelationship() { + return serviceSpecCharRelationship; + } + + public void setServiceSpecCharRelationship(Set serviceSpecCharRelationship) { + this.serviceSpecCharRelationship = serviceSpecCharRelationship; + } + + public ServiceSpecCharacteristic serviceSpecCharacteristicValue( + Set serviceSpecCharacteristicValue) { + this.serviceSpecCharacteristicValue = serviceSpecCharacteristicValue; + return this; + } + + public ServiceSpecCharacteristic addServiceSpecCharacteristicValueItem( + ServiceSpecCharacteristicValue serviceSpecCharacteristicValueItem) { + if (this.serviceSpecCharacteristicValue == null) { + this.serviceSpecCharacteristicValue = new HashSet(); + } + this.serviceSpecCharacteristicValue.add(serviceSpecCharacteristicValueItem); + return this; + } + + /** + * A list of service spec characteristic values + * (ServiceSpecCharacteristicValue [*]). A ServiceSpecCharacteristicValue + * object is used to define a set of attributes, each of which can be + * assigned to a corresponding set of attributes in a + * ServiceSpecCharacteristic object. The values of the attributes in the + * ServiceSpecCharacteristicValue object describe the values of the + * attributes that a corresponding ServiceSpecCharacteristic object can take + * on. + * + * @return serviceSpecCharacteristicValue + **/ + @Schema(description = "A list of service spec characteristic values (ServiceSpecCharacteristicValue [*]). A ServiceSpecCharacteristicValue object is used to define a set of attributes, each of which can be assigned to a corresponding set of attributes in a ServiceSpecCharacteristic object. The values of the attributes in the ServiceSpecCharacteristicValue object describe the values of the attributes that a corresponding ServiceSpecCharacteristic object can take on.") + + @Valid + + public Set getServiceSpecCharacteristicValue() { + return serviceSpecCharacteristicValue; + } + + public void setServiceSpecCharacteristicValue(Set serviceSpecCharacteristicValue) { + this.serviceSpecCharacteristicValue = serviceSpecCharacteristicValue; + } + + public ServiceSpecCharacteristic validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the serviceSpecCharacteristic is valid + * + * @return validFor + **/ + @Schema(description = "The period for which the serviceSpecCharacteristic is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ServiceSpecCharacteristic valueSchemaLocation(String valueSchemaLocation) { + this.valueSchemaLocation = valueSchemaLocation; + return this; + } + + /** + * This (optional) field provides a link to the schema describing the value + * type. + * + * @return valueSchemaLocation + **/ + @Schema(description = "This (optional) field provides a link to the schema describing the value type.") + + public String getValueSchemaLocation() { + return valueSchemaLocation; + } + + public void setValueSchemaLocation(String valueSchemaLocation) { + this.valueSchemaLocation = valueSchemaLocation; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceSpecCharacteristic serviceSpecCharacteristic = (ServiceSpecCharacteristic) o; + return Objects.equals(this.configurable, serviceSpecCharacteristic.configurable) + && Objects.equals(this.description, serviceSpecCharacteristic.description) + && Objects.equals(this.extensible, serviceSpecCharacteristic.extensible) + && Objects.equals(this.isUnique, serviceSpecCharacteristic.isUnique) + && Objects.equals(this.maxCardinality, serviceSpecCharacteristic.maxCardinality) + && Objects.equals(this.minCardinality, serviceSpecCharacteristic.minCardinality) + && Objects.equals(this.name, serviceSpecCharacteristic.name) + && Objects.equals(this.regex, serviceSpecCharacteristic.regex) + && Objects.equals(this.valueType, serviceSpecCharacteristic.valueType) + && Objects.equals(this.serviceSpecCharRelationship, serviceSpecCharacteristic.serviceSpecCharRelationship) + && Objects.equals(this.serviceSpecCharacteristicValue, + serviceSpecCharacteristic.serviceSpecCharacteristicValue) + && Objects.equals(this.validFor, serviceSpecCharacteristic.validFor) + && Objects.equals(this.baseType, serviceSpecCharacteristic.baseType) + && Objects.equals(this.schemaLocation, serviceSpecCharacteristic.schemaLocation) + && Objects.equals(this.type, serviceSpecCharacteristic.type) + && Objects.equals(this.valueSchemaLocation, serviceSpecCharacteristic.valueSchemaLocation); + } + +// @Override +// public int hashCode() { +// return Objects.hash(uuid, configurable, description, extensible, isUnique, maxCardinality, minCardinality, name, +// regex, valueType, serviceSpecCharRelationship, serviceSpecCharacteristicValue, validFor, baseType, +// schemaLocation, type, valueSchemaLocation); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceSpecCharacteristic {\n"); + + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" configurable: ").append(toIndentedString(configurable)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" extensible: ").append(toIndentedString(extensible)).append("\n"); + sb.append(" isUnique: ").append(toIndentedString(isUnique)).append("\n"); + sb.append(" maxCardinality: ").append(toIndentedString(maxCardinality)).append("\n"); + sb.append(" minCardinality: ").append(toIndentedString(minCardinality)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" regex: ").append(toIndentedString(regex)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" serviceSpecCharRelationship: ").append(toIndentedString(serviceSpecCharRelationship)) + .append("\n"); + sb.append(" serviceSpecCharacteristicValue: ").append(toIndentedString(serviceSpecCharacteristicValue)) + .append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" valueSchemaLocation: ").append(toIndentedString(valueSchemaLocation)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public void updateWith(ServiceSpecCharacteristic src) { + this.name = src.getName(); + this.description = src.getDescription(); + this.maxCardinality = src.getMaxCardinality(); + this.minCardinality = src.getMinCardinality(); + this.regex = src.getRegex(); + this.isUnique =src.isUnique; + this.configurable =src.isConfigurable(); + this.extensible =src.isExtensible(); + this.valueType =src.valueType; + + this.updateServiceSpecCharacteristicValues(src.getServiceSpecCharacteristicValue()); + this.updateServiceSpecCharRelationships(src.getServiceSpecCharRelationship()); + + + } + + + + private void updateServiceSpecCharacteristicValues( + @Valid Set srcSet) { + + if ( srcSet == null ) { + return; + } + + Map idAddedUpdated = new HashMap<>(); + /** + * update, add the incomings + */ + for (ServiceSpecCharacteristicValue r : srcSet) { + + boolean valueExists = false; + for (ServiceSpecCharacteristicValue thisCharVal : this.serviceSpecCharacteristicValue) { + if ( thisCharVal.hashCode() == r.hashCode() ) { + valueExists = true; + idAddedUpdated.put(thisCharVal.hashCode(), true); + break; + } + } + + if (!valueExists) { + ServiceSpecCharacteristicValue nr = new ServiceSpecCharacteristicValue( r ); + this.addServiceSpecCharacteristicValueItem( nr ); + idAddedUpdated.put( nr.hashCode(), true); + } + + } + + /** + * remove those that don't exist anymore + */ + + List toRemove = new ArrayList<>(); + for (ServiceSpecCharacteristicValue ss : this.serviceSpecCharacteristicValue) { + if ( idAddedUpdated.get( ss.hashCode() ) == null ) { + toRemove.add(ss); + } + } + + for (ServiceSpecCharacteristicValue r : toRemove) { + this.serviceSpecCharacteristicValue.remove(r); + } + + + } + + private void updateServiceSpecCharRelationships( + @Valid Set srcSet) { + + + Map< String, Boolean> idAddedUpdated = new HashMap<>(); + /** + * update, add the incomings + */ + for (ServiceSpecCharRelationship r : srcSet) { + + boolean valueExists = false; + for (ServiceSpecCharRelationship thisCharVal : this.serviceSpecCharRelationship) { + if ( (thisCharVal.getId()!=null) && (thisCharVal.getId().equals(r.getId() ) )) { + valueExists = true; + idAddedUpdated.put( thisCharVal.getId() , true); + break; + } + } + + if (!valueExists) { + this.serviceSpecCharRelationship.add( new ServiceSpecCharRelationship( r )); + idAddedUpdated.put( r.getId(), true); + } + + } + + /** + * remove those that don't exist anymore + */ + + List toRemove = new ArrayList<>(); + for (ServiceSpecCharRelationship ss : this.serviceSpecCharRelationship) { + if ( idAddedUpdated.get( ss.getId() ) == null ) { + toRemove.add(ss); + } + } + + for (ServiceSpecCharRelationship r : toRemove) { + this.serviceSpecCharRelationship.remove(r); + } + + + } + + @JsonIgnore + public String getDefaultValue( ) { + for (ServiceSpecCharacteristicValue val : this.getServiceSpecCharacteristicValue()) { + if (val.isIsDefault()) { + return val.getValue().getValue(); + + } + } + return null; + + + } +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecCharacteristicValue.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecCharacteristicValue.java new file mode 100644 index 0000000..6c6b81e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecCharacteristicValue.java @@ -0,0 +1,347 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; + +/** + * A ServiceSpecCharacteristicValue object is used to define a set of + * attributes, each of which can be assigned to a corresponding set of + * attributes in a ServiceSpecCharacteristic object. The values of the + * attributes in the ServiceSpecCharacteristicValue object describe the values + * of the attributes that a corresponding ServiceSpecCharacteristic object can + * take on. + */ +@Schema(description = "A ServiceSpecCharacteristicValue object is used to define a set of attributes, each of which can be assigned to a corresponding set of attributes in a ServiceSpecCharacteristic object. The values of the attributes in the ServiceSpecCharacteristicValue object describe the values of the attributes that a corresponding ServiceSpecCharacteristic object can take on.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Entity(name = "ServiceSpecCharacteristicValue") +public class ServiceSpecCharacteristicValue extends BaseRootEntity { + @JsonProperty("isDefault") + private Boolean isDefault = null; + + @JsonProperty("rangeInterval") + private String rangeInterval = null; + + @JsonProperty("regex") + private String regex = null; + + @JsonProperty("unitOfMeasure") + private String unitOfMeasure = null; + + @JsonProperty("valueFrom") + private Integer valueFrom = null; + + @JsonProperty("valueTo") + private Integer valueTo = null; + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("value") + private Any value = null; + + public ServiceSpecCharacteristicValue() { + } + + public ServiceSpecCharacteristicValue(ServiceSpecCharacteristicValue r) { + this(); + isDefault = r.isDefault; + rangeInterval = r.rangeInterval; + regex = r.regex; + unitOfMeasure = r.unitOfMeasure; + valueFrom = r.valueFrom; + valueTo = r.valueTo; + valueType = r.valueType; + validFor = new TimePeriod( r.validFor ); + value = new Any( r.value ) ; +// type = r.type; + baseType = r.baseType; + + + } + + public ServiceSpecCharacteristicValue isDefault(Boolean isDefault) { + this.isDefault = isDefault; + return this; + } + + /** + * Indicates if the value is the default value for a characteristic + * + * @return isDefault + **/ + @Schema(description = "Indicates if the value is the default value for a characteristic") + + public Boolean isIsDefault() { + return isDefault; + } + + public void setIsDefault(Boolean isDefault) { + this.isDefault = isDefault; + } + + public ServiceSpecCharacteristicValue rangeInterval(String rangeInterval) { + this.rangeInterval = rangeInterval; + return this; + } + + /** + * An indicator that specifies the inclusion or exclusion of the valueFrom and + * valueTo attributes. If applicable, possible values are \"open\", \"closed\", + * \"closedBottom\" and \"closedTop\". + * + * @return rangeInterval + **/ + @Schema(description = "An indicator that specifies the inclusion or exclusion of the valueFrom and valueTo attributes. If applicable, possible values are \"open\", \"closed\", \"closedBottom\" and \"closedTop\".") + + public String getRangeInterval() { + return rangeInterval; + } + + public void setRangeInterval(String rangeInterval) { + this.rangeInterval = rangeInterval; + } + + public ServiceSpecCharacteristicValue regex(String regex) { + this.regex = regex; + return this; + } + + /** + * A regular expression constraint for given value + * + * @return regex + **/ + @Schema(description = "A regular expression constraint for given value") + + public String getRegex() { + return regex; + } + + public void setRegex(String regex) { + this.regex = regex; + } + + public ServiceSpecCharacteristicValue unitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + return this; + } + + /** + * A length, surface, volume, dry measure, liquid measure, money, weight, time, + * and the like. In general, a determinate quantity or magnitude of the kind + * designated, taken as a standard of comparison for others of the same kind, in + * assigning to them numerical values, as 1 foot, 1 yard, 1 mile, 1 square foot. + * + * @return unitOfMeasure + **/ + @Schema(description = "A length, surface, volume, dry measure, liquid measure, money, weight, time, and the like. In general, a determinate quantity or magnitude of the kind designated, taken as a standard of comparison for others of the same kind, in assigning to them numerical values, as 1 foot, 1 yard, 1 mile, 1 square foot.") + + public String getUnitOfMeasure() { + return unitOfMeasure; + } + + public void setUnitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + } + + public ServiceSpecCharacteristicValue valueFrom(Integer valueFrom) { + this.valueFrom = valueFrom; + return this; + } + + /** + * The low range value that a characteristic can take on + * + * @return valueFrom + **/ + @Schema(description = "The low range value that a characteristic can take on") + + public Integer getValueFrom() { + return valueFrom; + } + + public void setValueFrom(Integer valueFrom) { + this.valueFrom = valueFrom; + } + + public ServiceSpecCharacteristicValue valueTo(Integer valueTo) { + this.valueTo = valueTo; + return this; + } + + /** + * The upper range value that a characteristic can take on + * + * @return valueTo + **/ + @Schema(description = "The upper range value that a characteristic can take on") + + public Integer getValueTo() { + return valueTo; + } + + public void setValueTo(Integer valueTo) { + this.valueTo = valueTo; + } + + public ServiceSpecCharacteristicValue valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * A kind of value that the characteristic can take on, such as numeric, text, + * and so forth + * + * @return valueType + **/ + @Schema(description = "A kind of value that the characteristic can take on, such as numeric, text, and so forth") + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public ServiceSpecCharacteristicValue validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period of time for which a value is applicable + * + * @return validFor + **/ + @Schema(description = "The period of time for which a value is applicable") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ServiceSpecCharacteristicValue value(Any value) { + this.value = value; + return this; + } + + /** + * A discrete value that the characteristic can take on, or the actual value of + * the characteristic + * + * @return value + **/ + @Schema(description = "A discrete value that the characteristic can take on, or the actual value of the characteristic") + + @Valid + + public Any getValue() { + return value; + } + + public void setValue(Any value) { + this.value = value; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceSpecCharacteristicValue serviceSpecCharacteristicValue = (ServiceSpecCharacteristicValue) o; + return Objects.equals(this.isDefault, serviceSpecCharacteristicValue.isDefault) + && Objects.equals(this.rangeInterval, serviceSpecCharacteristicValue.rangeInterval) + && Objects.equals(this.regex, serviceSpecCharacteristicValue.regex) + && Objects.equals(this.unitOfMeasure, serviceSpecCharacteristicValue.unitOfMeasure) + && Objects.equals(this.valueFrom, serviceSpecCharacteristicValue.valueFrom) + && Objects.equals(this.valueTo, serviceSpecCharacteristicValue.valueTo) + && Objects.equals(this.valueType, serviceSpecCharacteristicValue.valueType) + && Objects.equals(this.validFor, serviceSpecCharacteristicValue.validFor) + && Objects.equals(this.value.getValue(), serviceSpecCharacteristicValue.value.getValue()) + && Objects.equals(this.value.getAlias(), serviceSpecCharacteristicValue.value.getAlias()) + && Objects.equals(this.baseType, serviceSpecCharacteristicValue.baseType) + && Objects.equals(this.schemaLocation, serviceSpecCharacteristicValue.schemaLocation) + && Objects.equals(this.type, serviceSpecCharacteristicValue.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(uuid, isDefault, rangeInterval, regex, unitOfMeasure, valueFrom, valueTo, valueType, validFor, +// value, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceSpecCharacteristicValue {\n"); + + sb.append(" isDefault: ").append(toIndentedString(isDefault)).append("\n"); + sb.append(" rangeInterval: ").append(toIndentedString(rangeInterval)).append("\n"); + sb.append(" regex: ").append(toIndentedString(regex)).append("\n"); + sb.append(" unitOfMeasure: ").append(toIndentedString(unitOfMeasure)).append("\n"); + sb.append(" valueFrom: ").append(toIndentedString(valueFrom)).append("\n"); + sb.append(" valueTo: ").append(toIndentedString(valueTo)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecRelationship.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecRelationship.java new file mode 100644 index 0000000..8de43e8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecRelationship.java @@ -0,0 +1,218 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.Valid; + +/** + * A migration, substitution, dependency or exclusivity relationship + * between/among service specifications. + */ +@Schema(description = "A migration, substitution, dependency or exclusivity relationship between/among service specifications.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Entity(name = "ServiceSpecRelationship") +public class ServiceSpecRelationship extends BaseRootNamedEntity { + + + + + @JsonProperty("id") + protected String id = null; + + + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("role") + private String role = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + public ServiceSpecRelationship() { + super(); + this.baseType = "BaseRootEntity"; + this.type = this.getClass().getName(); + } + + public ServiceSpecRelationship(ServiceSpecRelationship src) { + this(); + name = src.name; + relationshipType = src.relationshipType; + role = src.role; + validFor = new TimePeriod( src.validFor ); + this.id = src.getId(); + + } + + public ServiceSpecRelationship id(String id) { + this.id = id; + return this; + } + + + /** + * Unique identifier of the target serviceSpecification + * + * @return id + **/ + @Schema(description = "Unique identifier of the target serviceSpecification") + + public ServiceSpecRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * Type of relationship such as migration, substitution, dependency, exclusivity + * + * @return relationshipType + **/ + @Schema(description = "Type of relationship such as migration, substitution, dependency, exclusivity") + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public ServiceSpecRelationship role(String role) { + this.role = role; + return this; + } + + /** + * The association role for this service specification + * + * @return role + **/ + @Schema(description = "The association role for this service specification") + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public ServiceSpecRelationship validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the serviceSpecRelationship is valid + * + * @return validFor + **/ + @Schema(description = "The period for which the serviceSpecRelationship is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceSpecRelationship serviceSpecRelationship = (ServiceSpecRelationship) o; + return Objects.equals(this.id, serviceSpecRelationship.id) + && Objects.equals(this.name, serviceSpecRelationship.name) + && Objects.equals(this.relationshipType, serviceSpecRelationship.relationshipType) + && Objects.equals(this.role, serviceSpecRelationship.role) + && Objects.equals(this.validFor, serviceSpecRelationship.validFor) + && Objects.equals(this.baseType, serviceSpecRelationship.baseType) + && Objects.equals(this.schemaLocation, serviceSpecRelationship.schemaLocation) + && Objects.equals(this.type, serviceSpecRelationship.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, name, relationshipType, role, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceSpecRelationship {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * @return the id + */ + public String getId() { + return id; + } + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecification.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecification.java new file mode 100644 index 0000000..adf9b59 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecification.java @@ -0,0 +1,572 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.sd.model.ServiceDescriptor; +import org.etsi.osl.tmf.common.model.AttachmentRef; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; + +/** + * ServiceSpecification is a class that offers characteristics to describe a + * type of service. Functionally, it acts as a template by which Services may be + * instantiated. By sharing the same specification, these services would + * therefore share the same set of characteristics. + */ +/** + * @author ctranoris + * + */ +@Schema(description = "ServiceSpecification is a class that offers characteristics to describe a type of service. Functionally, it acts as a template by which Services may be instantiated. By sharing the same specification, these services would therefore share the same set of characteristics.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") +@Entity(name = "ServiceSpecification") +public class ServiceSpecification extends BaseEntity { + + @JsonProperty("isBundle") + private Boolean isBundle = null; + + @JsonProperty("attachment") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set attachment = new HashSet<>(); + + @JsonProperty("relatedParty") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set relatedParty = new HashSet<>(); + + @JsonProperty("resourceSpecification") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set resourceSpecification = new HashSet<>(); + + @JsonProperty("serviceLevelSpecification") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set serviceLevelSpecification = new HashSet<>(); + + @JsonProperty("serviceSpecCharacteristic") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set serviceSpecCharacteristic = new HashSet<>(); + + @JsonProperty("serviceSpecRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set serviceSpecRelationship = new HashSet<>(); + + @JsonProperty("targetServiceSchema") + private TargetServiceSchema targetServiceSchema = null; + + @JsonProperty("id") + protected String id = null; + + @OneToOne( cascade = {CascadeType.MERGE, CascadeType.DETACH} ) + @JoinColumn(name = "service_descrid", referencedColumnName = "uuid") + @JsonIgnore + private ServiceDescriptor serviceDescriptor; + + + + @JsonIgnore + @Column( name = "candidate_specid" ) + private String serviceCandidateObjId; + + + /** + * @return the serviceDescriptor + */ + public ServiceDescriptor getServiceDescriptor() { + return serviceDescriptor; + } + + /** + * @param serviceDescriptor the serviceDescriptor to set + */ + public void setServiceDescriptor(ServiceDescriptor serviceDescriptor) { + this.serviceDescriptor = serviceDescriptor; + } + + /** + * @return the serviceCandidateObjId + */ + public String getServiceCandidateObjId() { + return serviceCandidateObjId; + } + + /** + * @param serviceCandidateObjId the serviceCandidateObjId to set + */ + public void setServiceCandidateObjId(String serviceCandidateObjId) { + this.serviceCandidateObjId = serviceCandidateObjId; + } + + + + + /** + * @return the id + */ + public String getId() { + if ( uuid != null ) { + id = uuid; + } + return id; + } + + public ServiceSpecification() { + super(); + this.baseType = "BaseEntity"; + this.type = "CustomerFacingServiceSpecification"; + } + + public ServiceSpecification(ServiceSpecification src) { + this(); + name = src.name; + description = src.description; + isBundle = src.isBundle; + lastUpdate = src.lastUpdate; + lifecycleStatus = src.lifecycleStatus; + version = src.version; + validFor = new TimePeriod(src.validFor); + + if ( src.attachment != null ) { + for (AttachmentRef attachmentRef : src.attachment) { + this.addAttachmentItem( new AttachmentRef( attachmentRef )); + } + + } + if ( src.relatedParty != null ) { + for (RelatedParty r : src.relatedParty) { + this.addRelatedPartyItem( new RelatedParty( r) ); + } + } + + if ( src.resourceSpecification != null ) { + for (ResourceSpecificationRef r : src.resourceSpecification) { + this.addResourceSpecificationItem( new ResourceSpecificationRef(r) ); + } + } + if ( src.serviceLevelSpecification != null ) { + for (ServiceLevelSpecificationRef r : src.serviceLevelSpecification) { + this.addServiceLevelSpecificationItem( new ServiceLevelSpecificationRef(r) ); + } + } + + if ( src.serviceSpecCharacteristic != null ) { + for (ServiceSpecCharacteristic r : src.serviceSpecCharacteristic) { + this.addServiceSpecCharacteristicItem( new ServiceSpecCharacteristic(r) ); + } + } + + if ( src.serviceSpecRelationship != null ) { + for (ServiceSpecRelationship r : src.serviceSpecRelationship) { + this.addServiceSpecRelationshipItem( new ServiceSpecRelationship(r)); + } + } + + } + + public ServiceSpecification isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * isBundle determines whether a ServiceSpecification represents a single + * ServiceSpecification (false), or a bundle of ServiceSpecification (true). + * + * @return isBundle + **/ + @Schema(description = "isBundle determines whether a ServiceSpecification represents a single ServiceSpecification (false), or a bundle of ServiceSpecification (true).") + + public Boolean isIsBundle() { + if ( isBundle == null) { + isBundle = false; + } + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + public ServiceSpecification attachment(Set attachment) { + this.attachment = attachment; + return this; + } + + public ServiceSpecification addAttachmentItem(AttachmentRef attachmentItem) { + if (this.attachment == null) { + this.attachment = new HashSet(); + } + this.attachment.add(attachmentItem); + return this; + } + + /** + * A list of attachments (Attachment [*]). Complements the description of the + * specification through video, pictures... + * + * @return attachment + **/ + @Schema(description = "A list of attachments (Attachment [*]). Complements the description of the specification through video, pictures...") + + @Valid + + public Set getAttachment() { + return attachment; + } + + public void setAttachment(Set attachment) { + this.attachment = attachment; + } + + public ServiceSpecification relatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ServiceSpecification addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new HashSet(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * A list of related party references (RelatedParty [*]). A related party + * defines party or party role linked to a specific entity. + * + * @return relatedParty + **/ + @Schema(description = "A list of related party references (RelatedParty [*]). A related party defines party or party role linked to a specific entity.") + + @Valid + + public Set getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + } + + public ServiceSpecification resourceSpecification(Set resourceSpecification) { + this.resourceSpecification = resourceSpecification; + return this; + } + + public ServiceSpecification addResourceSpecificationItem(ResourceSpecificationRef resourceSpecificationItem) { + if (this.resourceSpecification == null) { + this.resourceSpecification = new HashSet(); + } + this.resourceSpecification.add(resourceSpecificationItem); + return this; + } + + /** + * A list of resource specification references (ResourceSpecificationRef [*]). + * The ResourceSpecification is required for a service specification with type + * ResourceFacingServiceSpecification (RFSS). + * + * @return resourceSpecification + **/ + @Schema(description = "A list of resource specification references (ResourceSpecificationRef [*]). The ResourceSpecification is required for a service specification with type ResourceFacingServiceSpecification (RFSS).") + + @Valid + + public Set getResourceSpecification() { + return resourceSpecification; + } + + public void setResourceSpecification(Set resourceSpecification) { + this.resourceSpecification = resourceSpecification; + } + + public ServiceSpecification serviceLevelSpecification(Set serviceLevelSpecification) { + this.serviceLevelSpecification = serviceLevelSpecification; + return this; + } + + public ServiceSpecification addServiceLevelSpecificationItem( + ServiceLevelSpecificationRef serviceLevelSpecificationItem) { + if (this.serviceLevelSpecification == null) { + this.serviceLevelSpecification = new HashSet(); + } + this.serviceLevelSpecification.add(serviceLevelSpecificationItem); + return this; + } + + /** + * A list of service level specifications related to this service specification, + * and which will need to be satisifiable for corresponding service instances; + * e.g. Gold, Platinum + * + * @return serviceLevelSpecification + **/ + @Schema(description = "A list of service level specifications related to this service specification, and which will need to be satisifiable for corresponding service instances; e.g. Gold, Platinum") + + @Valid + + public Set getServiceLevelSpecification() { + return serviceLevelSpecification; + } + + public void setServiceLevelSpecification(Set serviceLevelSpecification) { + this.serviceLevelSpecification = serviceLevelSpecification; + } + + public ServiceSpecification serviceSpecCharacteristic(Set serviceSpecCharacteristic) { + this.serviceSpecCharacteristic = serviceSpecCharacteristic; + return this; + } + + public ServiceSpecification addServiceSpecCharacteristicItem( + ServiceSpecCharacteristic serviceSpecCharacteristicItem) { + if (this.serviceSpecCharacteristic == null) { + this.serviceSpecCharacteristic = new HashSet(); + } + this.serviceSpecCharacteristic.add(serviceSpecCharacteristicItem); + return this; + } + + /** + * A list of service spec characteristics (ServiceSpecCharacteristic [*]). This + * class represents the key features of this service specification. + * + * @return serviceSpecCharacteristic + **/ + @Schema(description = "A list of service spec characteristics (ServiceSpecCharacteristic [*]). This class represents the key features of this service specification.") + + @Valid + + public Set getServiceSpecCharacteristic() { + return serviceSpecCharacteristic; + } + + public void setServiceSpecCharacteristic(Set serviceSpecCharacteristic) { + this.serviceSpecCharacteristic = serviceSpecCharacteristic; + } + + public ServiceSpecification serviceSpecRelationship(Set serviceSpecRelationship) { + this.serviceSpecRelationship = serviceSpecRelationship; + return this; + } + + public ServiceSpecification addServiceSpecRelationshipItem(ServiceSpecRelationship serviceSpecRelationshipItem) { + if (this.serviceSpecRelationship == null) { + this.serviceSpecRelationship = new HashSet(); + } + this.serviceSpecRelationship.add(serviceSpecRelationshipItem); + return this; + } + + /** + * A list of service specifications related to this specification, e.g. + * migration, substitution, dependency or exclusivity relationship + * + * @return serviceSpecRelationship + **/ + @Schema(description = "A list of service specifications related to this specification, e.g. migration, substitution, dependency or exclusivity relationship") + + @Valid + + public Set getServiceSpecRelationship() { + return serviceSpecRelationship; + } + + public void setServiceSpecRelationship(Set serviceSpecRelationship) { + this.serviceSpecRelationship = serviceSpecRelationship; + } + + public ServiceSpecification targetServiceSchema(TargetServiceSchema targetServiceSchema) { + this.targetServiceSchema = targetServiceSchema; + return this; + } + + /** + * A target service schema reference (TargetServiceSchemaRef). The reference + * object to the schema and type of target service which is described by service + * specification. + * + * @return targetServiceSchema + **/ + @Schema(description = "A target service schema reference (TargetServiceSchemaRef). The reference object to the schema and type of target service which is described by service specification.") + + @Valid + + public TargetServiceSchema getTargetServiceSchema() { + return targetServiceSchema; + } + + public void setTargetServiceSchema(TargetServiceSchema targetServiceSchema) { + this.targetServiceSchema = targetServiceSchema; + } + + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceSpecification serviceSpecification = (ServiceSpecification) o; + return Objects.equals(this.id, serviceSpecification.id) && Objects.equals(this.uuid, serviceSpecification.uuid) + && Objects.equals(this.href, serviceSpecification.href) + && Objects.equals(this.description, serviceSpecification.description) + && Objects.equals(this.isBundle, serviceSpecification.isBundle) + && Objects.equals(this.lastUpdate, serviceSpecification.lastUpdate) + && Objects.equals(this.lifecycleStatus, serviceSpecification.lifecycleStatus) + && Objects.equals(this.name, serviceSpecification.name) + && Objects.equals(this.version, serviceSpecification.version) + && Objects.equals(this.attachment, serviceSpecification.attachment) + && Objects.equals(this.relatedParty, serviceSpecification.relatedParty) + && Objects.equals(this.resourceSpecification, serviceSpecification.resourceSpecification) + && Objects.equals(this.serviceLevelSpecification, serviceSpecification.serviceLevelSpecification) + && Objects.equals(this.serviceSpecCharacteristic, serviceSpecification.serviceSpecCharacteristic) + && Objects.equals(this.serviceSpecRelationship, serviceSpecification.serviceSpecRelationship) + && Objects.equals(this.targetServiceSchema, serviceSpecification.targetServiceSchema) + && Objects.equals(this.validFor, serviceSpecification.validFor) + && Objects.equals(this.baseType, serviceSpecification.baseType) + && Objects.equals(this.schemaLocation, serviceSpecification.schemaLocation) + && Objects.equals(this.type, serviceSpecification.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(uuid, id, href, description, isBundle, lastUpdate, lifecycleStatus, name, version, +// attachment, relatedParty, resourceSpecification, serviceLevelSpecification, serviceSpecCharacteristic, +// serviceSpecRelationship, targetServiceSchema, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceSpecification {\n"); + + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" resourceSpecification: ").append(toIndentedString(resourceSpecification)).append("\n"); + sb.append(" serviceLevelSpecification: ").append(toIndentedString(serviceLevelSpecification)).append("\n"); + sb.append(" serviceSpecCharacteristic: ").append(toIndentedString(serviceSpecCharacteristic)).append("\n"); + sb.append(" serviceSpecRelationship: ").append(toIndentedString(serviceSpecRelationship)).append("\n"); + sb.append(" targetServiceSchema: ").append(toIndentedString(targetServiceSchema)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public ServiceSpecCharacteristic findSpecCharacteristicByName(String an) { + for (ServiceSpecCharacteristic ssci : this.getServiceSpecCharacteristic()) { + if (ssci.getName().equals(an)) { + return ssci; + } + } + return null; + } + + /** + * we fix here the ids of the ServiceSpecCharRelationships. remind also that we + * have a role="tag" + */ + public void fixSpecCharRelationhsipIDs() { + for (ServiceSpecCharacteristic schar : serviceSpecCharacteristic) { + for (ServiceSpecCharRelationship charRel : schar.getServiceSpecCharRelationship()) { + if (charRel.getId() == null) { + // search other specCharacteristics inside the serviceSpec to get the id (if + // they have same name). Then ID will be the same as the id of the + // serviceSpecCharacteristic + for (ServiceSpecCharacteristic searchChar : serviceSpecCharacteristic) { + if (searchChar.getName().equals(charRel.getName())) { + charRel.setId(searchChar.getUuid()); + break; + } + } + + } + // if still is null se this id: + if (charRel.getId() == null) { + charRel.setId(this.getName() + "-" + charRel.getName()); + } + } + + } + + } + + public ServiceSpecCharacteristic getServiceSpecCharacteristicByName(String aName) { + + for (ServiceSpecCharacteristic c : this.getServiceSpecCharacteristic() ) { + if ( c.getName().equals( aName )) { + return c; + } + + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationChangeEvent.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationChangeEvent.java new file mode 100644 index 0000000..16811f8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationChangeEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceSpecificationChangeEvent { + @JsonProperty("serviceSpecification") + private ServiceSpecification serviceSpecification = null; + + public ServiceSpecificationChangeEvent serviceSpecification(ServiceSpecification serviceSpecification) { + this.serviceSpecification = serviceSpecification; + return this; + } + + /** + * The involved resource data for the event + * @return serviceSpecification + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ServiceSpecification getServiceSpecification() { + return serviceSpecification; + } + + public void setServiceSpecification(ServiceSpecification serviceSpecification) { + this.serviceSpecification = serviceSpecification; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceSpecificationChangeEvent serviceSpecificationChangeEvent = (ServiceSpecificationChangeEvent) o; + return Objects.equals(this.serviceSpecification, serviceSpecificationChangeEvent.serviceSpecification); + } + + @Override + public int hashCode() { + return Objects.hash(serviceSpecification); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceSpecificationChangeEvent {\n"); + + sb.append(" serviceSpecification: ").append(toIndentedString(serviceSpecification)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationChangeNotification.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationChangeNotification.java new file mode 100644 index 0000000..f5ac24e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationChangeNotification.java @@ -0,0 +1,229 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceSpecificationChangeNotification { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("resourcePath") + private String resourcePath = null; + + @JsonProperty("event") + private ServiceSpecificationChangeEvent event = null; + + public ServiceSpecificationChangeNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification + * @return eventId + **/ + @Schema(description = "The identifier of the notification") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceSpecificationChangeNotification eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceSpecificationChangeNotification eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification + * @return eventType + **/ + @Schema(description = "The type of the notification") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceSpecificationChangeNotification fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ServiceSpecificationChangeNotification resourcePath(String resourcePath) { + this.resourcePath = resourcePath; + return this; + } + + /** + * The path identifying the resource object concerned by this notification + * @return resourcePath + **/ + @Schema(description = "The path identifying the resource object concerned by this notification") + + + public String getResourcePath() { + return resourcePath; + } + + public void setResourcePath(String resourcePath) { + this.resourcePath = resourcePath; + } + + public ServiceSpecificationChangeNotification event(ServiceSpecificationChangeEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceSpecificationChangeEvent getEvent() { + return event; + } + + public void setEvent(ServiceSpecificationChangeEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceSpecificationChangeNotification serviceSpecificationChangeNotification = (ServiceSpecificationChangeNotification) o; + return Objects.equals(this.eventId, serviceSpecificationChangeNotification.eventId) && + Objects.equals(this.eventTime, serviceSpecificationChangeNotification.eventTime) && + Objects.equals(this.eventType, serviceSpecificationChangeNotification.eventType) && + Objects.equals(this.fieldPath, serviceSpecificationChangeNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceSpecificationChangeNotification.resourcePath) && + Objects.equals(this.event, serviceSpecificationChangeNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceSpecificationChangeNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationCreate.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationCreate.java new file mode 100644 index 0000000..e7ade58 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationCreate.java @@ -0,0 +1,141 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * ServiceSpecification is a class that offers characteristics to describe a + * type of service. Functionally, it acts as a template by which Services may be + * instantiated. By sharing the same specification, these services would + * therefore share the same set of characteristics. Skipped properties: id,href + */ +@Schema(description = "ServiceSpecification is a class that offers characteristics to describe a type of service. Functionally, it acts as a template by which Services may be instantiated. By sharing the same specification, these services would therefore share the same set of characteristics. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceSpecificationCreate extends ServiceSpecificationUpdate { + + @JsonProperty("lastUpdate") + private OffsetDateTime lastUpdate = null; + + public ServiceSpecificationCreate lastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + /** + * Date and time of the last update of the service specification + * + * @return lastUpdate + **/ + @Schema(description = "Date and time of the last update of the service specification") + + @Valid + + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceSpecificationCreate serviceSpecificationCreate = (ServiceSpecificationCreate) o; + return Objects.equals(this.description, serviceSpecificationCreate.description) + && Objects.equals(this.isBundle, serviceSpecificationCreate.isBundle) + && Objects.equals(this.lastUpdate, serviceSpecificationCreate.lastUpdate) + && Objects.equals(this.lifecycleStatus, serviceSpecificationCreate.lifecycleStatus) + && Objects.equals(this.name, serviceSpecificationCreate.name) + && Objects.equals(this.version, serviceSpecificationCreate.version) + && Objects.equals(this.attachment, serviceSpecificationCreate.attachment) + && Objects.equals(this.relatedParty, serviceSpecificationCreate.relatedParty) + && Objects.equals(this.resourceSpecification, serviceSpecificationCreate.resourceSpecification) + && Objects.equals(this.serviceLevelSpecification, serviceSpecificationCreate.serviceLevelSpecification) + && Objects.equals(this.serviceSpecCharacteristic, serviceSpecificationCreate.serviceSpecCharacteristic) + && Objects.equals(this.serviceSpecRelationship, serviceSpecificationCreate.serviceSpecRelationship) + && Objects.equals(this.targetServiceSchema, serviceSpecificationCreate.targetServiceSchema) + && Objects.equals(this.validFor, serviceSpecificationCreate.validFor) + && Objects.equals(this.baseType, serviceSpecificationCreate.baseType) + && Objects.equals(this.schemaLocation, serviceSpecificationCreate.schemaLocation) + && Objects.equals(this.type, serviceSpecificationCreate.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(description, isBundle, lastUpdate, lifecycleStatus, name, version, attachment, relatedParty, +// resourceSpecification, serviceLevelSpecification, serviceSpecCharacteristic, serviceSpecRelationship, +// targetServiceSchema, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceSpecificationCreate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" resourceSpecification: ").append(toIndentedString(resourceSpecification)).append("\n"); + sb.append(" serviceLevelSpecification: ").append(toIndentedString(serviceLevelSpecification)).append("\n"); + sb.append(" serviceSpecCharacteristic: ").append(toIndentedString(serviceSpecCharacteristic)).append("\n"); + sb.append(" serviceSpecRelationship: ").append(toIndentedString(serviceSpecRelationship)).append("\n"); + sb.append(" targetServiceSchema: ").append(toIndentedString(targetServiceSchema)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationCreateEvent.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationCreateEvent.java new file mode 100644 index 0000000..2c70c9f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationCreateEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceSpecificationCreateEvent { + @JsonProperty("serviceSpecification") + private ServiceSpecification serviceSpecification = null; + + public ServiceSpecificationCreateEvent serviceSpecification(ServiceSpecification serviceSpecification) { + this.serviceSpecification = serviceSpecification; + return this; + } + + /** + * The involved resource data for the event + * @return serviceSpecification + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ServiceSpecification getServiceSpecification() { + return serviceSpecification; + } + + public void setServiceSpecification(ServiceSpecification serviceSpecification) { + this.serviceSpecification = serviceSpecification; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceSpecificationCreateEvent serviceSpecificationCreateEvent = (ServiceSpecificationCreateEvent) o; + return Objects.equals(this.serviceSpecification, serviceSpecificationCreateEvent.serviceSpecification); + } + + @Override + public int hashCode() { + return Objects.hash(serviceSpecification); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceSpecificationCreateEvent {\n"); + + sb.append(" serviceSpecification: ").append(toIndentedString(serviceSpecification)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationCreateNotification.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationCreateNotification.java new file mode 100644 index 0000000..bc08776 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationCreateNotification.java @@ -0,0 +1,229 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceSpecificationCreateNotification { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("resourcePath") + private String resourcePath = null; + + @JsonProperty("event") + private ServiceSpecificationCreateEvent event = null; + + public ServiceSpecificationCreateNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification + * @return eventId + **/ + @Schema(description = "The identifier of the notification") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceSpecificationCreateNotification eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceSpecificationCreateNotification eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification + * @return eventType + **/ + @Schema(description = "The type of the notification") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceSpecificationCreateNotification fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ServiceSpecificationCreateNotification resourcePath(String resourcePath) { + this.resourcePath = resourcePath; + return this; + } + + /** + * The path identifying the resource object concerned by this notification + * @return resourcePath + **/ + @Schema(description = "The path identifying the resource object concerned by this notification") + + + public String getResourcePath() { + return resourcePath; + } + + public void setResourcePath(String resourcePath) { + this.resourcePath = resourcePath; + } + + public ServiceSpecificationCreateNotification event(ServiceSpecificationCreateEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceSpecificationCreateEvent getEvent() { + return event; + } + + public void setEvent(ServiceSpecificationCreateEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceSpecificationCreateNotification serviceSpecificationCreateNotification = (ServiceSpecificationCreateNotification) o; + return Objects.equals(this.eventId, serviceSpecificationCreateNotification.eventId) && + Objects.equals(this.eventTime, serviceSpecificationCreateNotification.eventTime) && + Objects.equals(this.eventType, serviceSpecificationCreateNotification.eventType) && + Objects.equals(this.fieldPath, serviceSpecificationCreateNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceSpecificationCreateNotification.resourcePath) && + Objects.equals(this.event, serviceSpecificationCreateNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceSpecificationCreateNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationDeleteEvent.java new file mode 100644 index 0000000..0122c34 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationDeleteEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceSpecificationDeleteEvent { + @JsonProperty("serviceSpecification") + private ServiceSpecification serviceSpecification = null; + + public ServiceSpecificationDeleteEvent serviceSpecification(ServiceSpecification serviceSpecification) { + this.serviceSpecification = serviceSpecification; + return this; + } + + /** + * The involved resource data for the event + * @return serviceSpecification + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ServiceSpecification getServiceSpecification() { + return serviceSpecification; + } + + public void setServiceSpecification(ServiceSpecification serviceSpecification) { + this.serviceSpecification = serviceSpecification; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceSpecificationDeleteEvent serviceSpecificationDeleteEvent = (ServiceSpecificationDeleteEvent) o; + return Objects.equals(this.serviceSpecification, serviceSpecificationDeleteEvent.serviceSpecification); + } + + @Override + public int hashCode() { + return Objects.hash(serviceSpecification); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceSpecificationDeleteEvent {\n"); + + sb.append(" serviceSpecification: ").append(toIndentedString(serviceSpecification)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationDeleteNotification.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationDeleteNotification.java new file mode 100644 index 0000000..2b74cf9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationDeleteNotification.java @@ -0,0 +1,229 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceSpecificationDeleteNotification { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("resourcePath") + private String resourcePath = null; + + @JsonProperty("event") + private ServiceSpecificationDeleteEvent event = null; + + public ServiceSpecificationDeleteNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification + * @return eventId + **/ + @Schema(description = "The identifier of the notification") + + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceSpecificationDeleteNotification eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence") + + @Valid + + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceSpecificationDeleteNotification eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification + * @return eventType + **/ + @Schema(description = "The type of the notification") + + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceSpecificationDeleteNotification fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification") + + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ServiceSpecificationDeleteNotification resourcePath(String resourcePath) { + this.resourcePath = resourcePath; + return this; + } + + /** + * The path identifying the resource object concerned by this notification + * @return resourcePath + **/ + @Schema(description = "The path identifying the resource object concerned by this notification") + + + public String getResourcePath() { + return resourcePath; + } + + public void setResourcePath(String resourcePath) { + this.resourcePath = resourcePath; + } + + public ServiceSpecificationDeleteNotification event(ServiceSpecificationDeleteEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceSpecificationDeleteEvent getEvent() { + return event; + } + + public void setEvent(ServiceSpecificationDeleteEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceSpecificationDeleteNotification serviceSpecificationDeleteNotification = (ServiceSpecificationDeleteNotification) o; + return Objects.equals(this.eventId, serviceSpecificationDeleteNotification.eventId) && + Objects.equals(this.eventTime, serviceSpecificationDeleteNotification.eventTime) && + Objects.equals(this.eventType, serviceSpecificationDeleteNotification.eventType) && + Objects.equals(this.fieldPath, serviceSpecificationDeleteNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceSpecificationDeleteNotification.resourcePath) && + Objects.equals(this.event, serviceSpecificationDeleteNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceSpecificationDeleteNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationUpdate.java b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationUpdate.java new file mode 100644 index 0000000..2e1f8b4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/ServiceSpecificationUpdate.java @@ -0,0 +1,582 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.AttachmentRef; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * ServiceSpecification is a class that offers characteristics to describe a + * type of service. Functionally, it acts as a template by which Services may be + * instantiated. By sharing the same specification, these services would + * therefore share the same set of characteristics. Skipped properties: + * id,href,lastUpdate + */ +@Schema(description = "ServiceSpecification is a class that offers characteristics to describe a type of service. Functionally, it acts as a template by which Services may be instantiated. By sharing the same specification, these services would therefore share the same set of characteristics. Skipped properties: id,href,lastUpdate") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +public class ServiceSpecificationUpdate { + @JsonProperty("description") + protected String description = null; + + @JsonProperty("isBundle") + protected Boolean isBundle = null; + + @JsonProperty("lifecycleStatus") + protected String lifecycleStatus = null; + + @JsonProperty("name") + protected String name = null; + + @JsonProperty("version") + protected String version = null; + + @JsonProperty("attachment") + @Valid + protected List attachment = null; + + @JsonProperty("relatedParty") + @Valid + protected List relatedParty = null; + + @JsonProperty("resourceSpecification") + @Valid + protected List resourceSpecification = null; + + @JsonProperty("serviceLevelSpecification") + @Valid + protected List serviceLevelSpecification = null; + + @JsonProperty("serviceSpecCharacteristic") + @Valid + protected List serviceSpecCharacteristic = null; + + @JsonProperty("serviceSpecRelationship") + @Valid + protected List serviceSpecRelationship = null; + + @JsonProperty("targetServiceSchema") + protected TargetServiceSchema targetServiceSchema = null; + + @JsonProperty("validFor") + protected TimePeriod validFor = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@type") + protected String type = null; + + public ServiceSpecificationUpdate description(String description) { + this.description = description; + return this; + } + + /** + * A narrative that explains in detail what the service specification is + * + * @return description + **/ + @Schema(description = "A narrative that explains in detail what the service specification is") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceSpecificationUpdate isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * isBundle determines whether a ServiceSpecification represents a single + * ServiceSpecification (false), or a bundle of ServiceSpecification (true). + * + * @return isBundle + **/ + @Schema(description = "isBundle determines whether a ServiceSpecification represents a single ServiceSpecification (false), or a bundle of ServiceSpecification (true).") + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + public ServiceSpecificationUpdate lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Used to indicate the current lifecycle status of the service specification + * + * @return lifecycleStatus + **/ + @Schema(description = "Used to indicate the current lifecycle status of the service specification") + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public ServiceSpecificationUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the service specification + * + * @return name + **/ + @Schema(description = "Name of the service specification") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ServiceSpecificationUpdate version(String version) { + this.version = version; + return this; + } + + /** + * Service specification version + * + * @return version + **/ + @Schema(description = "Service specification version") + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public ServiceSpecificationUpdate attachment(List attachment) { + this.attachment = attachment; + return this; + } + + public ServiceSpecificationUpdate addAttachmentItem(AttachmentRef attachmentItem) { + if (this.attachment == null) { + this.attachment = new ArrayList(); + } + this.attachment.add(attachmentItem); + return this; + } + + /** + * A list of attachments (Attachment [*]). Complements the description of the + * specification through video, pictures... + * + * @return attachment + **/ + @Schema(description = "A list of attachments (Attachment [*]). Complements the description of the specification through video, pictures...") + + @Valid + + public List getAttachment() { + return attachment; + } + + public void setAttachment(List attachment) { + this.attachment = attachment; + } + + public ServiceSpecificationUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ServiceSpecificationUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * A list of related party references (RelatedParty [*]). A related party + * defines party or party role linked to a specific entity. + * + * @return relatedParty + **/ + @Schema(description = "A list of related party references (RelatedParty [*]). A related party defines party or party role linked to a specific entity.") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public ServiceSpecificationUpdate resourceSpecification(List resourceSpecification) { + this.resourceSpecification = resourceSpecification; + return this; + } + + public ServiceSpecificationUpdate addResourceSpecificationItem(ResourceSpecificationRef resourceSpecificationItem) { + if (this.resourceSpecification == null) { + this.resourceSpecification = new ArrayList(); + } + this.resourceSpecification.add(resourceSpecificationItem); + return this; + } + + /** + * A list of resource specification references (ResourceSpecificationRef [*]). + * The ResourceSpecification is required for a service specification with type + * ResourceFacingServiceSpecification (RFSS). + * + * @return resourceSpecification + **/ + @Schema(description = "A list of resource specification references (ResourceSpecificationRef [*]). The ResourceSpecification is required for a service specification with type ResourceFacingServiceSpecification (RFSS).") + + @Valid + + public List getResourceSpecification() { + return resourceSpecification; + } + + public void setResourceSpecification(List resourceSpecification) { + this.resourceSpecification = resourceSpecification; + } + + public ServiceSpecificationUpdate serviceLevelSpecification( + List serviceLevelSpecification) { + this.serviceLevelSpecification = serviceLevelSpecification; + return this; + } + + public ServiceSpecificationUpdate addServiceLevelSpecificationItem( + ServiceLevelSpecificationRef serviceLevelSpecificationItem) { + if (this.serviceLevelSpecification == null) { + this.serviceLevelSpecification = new ArrayList(); + } + this.serviceLevelSpecification.add(serviceLevelSpecificationItem); + return this; + } + + /** + * A list of service level specifications related to this service specification, + * and which will need to be satisifiable for corresponding service instances; + * e.g. Gold, Platinum + * + * @return serviceLevelSpecification + **/ + @Schema(description = "A list of service level specifications related to this service specification, and which will need to be satisifiable for corresponding service instances; e.g. Gold, Platinum") + + @Valid + + public List getServiceLevelSpecification() { + return serviceLevelSpecification; + } + + public void setServiceLevelSpecification(List serviceLevelSpecification) { + this.serviceLevelSpecification = serviceLevelSpecification; + } + + public ServiceSpecificationUpdate serviceSpecCharacteristic( + List serviceSpecCharacteristic) { + this.serviceSpecCharacteristic = serviceSpecCharacteristic; + return this; + } + + public ServiceSpecificationUpdate addServiceSpecCharacteristicItem( + ServiceSpecCharacteristic serviceSpecCharacteristicItem) { + if (this.serviceSpecCharacteristic == null) { + this.serviceSpecCharacteristic = new ArrayList(); + } + this.serviceSpecCharacteristic.add(serviceSpecCharacteristicItem); + return this; + } + + /** + * A list of service spec characteristics (ServiceSpecCharacteristic [*]). This + * class represents the key features of this service specification. + * + * @return serviceSpecCharacteristic + **/ + @Schema(description = "A list of service spec characteristics (ServiceSpecCharacteristic [*]). This class represents the key features of this service specification.") + + @Valid + + public List getServiceSpecCharacteristic() { + return serviceSpecCharacteristic; + } + + public void setServiceSpecCharacteristic(List serviceSpecCharacteristic) { + this.serviceSpecCharacteristic = serviceSpecCharacteristic; + } + + public ServiceSpecificationUpdate serviceSpecRelationship(List serviceSpecRelationship) { + this.serviceSpecRelationship = serviceSpecRelationship; + return this; + } + + public ServiceSpecificationUpdate addServiceSpecRelationshipItem( + ServiceSpecRelationship serviceSpecRelationshipItem) { + if (this.serviceSpecRelationship == null) { + this.serviceSpecRelationship = new ArrayList(); + } + this.serviceSpecRelationship.add(serviceSpecRelationshipItem); + return this; + } + + /** + * A list of service specifications related to this specification, e.g. + * migration, substitution, dependency or exclusivity relationship + * + * @return serviceSpecRelationship + **/ + @Schema(description = "A list of service specifications related to this specification, e.g. migration, substitution, dependency or exclusivity relationship") + + @Valid + + public List getServiceSpecRelationship() { + return serviceSpecRelationship; + } + + public void setServiceSpecRelationship(List serviceSpecRelationship) { + this.serviceSpecRelationship = serviceSpecRelationship; + } + + public ServiceSpecificationUpdate targetServiceSchema(TargetServiceSchema targetServiceSchema) { + this.targetServiceSchema = targetServiceSchema; + return this; + } + + /** + * A target service schema reference (TargetServiceSchemaRef). The reference + * object to the schema and type of target service which is described by service + * specification. + * + * @return targetServiceSchema + **/ + @Schema(description = "A target service schema reference (TargetServiceSchemaRef). The reference object to the schema and type of target service which is described by service specification.") + + @Valid + + public TargetServiceSchema getTargetServiceSchema() { + return targetServiceSchema; + } + + public void setTargetServiceSchema(TargetServiceSchema targetServiceSchema) { + this.targetServiceSchema = targetServiceSchema; + } + + public ServiceSpecificationUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * The period for which the service specification is valid + * + * @return validFor + **/ + @Schema(description = "The period for which the service specification is valid") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ServiceSpecificationUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ServiceSpecificationUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ServiceSpecificationUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceSpecificationUpdate serviceSpecificationUpdate = (ServiceSpecificationUpdate) o; + return Objects.equals(this.description, serviceSpecificationUpdate.description) + && Objects.equals(this.isBundle, serviceSpecificationUpdate.isBundle) + && Objects.equals(this.lifecycleStatus, serviceSpecificationUpdate.lifecycleStatus) + && Objects.equals(this.name, serviceSpecificationUpdate.name) + && Objects.equals(this.version, serviceSpecificationUpdate.version) + && Objects.equals(this.attachment, serviceSpecificationUpdate.attachment) + && Objects.equals(this.relatedParty, serviceSpecificationUpdate.relatedParty) + && Objects.equals(this.resourceSpecification, serviceSpecificationUpdate.resourceSpecification) + && Objects.equals(this.serviceLevelSpecification, serviceSpecificationUpdate.serviceLevelSpecification) + && Objects.equals(this.serviceSpecCharacteristic, serviceSpecificationUpdate.serviceSpecCharacteristic) + && Objects.equals(this.serviceSpecRelationship, serviceSpecificationUpdate.serviceSpecRelationship) + && Objects.equals(this.targetServiceSchema, serviceSpecificationUpdate.targetServiceSchema) + && Objects.equals(this.validFor, serviceSpecificationUpdate.validFor) + && Objects.equals(this.baseType, serviceSpecificationUpdate.baseType) + && Objects.equals(this.schemaLocation, serviceSpecificationUpdate.schemaLocation) + && Objects.equals(this.type, serviceSpecificationUpdate.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(description, isBundle, lifecycleStatus, name, version, attachment, relatedParty, +// resourceSpecification, serviceLevelSpecification, serviceSpecCharacteristic, serviceSpecRelationship, +// targetServiceSchema, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceSpecificationUpdate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" resourceSpecification: ").append(toIndentedString(resourceSpecification)).append("\n"); + sb.append(" serviceLevelSpecification: ").append(toIndentedString(serviceLevelSpecification)).append("\n"); + sb.append(" serviceSpecCharacteristic: ").append(toIndentedString(serviceSpecCharacteristic)).append("\n"); + sb.append(" serviceSpecRelationship: ").append(toIndentedString(serviceSpecRelationship)).append("\n"); + sb.append(" targetServiceSchema: ").append(toIndentedString(targetServiceSchema)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public void addServiceSpecRelationshipWith(ServiceSpecification responsesSpec1) { + + ServiceSpecRelationship r1 = new ServiceSpecRelationship(); + r1.setId(responsesSpec1.getId()); + r1.setName(responsesSpec1.getName()); + r1.setRole("serviceSpecRelationship"); + r1.setRelationshipType("aggregation"); + this.addServiceSpecRelationshipItem(r1); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/model/TargetServiceSchema.java b/src/main/java/org/etsi/osl/tmf/scm633/model/TargetServiceSchema.java new file mode 100644 index 0000000..1b9d175 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/model/TargetServiceSchema.java @@ -0,0 +1,82 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.model; + +import java.util.Objects; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Embeddable; + +/** + * The reference object to the schema and type of target service which is described by service specification + */ +@Schema(description = "The reference object to the schema and type of target service which is described by service specification") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-04-29T19:18:54.771Z") + +@Embeddable +public class TargetServiceSchema extends BaseRootEntity { + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TargetServiceSchema targetServiceSchema = (TargetServiceSchema) o; + return Objects.equals(this.baseType, targetServiceSchema.baseType) && + Objects.equals(this.schemaLocation, targetServiceSchema.schemaLocation) && + Objects.equals(this.type, targetServiceSchema.type); + } + + @Override + public int hashCode() { + return Objects.hash(baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TargetServiceSchema {\n"); + + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/scm633/repo/CandidateRepository.java b/src/main/java/org/etsi/osl/tmf/scm633/repo/CandidateRepository.java new file mode 100644 index 0000000..df131d4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/repo/CandidateRepository.java @@ -0,0 +1,39 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.repo; + +import java.util.Optional; +import org.etsi.osl.tmf.scm633.model.ServiceCandidate; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + +@Repository +public interface CandidateRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + @Query("SELECT sc FROM ServiceCandidate sc JOIN FETCH sc.serviceSpecificationObj spec WHERE spec.uuid = ?1") + Optional findByServiceSpecUuid(String id); + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/repo/CatalogRepository.java b/src/main/java/org/etsi/osl/tmf/scm633/repo/CatalogRepository.java new file mode 100644 index 0000000..4b3ca30 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/repo/CatalogRepository.java @@ -0,0 +1,42 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.scm633.model.ServiceCatalog; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + +@Repository +public interface CatalogRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + Optional findByName(String aName); + + List findByOrderByName(); + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/repo/CategoriesRepository.java b/src/main/java/org/etsi/osl/tmf/scm633/repo/CategoriesRepository.java new file mode 100644 index 0000000..da400ea --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/repo/CategoriesRepository.java @@ -0,0 +1,41 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.scm633.model.ServiceCategory; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + +@Repository +public interface CategoriesRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + Optional findByName(String aName); + + List findByOrderByName(); + + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/repo/ServiceSpecificationRepository.java b/src/main/java/org/etsi/osl/tmf/scm633/repo/ServiceSpecificationRepository.java new file mode 100644 index 0000000..9a949c5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/repo/ServiceSpecificationRepository.java @@ -0,0 +1,45 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.scm633.model.ServiceSpecification; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + +@Repository +public interface ServiceSpecificationRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + List findByNameAndVersion(String aname, String aversion); + + List findByOrderByName(); + + + @Query("SELECT spec FROM ServiceSpecification spec JOIN FETCH spec.relatedParty party WHERE party.extendedInfo=?1") + Optional findExternalSpecByExternalId(String servicespecid); + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/reposervices/CandidateRepoService.java b/src/main/java/org/etsi/osl/tmf/scm633/reposervices/CandidateRepoService.java new file mode 100644 index 0000000..872a822 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/reposervices/CandidateRepoService.java @@ -0,0 +1,171 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.reposervices; + +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.common.model.ELifecycle; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.scm633.model.ServiceCandidate; +import org.etsi.osl.tmf.scm633.model.ServiceCandidateCreate; +import org.etsi.osl.tmf.scm633.model.ServiceCandidateUpdate; +import org.etsi.osl.tmf.scm633.model.ServiceCategory; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryRef; +import org.etsi.osl.tmf.scm633.model.ServiceSpecification; +import org.etsi.osl.tmf.scm633.repo.CandidateRepository; +import org.etsi.osl.tmf.scm633.repo.ServiceSpecificationRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import jakarta.validation.Valid; + +@Service +public class CandidateRepoService { + + + @Autowired + CandidateRepository candidateRepo; + + @Autowired + CategoryRepoService categsRepoService; + + + @Autowired + ServiceSpecificationRepository serviceSpecificationRepo; + + public ServiceCandidate addServiceCandidate( ServiceCandidate c) { + + return this.candidateRepo.save( c ); + } + + //@Transactional(propagation=Propagation.REQUIRED, readOnly=false, noRollbackFor=Exception.class) + public ServiceCandidate addServiceCandidate(@Valid ServiceCandidateCreate serviceCand) { + + + ServiceCandidate sc = new ServiceCandidate() ; +// if ( serviceCand.getServiceSpecification() != null) { +// Optional optsc = this.candidateRepo.findByServiceSpecUuid(serviceCand.getServiceSpecification().getId()); +// if (optsc.isPresent() ) { +// sc = optsc.get();//add to an existing candidate +// } +// } + + sc = updateServiceCandidateDataFromAPI( sc, serviceCand); + + return this.candidateRepo.save( sc ); + } + + public List findAll() { + return (List) this.candidateRepo.findAll(); + } + + //@Transactional(propagation=Propagation.REQUIRED, readOnly=true, noRollbackFor=Exception.class) + public ServiceCandidate findById(String id) { + Optional optionalCat = this.candidateRepo.findByUuid( id ); + return optionalCat + .orElse(null); + } + + public Void deleteById(String id) { + Optional optionalCat = this.candidateRepo.findByUuid( id ); + if ( !optionalCat.isEmpty() ) { + this.candidateRepo.delete( optionalCat.get()); + } + return null; + + } + + @Transactional + public ServiceCandidate updateCandidate(String id, @Valid ServiceCandidateUpdate serviceCandidate) { + Optional scopt = this.candidateRepo.findByUuid(id); + if ( scopt == null ) { + return null; + } + ServiceCandidate sc = scopt.get(); + + sc = updateServiceCandidateDataFromAPI( sc, serviceCandidate); + + return this.candidateRepo.save( sc ); + } + + + @Transactional + public ServiceCandidate updateServiceCandidateDataFromAPI(ServiceCandidate sc, @Valid ServiceCandidateUpdate serviceCandidateUpd) { + + ServiceSpecification specObj = null; + + if ( serviceCandidateUpd.getServiceSpecification()!=null) { + Optional optionalCat = this.serviceSpecificationRepo.findByUuid( serviceCandidateUpd.getServiceSpecification().getId() ); + specObj = optionalCat.orElse(null); + } + + if ( specObj != null ) { + sc.setName( specObj.getName() ); + sc.setDescription( specObj.getDescription() ); + sc.setLifecycleStatusEnum ( ELifecycle.getEnum( specObj.getLifecycleStatus() ) ); + sc.setVersion( specObj.getVersion() ); + } else { + sc.setName( serviceCandidateUpd.getName() ); + sc.setDescription( serviceCandidateUpd.getDescription() ); + sc.setLifecycleStatusEnum( ELifecycle.LAUNCHED ); + sc.setVersion( serviceCandidateUpd.getVersion()); + } + + sc.setLastUpdate( OffsetDateTime.now(ZoneOffset.UTC) ); + if ( serviceCandidateUpd.getLifecycleStatus() == null ) { + sc.setLifecycleStatusEnum( ELifecycle.LAUNCHED ); + } else { + sc.setLifecycleStatusEnum ( ELifecycle.getEnum( serviceCandidateUpd.getLifecycleStatus() ) ); + } + TimePeriod tp = new TimePeriod(); + + if ( sc.getValidFor() != null ){ + tp.setStartDateTime( sc.getValidFor().getStartDateTime() ); + tp.setEndDateTime( sc.getValidFor().getEndDateTime() ); + } + sc.setValidFor( tp ); + + if ( specObj != null){ + sc.setServiceSpecificationObj( specObj ); + } + + //save first to continue + ServiceCandidate savedCand = this.candidateRepo.save( sc ); + + if ( serviceCandidateUpd.getCategory() !=null ){ + for (ServiceCategoryRef sCategD : serviceCandidateUpd.getCategory()) { + ServiceCategory catObj = this.categsRepoService.findByIdEager(sCategD.getId()); + + if ( catObj!=null){ + catObj.getServiceCandidateObj().add(savedCand); //add candidate ref to category + catObj = this.categsRepoService.categsRepo.save(catObj); + + } + } + } + + + return savedCand; + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/reposervices/CatalogRepoService.java b/src/main/java/org/etsi/osl/tmf/scm633/reposervices/CatalogRepoService.java new file mode 100644 index 0000000..db4c702 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/reposervices/CatalogRepoService.java @@ -0,0 +1,145 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.reposervices; + +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.common.model.ELifecycle; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.scm633.model.ServiceCatalog; +import org.etsi.osl.tmf.scm633.model.ServiceCatalogCreate; +import org.etsi.osl.tmf.scm633.model.ServiceCatalogUpdate; +import org.etsi.osl.tmf.scm633.model.ServiceCategory; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryRef; +import org.etsi.osl.tmf.scm633.repo.CatalogRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import jakarta.validation.Valid; + +@Service +public class CatalogRepoService { + + + @Autowired + CatalogRepository catalogRepo; + + @Autowired + CategoryRepoService categRepoService; + + @Autowired + ServiceSpecificationRepoService specRepoService; + + @Autowired + CandidateRepoService candidateRepoService; + + public ServiceCatalog addCatalog(ServiceCatalog c) { + + return this.catalogRepo.save(c); + } + + public ServiceCatalog addCatalog(@Valid ServiceCatalogCreate serviceCat) { + + ServiceCatalog sc = new ServiceCatalog(); + + sc = updateCatalogDataFromAPICall(sc, serviceCat); + return this.catalogRepo.save(sc); + } + + public List findAll() { + return (List) this.catalogRepo.findByOrderByName(); + } + + public ServiceCatalog findById(String id) { + Optional optionalCat = this.catalogRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + + public ServiceCatalog findByName(String aName) { + Optional optionalCat = this.catalogRepo.findByName( aName ); + return optionalCat.orElse(null); + } + + public Void deleteById(String id) { + Optional optionalCat = this.catalogRepo.findByUuid(id); + this.catalogRepo.delete(optionalCat.get()); + return null; + + } + + public ServiceCatalog updateCatalog(String id, ServiceCatalogUpdate serviceCatalog) { + + Optional optSC = catalogRepo.findByUuid(id); + if (optSC == null) { + return null; + } + ServiceCatalog sc = optSC.get(); + sc = updateCatalogDataFromAPICall(sc, serviceCatalog); + return this.catalogRepo.save(sc); + } + + public ServiceCatalog updateCatalogDataFromAPICall(ServiceCatalog sc, ServiceCatalogUpdate serviceCatalog) { + + if (serviceCatalog.getName()!=null){ + sc.setName(serviceCatalog.getName()); + } + if (serviceCatalog.getDescription()!=null){ + sc.setDescription(serviceCatalog.getDescription()); + } + if (serviceCatalog.getLifecycleStatus() != null) { + sc.setLifecycleStatusEnum(ELifecycle.getEnum(serviceCatalog.getLifecycleStatus())); + } + if (serviceCatalog.getVersion() != null) { + sc.setVersion(serviceCatalog.getVersion()); + } + sc.setLastUpdate(OffsetDateTime.now(ZoneOffset.UTC)); + TimePeriod tp = new TimePeriod(); + if (serviceCatalog.getValidFor() != null) { + tp.setStartDateTime(serviceCatalog.getValidFor().getStartDateTime()); + tp.setEndDateTime(serviceCatalog.getValidFor().getEndDateTime()); + sc.setValidFor(tp); + } + + // add any new category + if (serviceCatalog.getCategory() != null) { + + sc.getCategoryObj().clear(); + for (ServiceCategoryRef scref : serviceCatalog.getCategory()) { + ServiceCategory servcat = this.categRepoService.findByUuid(scref.getId()); + sc.addCategory(servcat); + } + } + + return sc; + + } + + public ServiceCatalog updateCatalog(ServiceCatalog scatalog) { + return this.catalogRepo.save(scatalog); + } + + + + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/reposervices/CategoryRepoService.java b/src/main/java/org/etsi/osl/tmf/scm633/reposervices/CategoryRepoService.java new file mode 100644 index 0000000..cb43791 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/reposervices/CategoryRepoService.java @@ -0,0 +1,301 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.reposervices; + +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.etsi.osl.tmf.common.model.ELifecycle; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.scm633.model.ServiceCandidate; +import org.etsi.osl.tmf.scm633.model.ServiceCandidateRef; +import org.etsi.osl.tmf.scm633.model.ServiceCategory; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryCreate; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryRef; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryUpdate; +import org.etsi.osl.tmf.scm633.model.ServiceSpecCharRelationship; +import org.etsi.osl.tmf.scm633.model.ServiceSpecCharacteristic; +import org.etsi.osl.tmf.scm633.model.ServiceSpecCharacteristicValue; +import org.etsi.osl.tmf.scm633.repo.CandidateRepository; +import org.etsi.osl.tmf.scm633.repo.CatalogRepository; +import org.etsi.osl.tmf.scm633.repo.CategoriesRepository; +import org.hibernate.Hibernate; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + +@Service +public class CategoryRepoService { + + + @Autowired + CategoriesRepository categsRepo; + + + @Autowired + CandidateRepository candidateRepo; + + + @Autowired + CatalogRepository catalogRepo; + + + private SessionFactory sessionFactory; + + /** + * from https://stackoverflow.com/questions/25063995/spring-boot-handle-to-hibernate-sessionfactory + * @param factory + */ + @Autowired + public CategoryRepoService(EntityManagerFactory factory) { + if(factory.unwrap(SessionFactory.class) == null){ + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + + public ServiceCategory addCategory(ServiceCategory c) { + + return this.categsRepo.save( c ); + } + + public ServiceCategory addCategory(@Valid ServiceCategoryCreate serviceCategory) { + + + ServiceCategory sc = new ServiceCategory() ; + sc = updateCategoryDataFromAPICall(sc, serviceCategory); + return this.categsRepo.save( sc ); + + } + + public List findAll() { + return (List) this.categsRepo.findByOrderByName(); + } + + public ServiceCategory findByUuid(String id) { + Optional optionalCat = this.categsRepo.findByUuid( id ); + return optionalCat + .orElse(null); + } + + + public ServiceCategory findByIdEager(String id) { +// Optional optionalCat = this.categsRepo.findByIdEager( id ); +// return optionalCat +// .orElse(null); + + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + ServiceCategory dd = null; + try { + dd = (ServiceCategory) session.get(ServiceCategory.class, id); + Hibernate.initialize( dd.getCategoryObj() ); + Hibernate.initialize( dd.getServiceCandidateObj() ); + for (ServiceCandidate sc : dd.getServiceCandidateObj()) { + Hibernate.initialize(sc ); + Hibernate.initialize(sc.getCategoryObj() ); + Hibernate.initialize(sc.getServiceSpecificationObj() ); + Hibernate.initialize(sc.getServiceSpecificationObj().getServiceSpecCharacteristic() ); + for (ServiceSpecCharacteristic ssc : sc.getServiceSpecificationObj().getServiceSpecCharacteristic() ) { + Hibernate.initialize(ssc.getServiceSpecCharRelationship() ); + for (ServiceSpecCharRelationship srel : ssc.getServiceSpecCharRelationship() ) { + Hibernate.initialize( srel ); + } + Hibernate.initialize(ssc.getServiceSpecCharacteristicValue() ); + for (ServiceSpecCharacteristicValue srel : ssc.getServiceSpecCharacteristicValue() ) { + Hibernate.initialize( srel ); + } + } + Hibernate.initialize(sc.getServiceSpecificationObj().getServiceSpecRelationship() ); + } + + tx.commit(); + } finally { + session.close(); + } + return dd; + } + + + + + + public boolean deleteById(String id) { + Optional optionalCat = this.categsRepo.findByUuid( id ); + if ( optionalCat.get().getCategoryObj().size()>0 ) { + return false; //has children + } + + + if ( optionalCat.get().getParentId() != null ) { + ServiceCategory parentCat = (this.categsRepo.findByUuid( optionalCat.get().getParentId() )).get(); + + //remove from parent category + for (ServiceCategory ss : parentCat.getCategoryObj()) { + if ( ss.getId() == optionalCat.get().getId() ) { + parentCat.getCategoryObj().remove(ss); + break; + } + } + parentCat = this.categsRepo.save(parentCat); + } + + + this.categsRepo.delete( optionalCat.get()); + return true; + + } + + public ServiceCategory updateCategory(String id, @Valid ServiceCategoryUpdate serviceCategory) { + Optional optionalCat = this.categsRepo.findByUuid( id ); + if ( optionalCat == null ) { + return null; + } + + ServiceCategory sc = optionalCat.get(); + sc = updateCategoryDataFromAPICall(sc, serviceCategory); + return this.categsRepo.save( sc ); + } + + public ServiceCategory updateCategoryDataFromAPICall( ServiceCategory sc, ServiceCategoryUpdate serviceCatUpd ) + { + if (serviceCatUpd.getName()!=null) { + sc.setName( serviceCatUpd.getName() ); + } + if (serviceCatUpd.getDescription()!=null) { + sc.setDescription( serviceCatUpd.getDescription()); + } + if ( serviceCatUpd.isIsRoot() != null ) { + sc.setIsRoot( serviceCatUpd.isIsRoot()); + } + + if ( serviceCatUpd.getLifecycleStatus() != null ) { + sc.setLifecycleStatusEnum ( ELifecycle.getEnum( serviceCatUpd.getLifecycleStatus() ) ); + } + + + if ( serviceCatUpd.getVersion() != null ) { + sc.setVersion( serviceCatUpd.getVersion() ); + } + sc.setLastUpdate( OffsetDateTime.now(ZoneOffset.UTC) ); + TimePeriod tp = new TimePeriod(); + if ( serviceCatUpd.getValidFor() != null ) { + tp.setStartDateTime( serviceCatUpd.getValidFor().getStartDateTime() ); + tp.setEndDateTime( serviceCatUpd.getValidFor().getEndDateTime() ); + sc.setValidFor( tp ); + } + + if ( serviceCatUpd.getCategory() !=null ) { + //reattach fromDB + Map idAddedUpdated = new HashMap<>(); + + for (ServiceCategoryRef ref : serviceCatUpd.getCategory() ) { + //find by id and reload it here. + boolean idexists = false; + for (ServiceCategory originalSCat : sc.getCategoryObj()) { + if ( originalSCat.getId().equals( ref.getId())) { + idexists = true; + idAddedUpdated.put( originalSCat.getId(), true); + break; + } + } + if (!idexists) { + Optional catToAdd = this.categsRepo.findByUuid( ref.getId() ); + if ( catToAdd.isPresent() ) { + ServiceCategory scatadd = catToAdd.get(); + sc.getCategoryObj().add( scatadd ); + idAddedUpdated.put( ref.getId(), true); + + scatadd.setParentId( sc.getUuid()); + scatadd = this.categsRepo.save( scatadd ); + } + } + } + List toRemove = new ArrayList<>(); + for (ServiceCategory ss : sc.getCategoryObj()) { + if ( idAddedUpdated.get( ss.getId() ) == null ) { + toRemove.add(ss); + } + } + + for (ServiceCategory ar : toRemove) { + sc.getCategoryObj().remove(ar); + } + } + + + if ( serviceCatUpd.getServiceCandidate() !=null ) { + //reattach fromDB + Map idAddedUpdated = new HashMap<>(); + + for (ServiceCandidateRef ref : serviceCatUpd.getServiceCandidate() ) { + //find by id and reload it here. + boolean idexists = false; + for (ServiceCandidate originalSCat : sc.getServiceCandidateObj()) { + if ( originalSCat.getId().equals( ref.getId())) { + idexists = true; + idAddedUpdated.put( originalSCat.getId(), true); + break; + } + } + if (!idexists) { + Optional catToAdd = this.candidateRepo.findByUuid( ref.getId() ); + if ( catToAdd.isPresent() ) { + ServiceCandidate scatadd = catToAdd.get(); + sc.getServiceCandidateObj().add( scatadd ); + idAddedUpdated.put( ref.getId(), true); + + } + } + } + List toRemove = new ArrayList<>(); + for (ServiceCandidate ss : sc.getServiceCandidateObj()) { + if ( idAddedUpdated.get( ss.getId() ) == null ) { + toRemove.add(ss); + } + } + + for (ServiceCandidate ar : toRemove) { + sc.getServiceCandidateObj().remove(ar); + } + } + + return sc; + } + + + public ServiceCategory findByName(String aName) { + Optional optionalCat = this.categsRepo.findByName( aName ); + return optionalCat + .orElse(null); + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/scm633/reposervices/ServiceSpecificationRepoService.java b/src/main/java/org/etsi/osl/tmf/scm633/reposervices/ServiceSpecificationRepoService.java new file mode 100644 index 0000000..1a3c00c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/scm633/reposervices/ServiceSpecificationRepoService.java @@ -0,0 +1,1452 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.scm633.reposervices; + +import java.io.File; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.UUID; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.Attachment; +import org.etsi.osl.tmf.common.model.AttachmentRef; +import org.etsi.osl.tmf.common.model.ELifecycle; +import org.etsi.osl.tmf.common.model.EValueType; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.common.model.UserPartRoleType; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.etsi.osl.tmf.pcm620.reposervices.AttachmentRepoService; +import org.etsi.osl.tmf.pm632.model.Organization; +import org.etsi.osl.tmf.pm632.reposervices.OrganizationRepoService; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.rcm634.model.LogicalResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCharacteristic; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCharacteristicValue; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceSpecificationRepoService; +import org.etsi.osl.tmf.scm633.api.ServiceSpecificationApiRouteBuilderNSD; +import org.etsi.osl.tmf.scm633.model.ServiceCandidate; +import org.etsi.osl.tmf.scm633.model.ServiceCandidateCreate; +import org.etsi.osl.tmf.scm633.model.ServiceCandidateUpdate; +import org.etsi.osl.tmf.scm633.model.ServiceSpecCharacteristic; +import org.etsi.osl.tmf.scm633.model.ServiceSpecCharacteristicValue; +import org.etsi.osl.tmf.scm633.model.ServiceSpecRelationship; +import org.etsi.osl.tmf.scm633.model.ServiceSpecification; +import org.etsi.osl.tmf.scm633.model.ServiceSpecificationCreate; +import org.etsi.osl.tmf.scm633.model.ServiceSpecificationUpdate; +import org.etsi.osl.tmf.scm633.repo.ServiceSpecificationRepository; +import org.etsi.osl.tmf.stm653.model.CharacteristicSpecification; +import org.etsi.osl.tmf.stm653.model.ServiceTestSpecification; +import org.etsi.osl.tmf.stm653.model.ServiceTestSpecificationUpdate; +import org.etsi.osl.tmf.stm653.reposervices.ServiceTestSpecificationRepoService; +import org.etsi.osl.tmf.util.AttachmentUtil; +import org.etsi.osl.tmf.util.KrokiClient; +import org.hibernate.Hibernate; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.transform.ResultTransformer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.io.ClassPathResource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import org.etsi.osl.model.ConstituentVxF; +import org.etsi.osl.model.ExperimentOnBoardDescriptor; +import org.etsi.osl.model.NetworkServiceDescriptor; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + +/** + * @author ctranoris + * + */ +@Service +@Transactional +public class ServiceSpecificationRepoService { + + private static final transient Log logger = LogFactory.getLog(ServiceSpecificationRepoService.class.getName()); + + @Autowired + ObjectMapper objectMapper; + + @Autowired + ServiceSpecificationRepository serviceSpecificationRepo; + + @Autowired + CandidateRepoService candidateRepoService; + + @Autowired + AttachmentRepoService attachmentRepoService; + + + @Autowired + ResourceSpecificationRepoService resourceSpecRepoService; + + @Autowired + ServiceSpecificationApiRouteBuilderNSD serviceSpecificationApiRouteBuilder; + + + @Autowired + OrganizationRepoService organizationRepoService; + + + @Autowired + ServiceTestSpecificationRepoService serviceTestSpecificationRepoService; + + private SessionFactory sessionFactory; + + private static final String METADATADIR = System.getProperty("user.home") + File.separator + ".attachments" + + File.separator + "metadata" + File.separator; + + @Autowired + public ServiceSpecificationRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + + + public ServiceSpecification addServiceSpecification(@Valid ServiceSpecificationCreate serviceServiceSpecification) { + + ServiceSpecification serviceSpec = new ServiceSpecification(); + + serviceSpec = this.updateServiceSpecDataFromAPIcall(serviceSpec, serviceServiceSpecification); + serviceSpec = this.serviceSpecificationRepo.save(serviceSpec); + serviceSpec.fixSpecCharRelationhsipIDs(); + + /** + * we automatically create s Service Candidate for this spec ready to be + * attached to categories + */ + @Valid + ServiceCandidateCreate serviceCandidate = new ServiceCandidateCreate(); + ServiceSpecificationRef serviceSpecificationRef = new ServiceSpecificationRef(); + serviceCandidate.setServiceSpecification(serviceSpecificationRef); + serviceSpecificationRef.setId(serviceSpec.getId()); + ServiceCandidate serviceCandidateObj = candidateRepoService.addServiceCandidate(serviceCandidate); + + serviceSpec.setServiceCandidateObjId(serviceCandidateObj.getUuid()); + + return this.serviceSpecificationRepo.save(serviceSpec); + } + + public List findAll() { + return (List) this.serviceSpecificationRepo.findByOrderByName(); + } + + /** + * + * This findAll is optimized on fields. + * @param fields + * @param allParams + * @return + * @throws UnsupportedEncodingException + */ + @Transactional + public List findAll(@Valid String fields, Map allParams) + throws UnsupportedEncodingException { + + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + List alist = null; + try { +// String sql = "SELECT s FROM ServiceSpecification s"; + String sql = "SELECT " + + "s.uuid as uuid," + + "s.id as id," + + "s.name as name," + + "s.description as description," + + "s.isBundle as isBundle," + + "s.version as version," + + "s.type as type"; + + if (fields != null) { + String[] field = fields.split(","); + for (String f : field) { + sql += ", s." + f + " as " + f ; + } + + } + sql += " FROM ServiceSpecification s"; + if (allParams.size() > 0) { + sql += " WHERE "; + for (String pname : allParams.keySet()) { + sql += " " + pname + " LIKE "; + String pval = URLDecoder.decode(allParams.get(pname), StandardCharsets.UTF_8.toString()); + sql += "'" + pval + "'"; + } + + } + sql += " ORDER BY s.name"; + + + + List mapaEntity = session + .createQuery(sql ) + .setResultTransformer( new ResultTransformer() { + + @Override + public Object transformTuple(Object[] tuple, String[] aliases) { + Map result = new LinkedHashMap(tuple.length); + for (int i = 0; i < tuple.length; i++) { + String alias = aliases[i]; + if (alias.equals("type")) { + alias = "@type"; + } + if (alias != null) { + result.put(alias, tuple[i]); + } + } + + return result; + } + + @Override + public List transformList(List collection) { + return collection; + } + } ) + .list(); + +// //this will fetch the whole object fields +// if ( (( allParams!= null) && ( allParams.size()>0)) ) { +// List resultlist = new ArrayList<>(); +// for (ServiceSpecification s : alist) { +// resultlist.add( findByUuid( s.getUuid() )); +// } +// return resultlist; +// } + + + + return mapaEntity; + + + + + } finally { + tx.commit(); + session.close(); + } + + } + +// @Transactional(propagation=Propagation.REQUIRED , readOnly=true, +// noRollbackFor=Exception.class) + public ServiceSpecification findByUuid(String id) { + Optional optionalCat = this.serviceSpecificationRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + @Transactional + public ServiceSpecification findByUuidEager(String id) { + + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); // instead of begin transaction, is it possible to continue? + try { + ServiceSpecification dd = null; + try { + dd = session.get(ServiceSpecification.class, id); + if (dd == null) { + return this.findByUuid(id);// last resort + } + Hibernate.initialize(dd.getAttachment()); + Hibernate.initialize(dd.getRelatedParty()); + Hibernate.initialize(dd.getResourceSpecification()); + Hibernate.initialize(dd.getServiceLevelSpecification()); + Hibernate.initialize(dd.getServiceSpecCharacteristic()); + for (ServiceSpecCharacteristic schar : dd.getServiceSpecCharacteristic()) { + Hibernate.initialize(schar.getServiceSpecCharacteristicValue()); + Hibernate.initialize(schar.getServiceSpecCharRelationship()); + + } + Hibernate.initialize(dd.getServiceSpecRelationship()); + + tx.commit(); + } finally { + session.close(); + } + return dd; + + } catch (Exception e) { + e.printStackTrace(); + } + + session.close(); + return null; + + + } + + public Void deleteByUuid(String id) { + Optional optionalCat = this.serviceSpecificationRepo.findByUuid(id); + ServiceSpecification s = optionalCat.get(); + if (s == null) { + return null; + } + + // ServiceCandidate scopt = + // this.candidateRepoService.findById(s.getServiceCandidateObjId()); + this.candidateRepoService.deleteById(s.getServiceCandidateObjId()); + + /** + * prior deleting we need to delete other dependency objects + */ + + this.serviceSpecificationRepo.delete(s); + return null; + } + + + /** + * @param id + * @param forceId + * @param serviceServiceSpecificationCreate + * @return + */ + @Transactional + public ServiceSpecification updateOrAddServiceSpecification(String id, + @Valid ServiceSpecificationCreate serviceServiceSpecificationCreate) { + + ServiceSpecification serviceSpec = updateServiceSpecification(id, serviceServiceSpecificationCreate ); + if ( serviceSpec == null ) { + serviceSpec = addServiceSpecification( serviceServiceSpecificationCreate ); + } + + return serviceSpec; + } + + + @Transactional + public ServiceSpecification updateServiceSpecification(String id, + @Valid ServiceSpecificationUpdate serviceServiceSpecification) { + + ServiceSpecification s = this.findByUuid(id); + if (s == null) { + return null; + } + ServiceSpecification serviceSpec = s; + serviceSpec = this.updateServiceSpecDataFromAPIcall(serviceSpec, serviceServiceSpecification); + + serviceSpec = this.serviceSpecificationRepo.save(serviceSpec); + serviceSpec.fixSpecCharRelationhsipIDs(); + + //save the equivalent candidate + ServiceCandidate serviceCandidateObj = candidateRepoService.findById( serviceSpec.getServiceCandidateObjId() ); + if ( serviceCandidateObj!=null) { + ServiceCandidateUpdate serviceCandidateUpd = new ServiceCandidateUpdate(); + serviceCandidateUpd.setName( serviceSpec.getName() ); + serviceCandidateUpd.setDescription( serviceSpec.getDescription() ); + serviceCandidateUpd.setLifecycleStatus( serviceSpec.getLifecycleStatus() ); + serviceCandidateUpd.setVersion( serviceSpec.getVersion() ); + candidateRepoService.updateCandidate( serviceCandidateObj.getId(), serviceCandidateUpd); + } else { + ServiceCandidateCreate serviceCandidate = new ServiceCandidateCreate(); + ServiceSpecificationRef serviceSpecificationRef = new ServiceSpecificationRef(); + serviceCandidate.setServiceSpecification(serviceSpecificationRef); + serviceSpecificationRef.setId(serviceSpec.getId()); + serviceCandidateObj = candidateRepoService.addServiceCandidate(serviceCandidate); + serviceSpec.setServiceCandidateObjId(serviceCandidateObj.getUuid()); + } + + return this.serviceSpecificationRepo.save(serviceSpec); + + } + + @Transactional + private ServiceSpecification updateServiceSpecDataFromAPIcall(ServiceSpecification serviceSpec, + ServiceSpecificationUpdate serviceSpecUpd) { + + + + if (serviceSpecUpd.getName() != null) { + serviceSpec.setName(serviceSpecUpd.getName()); + } + + if (serviceSpecUpd.getDescription() != null) { + serviceSpec.setDescription(serviceSpecUpd.getDescription()); + + } + + if (serviceSpecUpd.isIsBundle() != null) { + serviceSpec.isBundle(serviceSpecUpd.isIsBundle()); + + } + + serviceSpec.setLastUpdate(OffsetDateTime.now(ZoneOffset.UTC)); + + + if (serviceSpecUpd.getLifecycleStatus() != null) { + serviceSpec.setLifecycleStatusEnum(ELifecycle.getEnum(serviceSpecUpd.getLifecycleStatus())); + } + + if (serviceSpecUpd.getVersion() != null) { + serviceSpec.setVersion(serviceSpecUpd.getVersion()); + } + + /** + * Update Attachment list + */ + if (serviceSpecUpd.getAttachment() != null) { + // reattach attachments fromDB + + Map idAddedUpdated = new HashMap<>(); + + for (AttachmentRef ar : serviceSpecUpd.getAttachment()) { + // find attachmet by id and reload it here. + // we need the attachment model from resource spec models + boolean idexists = false; + for (AttachmentRef orinalAtt : serviceSpec.getAttachment()) { + if (orinalAtt.getId().equals(ar.getId())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getId(), true); + break; + } + } + + if (!idexists) { + serviceSpec.getAttachment().add(ar); + idAddedUpdated.put(ar.getId(), true); + } + } + + List toRemove = new ArrayList<>(); + for (AttachmentRef ss : serviceSpec.getAttachment()) { + if (idAddedUpdated.get(ss.getId()) == null) { + toRemove.add(ss); + } + } + + for (AttachmentRef ar : toRemove) { + serviceSpec.getAttachment().remove(ar); + } + + } + + + + + + /** + * Update ServiceSpecCharacteristic list We need to compare by name, since IDs + * will not exist + */ + if (serviceSpecUpd.getServiceSpecCharacteristic() != null) { + // reattach attachments fromDB + + Map idAddedUpdated = new HashMap<>(); + + for (ServiceSpecCharacteristic charUpd : serviceSpecUpd.getServiceSpecCharacteristic()) { + + boolean nameExists = false; + for (ServiceSpecCharacteristic originalSpecChar : serviceSpec.getServiceSpecCharacteristic()) { + if (originalSpecChar.getName()!=null && charUpd.getName()!=null && originalSpecChar.getName().equals(charUpd.getName())) { + nameExists = true; + idAddedUpdated.put(originalSpecChar.getName(), true); + originalSpecChar.updateWith(charUpd); + break; + } + } + + if (!nameExists) { + serviceSpec.getServiceSpecCharacteristic().add(new ServiceSpecCharacteristic(charUpd)); + if ( charUpd.getName() == null ) { + charUpd.setName( UUID.randomUUID().toString() ); + } + idAddedUpdated.put(charUpd.getName(), true); + } + + } + + List toRemove = new ArrayList<>(); + for (ServiceSpecCharacteristic ss : serviceSpec.getServiceSpecCharacteristic()) { + if (idAddedUpdated.get(ss.getName()) == null) { + toRemove.add(ss); + } + } + + for (ServiceSpecCharacteristic serviceSpecCharacteristic : toRemove) { + serviceSpec.getServiceSpecCharacteristic().remove(serviceSpecCharacteristic); + } + + } + + /** + * Update RelatedParty list + */ + if (serviceSpecUpd.getRelatedParty() != null) { + // reattach fromDB + Map idAddedUpdated = new HashMap<>(); + + for (RelatedParty rp : serviceSpecUpd.getRelatedParty()) { + + boolean idexists = false; + for (RelatedParty originalRP : serviceSpec.getRelatedParty()) { + if (originalRP.getId().equals(rp.getId())) { + idexists = true; + idAddedUpdated.put(originalRP.getId(), true); + break; + } + } + if (!idexists) { + serviceSpec.getRelatedParty().add(rp); + idAddedUpdated.put(rp.getId(), true); + } + } + List toRemove = new ArrayList<>(); + for (RelatedParty ss : serviceSpec.getRelatedParty()) { + if (idAddedUpdated.get(ss.getId()) == null) { + toRemove.add(ss); + } + } + + for (RelatedParty ar : toRemove) { + serviceSpec.getRelatedParty().remove(ar); + } + } + + /** + * Update ServiceSpecRelationship list + */ + + if (serviceSpecUpd.getServiceSpecRelationship() != null) { + + // reattach attachments fromDB + Map idAddedUpdated = new HashMap<>(); + + for (ServiceSpecRelationship ar : serviceSpecUpd.getServiceSpecRelationship()) { + // find ServiceSpecRelationship by id and reload it here. + // we need the ServiceSpecRelationship model from spec models + boolean idexists = false; + for (ServiceSpecRelationship orinalAtt : serviceSpec.getServiceSpecRelationship()) { + if (orinalAtt.getId().equals(ar.getId())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getId(), true); + break; + } + } + + if (!idexists) { + serviceSpec.getServiceSpecRelationship().add(ar); + idAddedUpdated.put(ar.getId(), true); + + /** + * Also, + * we will add by default all the characteristics of this service to the related bundle parent service + */ + + serviceSpec = copyCharacteristicsOfServiceId( ar.getId(), serviceSpec); + + } + } + + List toRemove = new ArrayList<>(); + for (ServiceSpecRelationship ss : serviceSpec.getServiceSpecRelationship()) { + if (idAddedUpdated.get(ss.getId()) == null) { + toRemove.add(ss); + } + } + + for (ServiceSpecRelationship ar : toRemove) { + serviceSpec.getServiceSpecRelationship().remove(ar); + } + + } + + /** + * Update ResourceSpecification list + */ + if (serviceSpecUpd.getResourceSpecification() != null) { + + // reattach attachments fromDB + Map idAddedUpdated = new HashMap<>(); + + for (ResourceSpecificationRef ar : serviceSpecUpd.getResourceSpecification()) { + // find attachmet by id and reload it here. + // we need the attachment model from resource spec models + boolean idexists = false; + for (ResourceSpecificationRef orinalAtt : serviceSpec.getResourceSpecification()) { + if (orinalAtt.getId().equals(ar.getId())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getId(), true); + break; + } + } + + if (!idexists) { + serviceSpec.getResourceSpecification().add(ar); + idAddedUpdated.put(ar.getId(), true); + + /** + * Also, + * we will add by default all the characteristics of this rSpec to the related bundle parent service + */ + serviceSpec = copyCharacteristicsOfResourceSpecId( ar.getId(), serviceSpec); + } + } + + List toRemove = new ArrayList<>(); + for (ResourceSpecificationRef ss : serviceSpec.getResourceSpecification()) { + if (idAddedUpdated.get(ss.getId()) == null) { + toRemove.add(ss); + } + } + + for (ResourceSpecificationRef ar : toRemove) { + serviceSpec.getResourceSpecification().remove(ar); + } + + } + + /** + * Update ServiceLevelSpecification list + */ + if (serviceSpecUpd.getServiceLevelSpecification() != null) { + serviceSpec.getServiceLevelSpecification().clear(); + serviceSpec.getServiceLevelSpecification().addAll(serviceSpecUpd.getServiceLevelSpecification()); + } + + TimePeriod tp = new TimePeriod(); + if (serviceSpecUpd.getValidFor() != null) { + tp.setStartDateTime(serviceSpecUpd.getValidFor().getStartDateTime()); + tp.setEndDateTime(serviceSpecUpd.getValidFor().getEndDateTime()); + serviceSpec.setValidFor(tp); + } + + if (serviceSpec.getResourceSpecification().size() > 0) { + serviceSpec.setType("ResourceFacingServiceSpecification"); + } else if ( serviceSpecUpd.getType() != null) { + serviceSpec.setType( serviceSpecUpd.getType() ); + } else + { + serviceSpec.setType("CustomerFacingServiceSpecification"); + } + + + String charvalue = createGraphNotation( serviceSpec ); + ServiceSpecCharacteristic gnchar = serviceSpec.findSpecCharacteristicByName("SSPEC_GRAPH_NOTATION"); + if ( gnchar == null ) { + gnchar = addServiceSpecCharacteristic(serviceSpec, "SSPEC_GRAPH_NOTATION", "SSPEC_GRAPH_NOTATION", new Any( charvalue , "SSPEC_GRAPH_NOTATION" ), EValueType.LONGTEXT); + } else { + gnchar.getServiceSpecCharacteristicValue().stream().findFirst().get().setValue( new Any( charvalue , "SSPEC_GRAPH_NOTATION" ) ); + } + + + return serviceSpec; + } + + /** + * @param sourceServiceSpecid + * @param targetServiceSpec + * @return the targetServiceSpec with the copied characteristics + */ + private ServiceSpecification copyCharacteristicsOfServiceId(String sourceServiceSpecid, ServiceSpecification targetServiceSpec) { + + ServiceSpecification sourceSpec = this.findByUuid(sourceServiceSpecid); + if ( sourceSpec != null ) { + for (ServiceSpecCharacteristic ssc : sourceSpec.getServiceSpecCharacteristic()) { + ServiceSpecCharacteristic cnew = new ServiceSpecCharacteristic(ssc); + cnew.setName( sourceSpec.getName() +"::"+ cnew.getName() ); //:: is used as delimiter + + if ( targetServiceSpec.findSpecCharacteristicByName( cnew.getName() ) == null ) { + targetServiceSpec.getServiceSpecCharacteristic().add( cnew ); + } + + } + } + + return targetServiceSpec; + } + + private ServiceSpecification copyCharacteristicsOfResourceSpecId(String sourceResourceSpecid, ServiceSpecification targetServiceSpec) { + + ResourceSpecification rSpec = resourceSpecRepoService.findByUuid( sourceResourceSpecid ); + + if ( rSpec != null ) { + for (ResourceSpecificationCharacteristic sourceChar : rSpec.getResourceSpecCharacteristic()) { + ServiceSpecCharacteristic serviceSpecCharacteristicItem = copyResourceCharacteristic( sourceChar ); + //serviceSpecCharacteristicItem.setName( rSpec.getName() + "::" +sourceChar.getName() ); + serviceSpecCharacteristicItem.setName( sourceChar.getName() ); + + if ( targetServiceSpec.findSpecCharacteristicByName( serviceSpecCharacteristicItem.getName() ) == null ) { + targetServiceSpec.getServiceSpecCharacteristic().add( serviceSpecCharacteristicItem ); + } + } + } + + return targetServiceSpec; + } + + public ServiceSpecification cloneServiceSpecification(String uuid) { + ServiceSpecification source = this.findByUuid(uuid); + + + + ServiceSpecification dest = new ServiceSpecification(source); + + dest.setName("Copy of " + dest.getName()); + dest.setLastUpdate(OffsetDateTime.now(ZoneOffset.UTC)); + dest.setLifecycleStatusEnum(ELifecycle.IN_STUDY); +// +// dest = this.serviceSpecificationRepo.save(dest); // save to get uuids +// dest.fixSpecCharRelationhsipIDs(); // fix charRels. this is specific to +// // our solution on cloning +// dest = this.serviceSpecificationRepo.save(dest); // and resave + + return addServiceSpecification( dest ); + } + + public Attachment addAttachmentToService(String id, + //@Valid Attachment attachment, + @Valid MultipartFile afile, + String urlpath) { + Optional s = this.serviceSpecificationRepo.findByUuid(id); + if (s.get() == null) { + return null; + } + + ServiceSpecification spec = s.get(); + Attachment att = new Attachment(); + att = this.attachmentRepoService.addAttachment(att); + att.setMimeType(afile.getContentType()); + + + String tempDir = METADATADIR + spec.getId() + "/attachments/" + att.getId() + File.separator; + + try { + Files.createDirectories(Paths.get(tempDir)); + String aFileNamePosted = afile.getOriginalFilename();// AttachmentUtil.getFileName(image.getHeaders()); + logger.info("aFileNamePosted = " + aFileNamePosted); + // If there is an icon name + if (!aFileNamePosted.equals("")) { + // Save the icon File + String targetfile = AttachmentUtil.saveFile(afile, tempDir); + logger.info("afile saved to = " + targetfile); + att.setContent(targetfile); + att.setName(aFileNamePosted); + // Save the file destination + urlpath = urlpath.replace("tmf-api/", ""); + att.setUrl( urlpath + "/" + att.getId() + "/" + + aFileNamePosted); + att = this.attachmentRepoService.updateAttachment( att ); + } + } catch (IOException e) { + e.printStackTrace(); + return null; + } + + AttachmentRef attref = new AttachmentRef(); + attref.setId(att.getId()); + attref.setDescription(att.getDescription()); + attref.setUrl(att.getUrl()); + attref.setName(att.getName()); + + spec.addAttachmentItem(attref); + this.serviceSpecificationRepo.save(spec); + + + return att; + } + + + public Attachment getAttachment(String attid) { + + return this.attachmentRepoService.findByUuid( attid ); + + } + + public Attachment getAttachmentLogo(String specid, String attid) { + + ServiceSpecification spec = this.findByUuid( specid ); + for (AttachmentRef att : spec.getAttachment()) { + if ( att.getName().contains("logo")) { + return this.attachmentRepoService.findByUuid( att.getId() ); + } + } + + return null; + + } + + + public ServiceSpecification findByNameAndVersion(String aname, String aversion) { + + List optionalCat = this.serviceSpecificationRepo.findByNameAndVersion(aname, + aversion); + if ( ( optionalCat !=null) && ( optionalCat.size()>0) ) { + return optionalCat.get(0); + } else { + return null; + } + } + + // @Transactional(propagation=Propagation.REQUIRED , readOnly=true, + // noRollbackFor=Exception.class) + public ServiceSpecification addServiceSpecification(ServiceSpecification c) { + + @Valid + ServiceSpecificationCreate serviceServiceSpecificationCr = new ServiceSpecificationCreate(); + + serviceServiceSpecificationCr.setName(c.getName()); + serviceServiceSpecificationCr.setDescription(c.getDescription()); + //serviceServiceSpecificationCr.setAttachment(new ArrayList<>(c.getAttachment())); + serviceServiceSpecificationCr.setIsBundle(c.isIsBundle()); + serviceServiceSpecificationCr.setRelatedParty(new ArrayList<>(c.getRelatedParty())); + serviceServiceSpecificationCr.setResourceSpecification(new ArrayList<>(c.getResourceSpecification())); + serviceServiceSpecificationCr.setServiceLevelSpecification(new ArrayList<>(c.getServiceLevelSpecification())); + serviceServiceSpecificationCr.setServiceSpecCharacteristic(new ArrayList<>(c.getServiceSpecCharacteristic())); + serviceServiceSpecificationCr.setServiceSpecRelationship(new ArrayList<>(c.getServiceSpecRelationship())); + serviceServiceSpecificationCr.setVersion(c.getVersion()); + serviceServiceSpecificationCr.setValidFor(new TimePeriod()); + + if (c.getType() != null) { + serviceServiceSpecificationCr.setType( c.getType() ); + } + + return this.addServiceSpecification(serviceServiceSpecificationCr); + + } + + public ServiceSpecification updateServiceSpecification(ServiceSpecification c) { + + @Valid + ServiceSpecificationUpdate serviceServiceSpecificationCr = new ServiceSpecificationUpdate(); + + serviceServiceSpecificationCr.setName(c.getName()); + serviceServiceSpecificationCr.setDescription(c.getDescription()); + serviceServiceSpecificationCr.setAttachment(new ArrayList<>(c.getAttachment())); + serviceServiceSpecificationCr.setIsBundle(c.isIsBundle()); + serviceServiceSpecificationCr.setServiceSpecRelationship(new ArrayList<>(c.getServiceSpecRelationship())); + serviceServiceSpecificationCr.setRelatedParty(new ArrayList<>(c.getRelatedParty())); + serviceServiceSpecificationCr.setResourceSpecification(new ArrayList<>(c.getResourceSpecification())); + serviceServiceSpecificationCr.setServiceLevelSpecification(new ArrayList<>(c.getServiceLevelSpecification())); + serviceServiceSpecificationCr.setServiceSpecCharacteristic(new ArrayList<>(c.getServiceSpecCharacteristic())); + serviceServiceSpecificationCr.setVersion(c.getVersion()); + + if (c.getType() != null) { + serviceServiceSpecificationCr.setType( c.getType() ); + } + + return this.updateServiceSpecification(c.getId(), serviceServiceSpecificationCr); + +// if (spec.getResourceSpecification().size() > 0) { +// spec.setType("ResourceFacingServiceSpecification"); +// } else { +// spec.setType("CustomerFacingServiceSpecification"); +// } +// return this.serviceSpecificationRepo.save( spec ); +// + } + + public ServiceSpecification cloneGSTServiceSpecification() { + return this.cloneGSTServiceSpecification(null); + } + + public ServiceSpecification cloneGSTServiceSpecification(String specName) { + + ServiceSpecification serviceSpecificationObj = readFromLocalResource( "gst.json" ); + serviceSpecificationObj.setName(specName); + serviceSpecificationObj = this.addServiceSpecification(serviceSpecificationObj); + return serviceSpecificationObj; + } + + public ServiceSpecification cloneVINNIServiceSpecification(Boolean addServiceTopology, + Boolean addServiceRequirements, Boolean addServiceExposureLevel1, Boolean addServiceExposureLevel2, + Boolean addServiceExposureLevel3, Boolean addServiceExposureLevel4, Boolean addServiceMonitoring, + Boolean addServiceTesting, Boolean addServiceVNF, Boolean addServiceNSD) { + + return this.cloneVINNIServiceSpecification(null, addServiceTopology, addServiceRequirements, + addServiceExposureLevel1, addServiceExposureLevel2, addServiceExposureLevel3, addServiceExposureLevel4, + addServiceMonitoring, addServiceTesting, addServiceVNF, addServiceNSD); + } + + public ServiceSpecification cloneVINNIServiceSpecification(String specName, Boolean addServiceTopology, + Boolean addServiceRequirements, Boolean addServiceExposureLevel1, Boolean addServiceExposureLevel2, + Boolean addServiceExposureLevel3, Boolean addServiceExposureLevel4, Boolean addServiceMonitoring, + Boolean addServiceTesting, Boolean addServiceVNF, Boolean addServiceNSD) { + + /** + * Create the VINNI-SB as Bundle from file + */ + + + ServiceSpecification serviceSpecVinniSB = readFromLocalResource("vinnisb/vinnisb.json"); + if ( specName!= null ){ + serviceSpecVinniSB.setName(specName); + } + logger.info( "specRepoService size = " + this.findAll().size() ); + serviceSpecVinniSB = this.addServiceSpecification(serviceSpecVinniSB); + logger.info( "specRepoService size = " + this.findAll().size() ); + + for (ServiceSpecification ss : this.findAll()) { + logger.info( "ss id = " + ss.getId() ); + } + logger.info( "serviceSpecVinniSB.getUuid() = " + serviceSpecVinniSB.getUuid() ); + + serviceSpecVinniSB = this.updateServiceSpecification(serviceSpecVinniSB); + serviceSpecVinniSB = this.findByUuidEager( serviceSpecVinniSB.getUuid()); + + /** + * Create RFS + * 1: Create Resource Spec NS Topology + * + */ + if ( addServiceTopology ){ + ResourceSpecification resourceNSTopology = new LogicalResourceSpecification(); + resourceNSTopology.setName( specName + "-" + "NS Topology"); + resourceNSTopology.setVersion( serviceSpecVinniSB.getVersion() ); + ResourceSpecificationCharacteristic resourceSpecCharacteristicItem = new ResourceSpecificationCharacteristic(); + resourceSpecCharacteristicItem.setName("Network Slice name"); + resourceSpecCharacteristicItem.setDescription("Network Slice Name on target NFVO"); + resourceSpecCharacteristicItem.setValueType( EValueType.TEXT.getValue() ); + ResourceSpecificationCharacteristicValue resourceSpecCharacteristicValueItem = new ResourceSpecificationCharacteristicValue(); + resourceSpecCharacteristicValueItem.setValue( new Any("SLICENAME", "The Network slice name")); + resourceSpecCharacteristicItem.addResourceSpecCharacteristicValueItem(resourceSpecCharacteristicValueItem); + resourceNSTopology.addResourceSpecCharacteristicItem(resourceSpecCharacteristicItem); + + resourceNSTopology = resourceSpecRepoService.addResourceSpec( resourceNSTopology ); + /** + * 2: Create Service Topology related to resourceSpec + */ + ServiceSpecification serviceTopology = new ServiceSpecification(); + serviceTopology.setName( specName + "-" +"Service Topology"); + serviceTopology.setDescription( "Service Topology related to a Resource Specification"); + ResourceSpecificationRef resourceSpecificationItemRef = new ResourceSpecificationRef(); + resourceSpecificationItemRef.setId( resourceNSTopology.getId() ); + resourceSpecificationItemRef.setName( resourceNSTopology.getName() ); + resourceSpecificationItemRef.setVersion(resourceNSTopology.getVersion() ); + serviceTopology.addResourceSpecificationItem(resourceSpecificationItemRef); + serviceTopology = this.addServiceSpecification( serviceTopology ); + /** + * ad to vinni sb + */ + ServiceSpecRelationship serviceSpecRelationshipItem =new ServiceSpecRelationship(); + serviceSpecRelationshipItem.setId( serviceTopology.getId()); + serviceSpecRelationshipItem.setName( serviceTopology.getName() ); + serviceSpecVinniSB.addServiceSpecRelationshipItem( serviceSpecRelationshipItem ); + this.copyCharacteristicsOfServiceId( serviceSpecRelationshipItem.getId() , serviceSpecVinniSB); + serviceSpecVinniSB = this.updateServiceSpecification(serviceSpecVinniSB); + } + + + + /** + * Create Service Requirements + */ + if ( addServiceRequirements ){ + ServiceSpecification serviceReq = readFromLocalResource("vinnisb/vinnisb-req.json"); + serviceReq.setName( specName + "-" +serviceReq.getName() ); + serviceReq = this.addServiceSpecification(serviceReq); + ServiceSpecRelationship relServiceReq =new ServiceSpecRelationship(); + relServiceReq.setId( serviceReq.getId()); + relServiceReq.setName( serviceReq.getName() ); + serviceSpecVinniSB.addServiceSpecRelationshipItem( relServiceReq ); + this.copyCharacteristicsOfServiceId( relServiceReq.getId() , serviceSpecVinniSB); + serviceSpecVinniSB = this.updateServiceSpecification(serviceSpecVinniSB); + } + + + /** + * Create Service Exposure Level 1 + */ + if ( addServiceExposureLevel1 ){ + ServiceSpecification serviceExpLevel = readFromLocalResource("vinnisb/vinnisb-exposure-L1.json"); + serviceExpLevel.setName( specName + "-" +serviceExpLevel.getName() ); + serviceExpLevel = this.addServiceSpecification( serviceExpLevel ); + ServiceSpecRelationship relServiceExp =new ServiceSpecRelationship(); + relServiceExp.setId( serviceExpLevel.getId()); + relServiceExp.setName( serviceExpLevel.getName() ); + serviceSpecVinniSB.addServiceSpecRelationshipItem( relServiceExp ); + this.copyCharacteristicsOfServiceId( relServiceExp.getId() , serviceSpecVinniSB); + serviceSpecVinniSB = this.updateServiceSpecification(serviceSpecVinniSB); + } + + /** + * Create Service Exposure Level 2 + */ + if ( addServiceExposureLevel2 ){ + ServiceSpecification serviceExpLevel = readFromLocalResource("vinnisb/vinnisb-exposure-L2.json"); + serviceExpLevel.setName( specName + "-" +serviceExpLevel.getName() ); + serviceExpLevel = this.addServiceSpecification( serviceExpLevel ); + ServiceSpecRelationship relServiceExp =new ServiceSpecRelationship(); + relServiceExp.setId( serviceExpLevel.getId()); + relServiceExp.setName( serviceExpLevel.getName() ); + serviceSpecVinniSB.addServiceSpecRelationshipItem( relServiceExp ); + this.copyCharacteristicsOfServiceId( relServiceExp.getId() , serviceSpecVinniSB); + serviceSpecVinniSB = this.updateServiceSpecification(serviceSpecVinniSB); + } + + /** + * Create Service Exposure Level 3 + */ + if ( addServiceExposureLevel3 ){ + ServiceSpecification serviceExpLevel = readFromLocalResource("vinnisb/vinnisb-exposure-L3.json"); + serviceExpLevel.setName( specName + "-" +serviceExpLevel.getName() ); + serviceExpLevel = this.addServiceSpecification( serviceExpLevel ); + ServiceSpecRelationship relServiceExp =new ServiceSpecRelationship(); + relServiceExp.setId( serviceExpLevel.getId()); + relServiceExp.setName( serviceExpLevel.getName() ); + serviceSpecVinniSB.addServiceSpecRelationshipItem( relServiceExp ); + this.copyCharacteristicsOfServiceId( relServiceExp.getId() , serviceSpecVinniSB); + serviceSpecVinniSB = this.updateServiceSpecification(serviceSpecVinniSB); + } + + /** + * Create Service Exposure Level 4 + */ + if ( addServiceExposureLevel4 ){ + ServiceSpecification serviceExpLevel = readFromLocalResource("vinnisb/vinnisb-exposure-L4.json"); + serviceExpLevel.setName( specName + "-" +serviceExpLevel.getName() ); + serviceExpLevel = this.addServiceSpecification( serviceExpLevel ); + ServiceSpecRelationship relServiceExp =new ServiceSpecRelationship(); + relServiceExp.setId( serviceExpLevel.getId()); + relServiceExp.setName( serviceExpLevel.getName() ); + serviceSpecVinniSB.addServiceSpecRelationshipItem( relServiceExp ); + this.copyCharacteristicsOfServiceId( relServiceExp.getId() , serviceSpecVinniSB); + serviceSpecVinniSB = this.updateServiceSpecification(serviceSpecVinniSB); + } + + /** + * Create Service Monitoring + */ + if ( addServiceMonitoring ){ + ServiceSpecification serviceMon = readFromLocalResource("vinnisb/vinnisb-monitoring.json"); + serviceMon.setName( specName + "-" + serviceMon.getName() ); + serviceMon = this.addServiceSpecification( serviceMon ); + ServiceSpecRelationship relServiceMon =new ServiceSpecRelationship(); + relServiceMon.setId( serviceMon.getId()); + relServiceMon.setName( serviceMon.getName() ); + serviceSpecVinniSB.addServiceSpecRelationshipItem( relServiceMon ); + this.copyCharacteristicsOfServiceId( relServiceMon.getId() , serviceSpecVinniSB); + serviceSpecVinniSB = this.updateServiceSpecification(serviceSpecVinniSB); + + } + + /** + * Create Service Testing + */ + + if ( addServiceTesting ){ + ServiceSpecification serviceTesting = readFromLocalResource("vinnisb/vinnisb-testing.json"); + serviceTesting.setName( specName + "-" + serviceTesting.getName() ); + serviceTesting = this.addServiceSpecification( serviceTesting ); + ServiceSpecRelationship relServiceTest =new ServiceSpecRelationship(); + relServiceTest.setId( serviceTesting.getId()); + relServiceTest.setName( serviceTesting.getName() ); + serviceSpecVinniSB.addServiceSpecRelationshipItem( relServiceTest ); + this.copyCharacteristicsOfServiceId( relServiceTest.getId() , serviceSpecVinniSB); + serviceSpecVinniSB = this.updateServiceSpecification(serviceSpecVinniSB); + + } + + + /** + * Create 3rd party VNF related to resourceSpec + */ + if ( addServiceVNF ){ + ServiceSpecification thirdVNF = new ServiceSpecification(); + thirdVNF.setName( specName + "-" +"3rd party VNF"); + ResourceSpecificationRef resourceSpecificationthirdVNFRef = new ResourceSpecificationRef(); + resourceSpecificationthirdVNFRef.setId( null ); + resourceSpecificationthirdVNFRef.setName( thirdVNF.getName() ); + thirdVNF.addResourceSpecificationItem(resourceSpecificationthirdVNFRef); + this.copyCharacteristicsOfServiceId( resourceSpecificationthirdVNFRef.getId() , serviceSpecVinniSB); + thirdVNF = this.addServiceSpecification( thirdVNF ); + + + } + /** + * Create 3rd party NSD related to resourceSpec + */ + if ( addServiceNSD ){ + ServiceSpecification thirdNSD = new ServiceSpecification(); + thirdNSD.setName( specName + "-" +"3rd party NSD"); + ResourceSpecificationRef resourceSpecificationthirdNSDRef = new ResourceSpecificationRef(); + resourceSpecificationthirdNSDRef.setId( null ); + resourceSpecificationthirdNSDRef.setName(thirdNSD.getName() ); + thirdNSD.addResourceSpecificationItem(resourceSpecificationthirdNSDRef); + this.copyCharacteristicsOfServiceId( resourceSpecificationthirdNSDRef.getId() , serviceSpecVinniSB); + thirdNSD = this.addServiceSpecification( thirdNSD ); + } + + + return serviceSpecVinniSB; + } + + + private ServiceSpecification readFromLocalResource(String rname) { + ServiceSpecification sc; + try { + sc = objectMapper.readValue(new ClassPathResource( rname ).getInputStream(), ServiceSpecification.class); + + return sc; + } catch (IOException e) { + e.printStackTrace(); + } + + return null; + } + + /** + * The NSD is retrieved from the catalog via ActiveMQ. + * it will create a Resource Spec based on the NSD object + * It will create a Service Spec (RFS) which references the above Resource Spec + * + * @param id the NSD id + * @return a ServiceSpecification + */ + public List specFromNSDID(String id) { + + NetworkServiceDescriptor nsd = serviceSpecificationApiRouteBuilder.retrieveNSD(id); + if (nsd == null) { + logger.error("nsdid return null"); + return null; + } + + logger.error("nsdid returned: " + nsd.getName()); + + List newRfservices = new ArrayList<>(); + + /** + * for each OnBoardDescriptor we need to create a resource, because each resource will be an NSD on a specific OSM + */ + + for (ExperimentOnBoardDescriptor eobd : nsd.getExperimentOnBoardDescriptors()) { + ResourceSpecification resourceNSD = new LogicalResourceSpecification(); + resourceNSD.setName( nsd.getName() ); + resourceNSD.setVersion( nsd.getVersion() ); + resourceNSD.setDescription(nsd.getShortDescription()); + resourceNSD = resourceSpecRepoService.addResourceSpec( resourceNSD ); + /** + * add here characteristics + */ + + /** + * 2: Create Service related to resourceSpec + */ + ServiceSpecification serviceSpec = new ServiceSpecification(); + serviceSpec.setName( nsd.getName()+'@'+eobd.getObMANOprovider().getName() ); + serviceSpec.setVersion( nsd.getVersion() ); + serviceSpec.setDescription( nsd.getShortDescription() ); + addServiceSpecCharacteristic(serviceSpec, "PackagingFormat", "NSD PackagingFormat", new Any(nsd.getPackagingFormat().toString(), "PackagingFormat"), EValueType.TEXT); + addServiceSpecCharacteristic(serviceSpec, "PackageLocation", "NSD PackageLocation", new Any(nsd.getPackageLocation() , "PackageLocation"), EValueType.TEXT); + addServiceSpecCharacteristic(serviceSpec, "Vendor", "NSD Vendor", new Any(nsd.getVendor() , "Vendor"), EValueType.TEXT); + addServiceSpecCharacteristic(serviceSpec, "OSM_NSDCATALOGID", "NSD Onboarded MANO provider Name", new Any( eobd.getDeployId() , ""), EValueType.TEXT); + addServiceSpecCharacteristic(serviceSpec, "NSDID", "NSD id", new Any(nsd.getId()+"" , "id"), EValueType.TEXT); + addServiceSpecCharacteristic(serviceSpec, "MANOproviderName", "NSD Onboarded MANO provider Name", new Any( eobd.getObMANOprovider().getName() , ""), EValueType.TEXT); + addServiceSpecCharacteristic(serviceSpec, "MANOproviderID", "NSD Onboarded MANO provider Name", new Any( eobd.getObMANOprovider().getId() , ""), EValueType.TEXT); + addServiceSpecCharacteristic(serviceSpec, "OnBoardDescriptorID", "NSD Onboarded MANO provider Name", new Any( eobd.getId() , ""), EValueType.TEXT); + addServiceSpecCharacteristic(serviceSpec, "OnBoardDescriptorUUID", "NSD Onboarded MANO provider Name", new Any( eobd.getUuid() , ""), EValueType.TEXT); + addServiceSpecCharacteristic(serviceSpec, "OnBoardingStatus", "NSDtOnBoardingStatus", new Any( eobd.getOnBoardingStatus().name() , ""), EValueType.TEXT); + + addServiceSpecCharacteristic(serviceSpec, "SSHKEY", "SSH public key", new Any("" , ""), EValueType.TEXT); + String osmconfig = "{\"nsdId\":\"" + eobd.getDeployId() + "\"}"; + if ( eobd.getObMANOprovider().getVims() != null && eobd.getObMANOprovider().getVims().get(0) != null ) { + osmconfig = "{\"nsdId\":\"" + eobd.getDeployId() + "\", \"vimAccountId\":\"" + eobd.getObMANOprovider().getVims().get(0).getVIMid() + "\"}"; + } + + + addServiceSpecCharacteristic(serviceSpec, "OSM_CONFIG", "Initial config to OSM", new Any( osmconfig , ""), EValueType.TEXT); + + addServiceSpecCharacteristic(serviceSpec, "DeploymentRequestID", "DeploymentRequestID", new Any( "" , ""), EValueType.TEXT); + + addServiceSpecCharacteristic(serviceSpec, "Status", "Status", new Any( "" , ""), EValueType.TEXT); + addServiceSpecCharacteristic(serviceSpec, "OperationalStatus", "OperationalStatus", new Any( "" , ""), EValueType.TEXT); + addServiceSpecCharacteristic(serviceSpec, "ConstituentVnfrIps", "ConstituentVnfrIps", new Any( "" , ""), EValueType.TEXT); + addServiceSpecCharacteristic(serviceSpec, "ConfigStatus", "ConfigStatus", new Any( "" , ""), EValueType.TEXT); + addServiceSpecCharacteristic(serviceSpec, "APPLY_CONFIG", "APPLY_CONFIG", new Any( "" , ""), EValueType.TEXT); + addServiceSpecCharacteristic(serviceSpec, "InstanceId", "InstanceId", new Any( "" , ""), EValueType.TEXT); + addServiceSpecCharacteristic(serviceSpec, "NSR", "NSR", new Any( "" , ""), EValueType.TEXT); + addServiceSpecCharacteristic(serviceSpec, "NSLCM", "NSLCM", new Any( "" , ""), EValueType.TEXT); + + + + if ( nsd.getConstituentVxF() != null ) { + for (ConstituentVxF cv : nsd.getConstituentVxF()) { + addServiceSpecCharacteristic(serviceSpec, "MemberVNFIndex_"+cv.getMembervnfIndex(), "Member VNF Index", new Any( cv.getMembervnfIndex() +"" , cv.getVnfdidRef()), EValueType.TEXT); + addServiceSpecCharacteristic(serviceSpec, "VNFINDEXREF_INFO_" +cv.getMembervnfIndex() , "Member VNF Index info", new Any( "" , ""), EValueType.TEXT); + } + } else { + + logger.error("nsdid getConstituentVxF null returned: " + nsd.toString() ); + } + + + ResourceSpecificationRef resourceSpecificationItemRef = new ResourceSpecificationRef(); + resourceSpecificationItemRef.setId( resourceNSD.getId() ); + resourceSpecificationItemRef.setName( resourceNSD.getName() ); + resourceSpecificationItemRef.setVersion(resourceNSD.getVersion() ); + + serviceSpec.addResourceSpecificationItem(resourceSpecificationItemRef); + serviceSpec = this.addServiceSpecification( serviceSpec ); + + newRfservices.add(serviceSpec); + + } + + + + return newRfservices; + } + + /** + * @param serviceSpec + * @param name + * @return + */ + private ServiceSpecCharacteristic addServiceSpecCharacteristic(ServiceSpecification serviceSpec, String aName, String description, Any any, EValueType eValueType) { + ServiceSpecCharacteristic serviceSpecCharacteristicItem = new ServiceSpecCharacteristic(); + serviceSpecCharacteristicItem.setName( aName ); + serviceSpecCharacteristicItem.setDescription(description); + serviceSpecCharacteristicItem.valueType( eValueType.getValue() ); + serviceSpecCharacteristicItem.configurable(false); + serviceSpecCharacteristicItem.setMinCardinality(1); + serviceSpecCharacteristicItem.setMaxCardinality(1); + ServiceSpecCharacteristicValue serviceSpecCharacteristicValueItem = new ServiceSpecCharacteristicValue(); + serviceSpecCharacteristicValueItem.setValue( new Any( any.getValue() , any.getAlias())); + serviceSpecCharacteristicValueItem.isDefault( true ); + serviceSpecCharacteristicValueItem.setUnitOfMeasure("N/A"); + serviceSpecCharacteristicItem.addServiceSpecCharacteristicValueItem(serviceSpecCharacteristicValueItem ); + serviceSpec.addServiceSpecCharacteristicItem(serviceSpecCharacteristicItem ); + return serviceSpecCharacteristicItem; + } + + + /** + * @param servicespecid of ID of external service spec + * @param orgid + * @param spec + * @return + */ + public ServiceSpecification updateExternalServiceSpec(String servicespecid, + String orgid, + @Valid ServiceSpecification spec) { + Optional resultq = this.serviceSpecificationRepo.findExternalSpecByExternalId( servicespecid ); + ServiceSpecification specToUpdate = resultq.orElse(null); + + /** + * we need to do a massage here before properly importing it + */ + + spec.getRelatedParty().clear();//clear all related parties if any + spec.getAttachment().clear(); + spec.getResourceSpecification().clear(); + spec.getServiceLevelSpecification().clear(); + spec.getServiceSpecRelationship().clear(); + for (ServiceSpecCharacteristic schar : spec.getServiceSpecCharacteristic()) { + schar.setUuid( null );//in case it exists + } + + + + if ( specToUpdate == null ) { + RelatedParty relatedPartyItem = new RelatedParty(); + Organization o =organizationRepoService.findById( orgid ); + relatedPartyItem.setId( o.getId() ); + relatedPartyItem.name( o.getName() ); + relatedPartyItem.setRole(UserPartRoleType.ORGANIZATION.getValue()); + /** + * Note: the following Extended Info will be used to identify the Service Spec + * in remote catalog + */ + relatedPartyItem.setExtendedInfo( servicespecid ); + spec.addRelatedPartyItem(relatedPartyItem ); + return this.addServiceSpecification( spec ); + } else { + spec.setUuid( specToUpdate.getId() ); + spec.setRelatedParty( specToUpdate.getRelatedParty() );//remove it so not to update the related parties + return this.updateServiceSpecification( spec ); + } + + + } + + public ServiceSpecification specFromTestSpec(String id) { + ServiceTestSpecification testSpec = serviceTestSpecificationRepoService.findByUuid(id); + if (testSpec == null) { + logger.error("specFromTestSpec return null"); + return null; + } + + + /** + * 1: Create Service Spec related to ServiceTestSpecification + */ + ServiceSpecification serviceSpec = new ServiceSpecification(); + serviceSpec.setName( testSpec.getName() ); + serviceSpec.setVersion( testSpec.getVersion() ); + serviceSpec.setDescription( testSpec.getDescription() ); + + addServiceSpecCharacteristic(serviceSpec, "testSpecRef", "testSpecRef", new Any( testSpec.getId() , testSpec.getId() ), EValueType.TEXT); + + for (CharacteristicSpecification sourceChar : testSpec.getSpecCharacteristic()) { + addServiceSpecCharacteristic(serviceSpec, + sourceChar.getName(), + sourceChar.getDescription() , new Any( "" , ""), EValueType.TEXT); + + } + + + serviceSpec = this.addServiceSpecification( serviceSpec ); + + ServiceSpecificationRef serviceSpecRef = new ServiceSpecificationRef(); + serviceSpecRef.setId(serviceSpec.getId()); + @Valid + ServiceTestSpecificationUpdate stUpd = new ServiceTestSpecificationUpdate(); + stUpd.addRelatedServiceSpecificationItem( serviceSpecRef ); + + serviceTestSpecificationRepoService.updateServiceTestSpecification(id, stUpd ); + + return serviceSpec; + } + + private String createGraphNotation( ServiceSpecification serviceSpec ) { + String result = getSpecGraphNotation(serviceSpec, 0 ); + result = "blockdiag {" + + "default_textcolor = white;\r\n" + + "default_fontsize = 12;\r\n" + + "\r\n" + result + "}"; + return result; + } + + private String getSpecGraphNotation( ServiceSpecification serviceSpec, int depth ) { + String result = ""; + if (depth>10) { + return result; + } + for (ServiceSpecRelationship specRel : serviceSpec.getServiceSpecRelationship()) { + result += "\""+ serviceSpec.getId() + "\""+ " -> " + "\""+ specRel.getId() +"\" "+";\r\n"; + ServiceSpecification aSpec= this.findByUuid( specRel.getId() ); + if ( aSpec!= null) { + result += getSpecGraphNotation( aSpec, depth ++ ); + } + } + for (ResourceSpecificationRef resRel : serviceSpec.getResourceSpecification() ) { + + result += "\""+ serviceSpec.getId() + "\""+ " -> " + "\""+ resRel.getId() + "\""+ ";\r\n"; + result += "\""+ resRel.getId() + "\""+ " [ label = \""+ resRel.getName() +"\", shape = roundedbox, color = \"#e28743\"]; "; + + } + result += "\""+ serviceSpec.getId() + "\""+ " [ label = \""+ serviceSpec.getName() +"\", color = \"#2596be\"]; "; + return result; + } + + public String getImageSpecificationRelationshipGraph(String id) { + + //it is good to update the graph + //ServiceSpecification aSpec= this.findByUuid( id ); + ServiceSpecificationUpdate serviceServiceSpecificationUpd = new ServiceSpecificationUpdate(); + ServiceSpecification aSpec = this.updateServiceSpecification( id, serviceServiceSpecificationUpd ); + + String graph = null; + if ( aSpec != null ) { + ServiceSpecCharacteristic gnchar = aSpec.findSpecCharacteristicByName("SSPEC_GRAPH_NOTATION"); + if ( gnchar != null ) { + graph = gnchar.getServiceSpecCharacteristicValue().stream().findFirst().get().getValue().getValue(); + + } + } + + return KrokiClient.encodedGraph(graph); + + + } + + + + public ServiceSpecification specFromResourceSpec(String id) { + ResourceSpecification rSpec = resourceSpecRepoService.findByUuid(id); + if (rSpec == null) { + logger.error("specFromResourceSpec return null"); + return null; + } + + + /** + * 1: Create Service Spec related to ResourceSpecification + */ + ServiceSpecification serviceSpec = new ServiceSpecification(); + serviceSpec.setName( rSpec.getName() ); + serviceSpec.setVersion( rSpec.getVersion() ); + serviceSpec.setDescription( rSpec.getDescription() ); + serviceSpec.setType("ResourceFacingServiceSpecification"); + + + for (ResourceSpecificationCharacteristic sourceChar : rSpec.getResourceSpecCharacteristic()) { + ServiceSpecCharacteristic serviceSpecCharacteristicItem = copyResourceCharacteristic( sourceChar ); + serviceSpecCharacteristicItem.setName( rSpec.getName() + "::" +sourceChar.getName() ); + serviceSpec.addServiceSpecCharacteristicItem(serviceSpecCharacteristicItem ); + } + + + ResourceSpecificationRef resourceSpecRef = new ResourceSpecificationRef(); + resourceSpecRef.setId( rSpec.getId()); + + serviceSpec = this.addServiceSpecification( serviceSpec ); + + + + return serviceSpec; + } + + private ServiceSpecCharacteristic copyResourceCharacteristic( ResourceSpecificationCharacteristic sourceChar ) { + + ServiceSpecCharacteristic serviceSpecCharacteristicItem = new ServiceSpecCharacteristic(); + serviceSpecCharacteristicItem.setDescription( sourceChar.getDescription()); + serviceSpecCharacteristicItem.valueType( sourceChar.getValueType() ); + serviceSpecCharacteristicItem.configurable(sourceChar.isConfigurable()); + serviceSpecCharacteristicItem.setMinCardinality( sourceChar.getMinCardinality() ); + serviceSpecCharacteristicItem.setMaxCardinality( sourceChar.getMaxCardinality() ); + serviceSpecCharacteristicItem.setValidFor( sourceChar.getValidFor() ); + for (ResourceSpecificationCharacteristicValue cv : sourceChar.getResourceSpecCharacteristicValue()) { + ServiceSpecCharacteristicValue serviceSpecCharacteristicValueItem = new ServiceSpecCharacteristicValue(); + serviceSpecCharacteristicValueItem.setValue( new Any( cv.getValue().getValue(), cv.getValue().getAlias())); + serviceSpecCharacteristicValueItem.isDefault( cv.isIsDefault() ); + serviceSpecCharacteristicValueItem.setUnitOfMeasure( cv.getUnitOfMeasure() ); + serviceSpecCharacteristicItem.addServiceSpecCharacteristicValueItem(serviceSpecCharacteristicValueItem ); + } + return serviceSpecCharacteristicItem; + } + + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/api/ApiException.java b/src/main/java/org/etsi/osl/tmf/sim638/api/ApiException.java new file mode 100644 index 0000000..54f0c22 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/api/ApiException.java @@ -0,0 +1,30 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/api/ApiOriginFilter.java b/src/main/java/org/etsi/osl/tmf/sim638/api/ApiOriginFilter.java new file mode 100644 index 0000000..ca7a41f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/api/ApiOriginFilter.java @@ -0,0 +1,51 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.api; + +import java.io.IOException; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class ApiOriginFilter implements jakarta.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/api/ApiResponseMessage.java b/src/main/java/org/etsi/osl/tmf/sim638/api/ApiResponseMessage.java new file mode 100644 index 0000000..6229976 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/api/ApiResponseMessage.java @@ -0,0 +1,89 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.api; + +import jakarta.xml.bind.annotation.XmlTransient; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +@jakarta.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/sim638/api/HubApi.java new file mode 100644 index 0000000..744d47f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/api/HubApi.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.sim638.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.sim638.model.EventSubscription; +import org.etsi.osl.tmf.sim638.model.EventSubscriptionInput; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +@Tag(name = "hub", description = "the hub API") +public interface HubApi { + + Logger log = LoggerFactory.getLogger(HubApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Register a listener", operationId = "registerListener", description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Subscribed" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Unregister a listener", operationId = "unregisterListener", description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method not allowed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/sim638/api/HubApiController.java new file mode 100644 index 0000000..cd7c805 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/api/HubApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +@Controller("HubApiController638") +@RequestMapping("/serviceInventory/v4/") +public class HubApiController implements HubApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public HubApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/api/ListenerApi.java b/src/main/java/org/etsi/osl/tmf/sim638/api/ListenerApi.java new file mode 100644 index 0000000..9f22b49 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/api/ListenerApi.java @@ -0,0 +1,224 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.sim638.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.sim638.model.EventSubscription; +import org.etsi.osl.tmf.sim638.model.ServiceAttributeValueChangeNotification; +import org.etsi.osl.tmf.sim638.model.ServiceBatchNotification; +import org.etsi.osl.tmf.sim638.model.ServiceCreateNotification; +import org.etsi.osl.tmf.sim638.model.ServiceDeleteNotification; +import org.etsi.osl.tmf.sim638.model.ServiceStateChangeNotification; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +@Tag(name = "listener", description = "the listener API") +public interface ListenerApi { + + Logger log = LoggerFactory.getLogger(ListenerApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Client listener for entity ServiceAttributeValueChangeNotification", operationId = "listenToServiceAttributeValueChangeNotification", description = "Example of a client listener for receiving the notification ServiceAttributeValueChangeNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceAttributeValueChangeNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceAttributeValueChangeNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceAttributeValueChangeNotification data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ServiceBatchNotification", operationId = "listenToServiceBatchNotification", description = "Example of a client listener for receiving the notification ServiceBatchNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceBatchNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceBatchNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceBatchNotification data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ServiceCreateNotification", operationId = "listenToServiceCreateNotification", description = "Example of a client listener for receiving the notification ServiceCreateNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceCreateNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceCreateNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceCreateNotification data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ServiceDeleteNotification", operationId = "listenToServiceDeleteNotification", description = "Example of a client listener for receiving the notification ServiceDeleteNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceDeleteNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceDeleteNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceDeleteNotification data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ServiceStateChangeNotification", operationId = "listenToServiceStateChangeNotification", description = "Example of a client listener for receiving the notification ServiceStateChangeNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceStateChangeNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceStateChangeNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceStateChangeNotification data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/api/ListenerApiController.java b/src/main/java/org/etsi/osl/tmf/sim638/api/ListenerApiController.java new file mode 100644 index 0000000..2647db9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/api/ListenerApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +@Controller("ListenerApiController638") +@RequestMapping("/serviceInventory/v4/") +public class ListenerApiController implements ListenerApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ListenerApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/api/NotFoundException.java b/src/main/java/org/etsi/osl/tmf/sim638/api/NotFoundException.java new file mode 100644 index 0000000..f33716c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/api/NotFoundException.java @@ -0,0 +1,30 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class NotFoundException extends ApiException { + private int code; + public NotFoundException (int code, String msg) { + super(code, msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/api/RFC3339DateFormat.java b/src/main/java/org/etsi/osl/tmf/sim638/api/RFC3339DateFormat.java new file mode 100644 index 0000000..7059d81 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/api/RFC3339DateFormat.java @@ -0,0 +1,41 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.api; + +import java.text.FieldPosition; +import java.util.Date; + +import com.fasterxml.jackson.databind.util.ISO8601DateFormat; +import com.fasterxml.jackson.databind.util.ISO8601Utils; + + +public class RFC3339DateFormat extends ISO8601DateFormat { + + private static final long serialVersionUID = 1L; + + // Same as ISO8601DateFormat but serializing milliseconds. + @Override + public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) { + String value = ISO8601Utils.format(date, true); + toAppendTo.append(value); + return toAppendTo; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApi.java b/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApi.java new file mode 100644 index 0000000..31c7c81 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApi.java @@ -0,0 +1,173 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.sim638.api; + +import java.security.Principal; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.sim638.model.Service; +import org.etsi.osl.tmf.sim638.model.ServiceCreate; +import org.etsi.osl.tmf.sim638.model.ServiceUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +@Tag(name = "service", description = "the service API") +public interface ServiceApi { + + Logger log = LoggerFactory.getLogger(ServiceApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a Service", operationId = "createService", description = "This operation creates a Service entity.", tags={ "service", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/service", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createService( + Principal principal, + @Parameter(description = "The Service to be created" ,required=true ) @Valid @RequestBody ServiceCreate service) { + + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a Service", operationId = "deleteService", description = "This operation deletes a Service entity.", tags={ "service", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/service/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteService(@Parameter(description = "Identifier of the Service",required=true) @PathVariable("id") String id) { + + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find Service objects", operationId = "listService", description = "This operation list or find Service entities" , tags={ "service", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/service", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listService( + Principal principal, + @Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a Service", operationId = "patchService", description = "This operation updates partially a Service entity.", tags={ "service", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/service/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchService( + Principal principal, + @Parameter(description = "Identifier of the Service",required=true) @PathVariable("id") String id,@Parameter(description = "The Service to be updated" ,required=true ) @Valid @RequestBody ServiceUpdate service) { + + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a Service by ID", operationId = "retrieveService", description = "This operation retrieves a Service entity. Attribute selection is enabled for all first level attributes.", tags={ "service", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/service/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveService( + Principal principal, + @Parameter(description = "Identifier of the Service",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiController.java b/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiController.java new file mode 100644 index 0000000..445318a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiController.java @@ -0,0 +1,176 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.api; + +import java.security.Principal; +import java.util.HashMap; +import java.util.List; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.common.model.UserPartRoleType; +import org.etsi.osl.tmf.sim638.model.Service; +import org.etsi.osl.tmf.sim638.model.ServiceCreate; +import org.etsi.osl.tmf.sim638.model.ServiceUpdate; +import org.etsi.osl.tmf.sim638.service.ServiceRepoService; +import org.etsi.osl.tmf.util.AddUserAsOwnerToRelatedParties; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.etsi.osl.model.UserRoleType; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +@Controller("ServiceApiController638") +@RequestMapping("/serviceInventory/v4/") +public class ServiceApiController implements ServiceApi { + + private static final Logger log = LoggerFactory.getLogger(ServiceApiController.class); + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @Autowired + ServiceRepoService serviceRepoService; + + @org.springframework.beans.factory.annotation.Autowired + public ServiceApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity createService(Principal principal, @Valid ServiceCreate service) { + try { + if (SecurityContextHolder.getContext().getAuthentication() != null) { + service.setRelatedParty(AddUserAsOwnerToRelatedParties.addUser(principal.getName(), principal.getName(), + UserPartRoleType.REQUESTER, "", service.getRelatedParty())); + + Service c = serviceRepoService.addService(service); + + return new ResponseEntity(c, HttpStatus.OK); + } else { + + return new ResponseEntity(HttpStatus.FORBIDDEN); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity deleteService(String id) { + return ServiceApi.super.deleteService(id); + } + + @Override + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + public ResponseEntity> listService(Principal principal, @Valid String fields, @Valid Integer offset, + @Valid Integer limit) { + try { + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + + + + if ( authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_ADMIN.getValue() ) ) ) { + return new ResponseEntity>(serviceRepoService.findAll(null, new HashMap<>()), HttpStatus.OK); + //return new ResponseEntity>(serviceOrderRepoService.findAll(null, new HashMap<>()), HttpStatus.OK); + }else { + return new ResponseEntity>(serviceRepoService.findAll( principal.getName(), UserPartRoleType.REQUESTER ), HttpStatus.OK); + //return new ResponseEntity>(serviceOrderRepoService.findAll( principal.getName(), UserPartRoleType.REQUESTER), HttpStatus.OK); + } + + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity patchService(Principal principal, String id, @Valid ServiceUpdate service) { + Service c = serviceRepoService.updateService(id, service, true, null, null); + + return new ResponseEntity(c, HttpStatus.OK); + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity retrieveService(Principal principal, String id, @Valid String fields) { + try { + + return new ResponseEntity(serviceRepoService.findByUuid(id), HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + +// @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) +// @RequestMapping(value = "/service/updateServiceDeploymentDescriptor/{id}", +// produces = { "application/json;charset=utf-8" }, +// method = RequestMethod.GET) +// public ResponseEntity updateServiceDeploymentDescriptor( +// Principal principal, +// @Parameter(description = "Identifier of the Service",required=true) @PathVariable("id") String id,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { +// +// try { +// +// @Valid +// DeploymentDescriptor dd = new DeploymentDescriptor(); +// dd.setId( Long.parseLong(id) ); +// dd.setNs_nslcm_details("NEW NSLCM updated"); +// dd.setNsr("new nsr updated"); +// serviceRepoService.nfvCatalogNSResourceChanged(dd ); +// +// +// var aservices = serviceRepoService.findDeploymentRequestID( id ); +// for (org.etsi.osl.tmf.sim638.model.Service as : aservices) { +// +// Service aService = serviceRepoService.getServiceEager( as.getId() ); +// return new ResponseEntity(aService, HttpStatus.OK); +// } +// +// } catch (Exception e) { +// log.error("Couldn't serialize response for content type application/json", e); +// +// return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); +// } +// return null; +// } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilder.java new file mode 100644 index 0000000..c589795 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilder.java @@ -0,0 +1,211 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.api; + +import java.io.IOException; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.camel.LoggingLevel; +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.model.dataformat.JsonLibrary; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.common.model.Notification; +import org.etsi.osl.tmf.ri639.model.ResourceAttributeValueChangeNotification; +import org.etsi.osl.tmf.ri639.model.ResourceStateChangeNotification; +import org.etsi.osl.tmf.sim638.model.ServiceActionQueueItem; +import org.etsi.osl.tmf.sim638.model.ServiceCreate; +import org.etsi.osl.tmf.sim638.model.ServiceUpdate; +import org.etsi.osl.tmf.sim638.service.ServiceRepoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +import org.etsi.osl.model.DeploymentDescriptor; + +@Configuration +//@RefreshScope +@Component +public class ServiceApiRouteBuilder extends RouteBuilder { + + private static final transient Log logger = LogFactory.getLog(ServiceApiRouteBuilder.class.getName()); + + + @Value("${CATALOG_ADD_SERVICE}") + private String CATALOG_ADD_SERVICE = ""; + + @Value("${CATALOG_UPD_SERVICE}") + private String CATALOG_UPD_SERVICE = ""; + + @Value("${CATALOG_GET_SERVICE_BY_ID}") + private String CATALOG_GET_SERVICE_BY_ID = ""; + + @Value("${CATALOG_GET_SERVICE_BY_ORDERID}") + private String CATALOG_GET_SERVICE_BY_ORDERID = ""; + + + @Value("${CATALOG_SERVICE_QUEUE_ITEMS_GET}") + private String CATALOG_SERVICE_QUEUE_ITEMS_GET = ""; + + @Value("${CATALOG_SERVICE_QUEUE_ITEM_UPD}") + private String CATALOG_SERVICE_QUEUE_ITEM_UPD = ""; + + @Value("${CATALOG_SERVICE_QUEUE_ITEM_DELETE}") + private String CATALOG_SERVICE_QUEUE_ITEM_DELETE = ""; + + @Value("${EVENT_SERVICE_CREATE}") + private String EVENT_SERVICE_CREATE = ""; + + + @Value("${CATALOG_SERVICES_TO_TERMINATE}") + private String CATALOG_SERVICES_TO_TERMINATE = ""; + + @Value("${CATALOG_SERVICES_OF_PARTNERS}") + private String CATALOG_SERVICES_OF_PARTNERS = ""; + + + @Value("${NFV_CATALOG_NS_LCMCHANGED}") + private String NFV_CATALOG_NS_LCMCHANGED = ""; + + + //services care to take this event in case they are related to a specific resource (see CRs) + @Value("${EVENT_RESOURCE_ATTRIBUTE_VALUE_CHANGED}") + private String EVENT_RESOURCE_ATTRIBUTE_VALUE_CHANGED = ""; + + + + //services care to take this event in case they are related to a specific resource (see CRs) + @Value("${EVENT_RESOURCE_STATE_CHANGED}") + private String EVENT_RESOURCE_STATE_CHANGED = ""; + + @Autowired + private ProducerTemplate template; + + @Autowired + ServiceRepoService serviceRepoService; + + @Override + public void configure() throws Exception { + + from( CATALOG_ADD_SERVICE ) + .log(LoggingLevel.INFO, log, CATALOG_ADD_SERVICE + " message received and will be processed for service inventory!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, ServiceCreate.class, true) + .bean( serviceRepoService, "addService(${body})") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + from( CATALOG_GET_SERVICE_BY_ID ) + .log(LoggingLevel.INFO, log, CATALOG_GET_SERVICE_BY_ID + " message received and will be processed for service inventory!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean( serviceRepoService, "getServiceEagerAsString") + .convertBodyTo( String.class ); + + + + from( CATALOG_UPD_SERVICE ) + .log(LoggingLevel.INFO, log, CATALOG_UPD_SERVICE + " message received and will be processed for service inventory!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, ServiceUpdate.class, true) + .bean( serviceRepoService, "updateService(${header.serviceid}, ${body}, ${header.propagateToSO} )") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + + from( CATALOG_SERVICE_QUEUE_ITEMS_GET ) + .log(LoggingLevel.INFO, log, CATALOG_SERVICE_QUEUE_ITEMS_GET + " message received and will be processed for service inventory!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean( serviceRepoService, "findAllServiceActionQueueItems") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + from( CATALOG_SERVICE_QUEUE_ITEM_UPD ) + .log(LoggingLevel.INFO, log, CATALOG_SERVICE_QUEUE_ITEM_UPD + " message received and will be processed for service inventory!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, ServiceActionQueueItem.class, true) + .bean( serviceRepoService, "updateServiceActionQueueItem(${body})") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + from( CATALOG_SERVICE_QUEUE_ITEM_DELETE ) + .log(LoggingLevel.INFO, log, CATALOG_SERVICE_QUEUE_ITEM_DELETE + " message received and will be processed for service inventory!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, ServiceActionQueueItem.class, true) + .bean( serviceRepoService, "deleteServiceActionQueueItemByUuid(${header.itemid})"); + + + + from( CATALOG_SERVICES_TO_TERMINATE ) + .log(LoggingLevel.INFO, log, CATALOG_SERVICES_TO_TERMINATE + " message received and will be processed for service inventory!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean( serviceRepoService, "findAllActiveServicesToTerminate") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + + from( CATALOG_SERVICES_OF_PARTNERS ) + .log(LoggingLevel.INFO, log, CATALOG_SERVICES_OF_PARTNERS + " message received and will be processed for service inventory!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean( serviceRepoService, "findAllActiveAndReservedServicesOfPartners") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + + from( CATALOG_GET_SERVICE_BY_ORDERID ) + .log(LoggingLevel.INFO, log, CATALOG_GET_SERVICE_BY_ORDERID + " message received and will be processed for service inventory!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean( serviceRepoService, "getServicesFromOrderID") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + from( NFV_CATALOG_NS_LCMCHANGED ) + .log(LoggingLevel.INFO, log, NFV_CATALOG_NS_LCMCHANGED + " message received and will be processed for service inventory!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, DeploymentDescriptor.class, true) + .bean( serviceRepoService, "nfvCatalogNSResourceChanged(${body})"); + + + from( EVENT_RESOURCE_STATE_CHANGED ) + .log(LoggingLevel.INFO, log, EVENT_RESOURCE_STATE_CHANGED + " message received and will be processed for service inventory!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, ResourceStateChangeNotification.class, true) + .bean( serviceRepoService, "resourceStateChangedEvent(${body})"); + + from( EVENT_RESOURCE_ATTRIBUTE_VALUE_CHANGED ) + .log(LoggingLevel.INFO, log, EVENT_RESOURCE_ATTRIBUTE_VALUE_CHANGED + " message received and will be processed for service inventory!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, ResourceAttributeValueChangeNotification.class, true) + .bean( serviceRepoService, "resourceAttrChangedEvent(${body})"); + + + } + + + static String toJsonString(Object object) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.writeValueAsString(object); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilderEvents.java b/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilderEvents.java new file mode 100644 index 0000000..fe4e5e7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilderEvents.java @@ -0,0 +1,114 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.api; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.common.model.Notification; +import org.etsi.osl.tmf.sim638.model.ServiceAttributeValueChangeNotification; +import org.etsi.osl.tmf.sim638.model.ServiceCreateNotification; +import org.etsi.osl.tmf.sim638.model.ServiceDeleteNotification; +import org.etsi.osl.tmf.sim638.model.ServiceStateChangeNotification; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +@Configuration +//@RefreshScope +@Component +public class ServiceApiRouteBuilderEvents extends RouteBuilder { + + private static final transient Log logger = LogFactory.getLog(ServiceApiRouteBuilderEvents.class.getName()); + + + + @Value("${EVENT_SERVICE_CREATE}") + private String EVENT_SERVICE_CREATE = ""; + + @Value("${EVENT_SERVICE_STATE_CHANGED}") + private String EVENT_SERVICE_STATE_CHANGED = ""; + + @Value("${EVENT_SERVICE_DELETE}") + private String EVENT_SERVICE_DELETE = ""; + + @Value("${EVENT_SERVICE_ATTRIBUTE_VALUE_CHANGED}") + private String EVENT_SERVICE_ATTRIBUTE_VALUE_CHANGED = ""; + + + + @Autowired + private ProducerTemplate template; + + + @Override + public void configure() throws Exception { + + + + + } + + + /** + * @param n + */ + public void publishEvent(final Notification n, final String objId) { + n.setEventType( n.getClass().getName()); + logger.info("will send Event for type " + n.getEventType()); + try { + String msgtopic=""; + + if ( n instanceof ServiceCreateNotification) { + msgtopic = EVENT_SERVICE_CREATE; + } else if ( n instanceof ServiceStateChangeNotification) { + msgtopic = EVENT_SERVICE_STATE_CHANGED; + } else if ( n instanceof ServiceDeleteNotification) { + msgtopic = EVENT_SERVICE_DELETE; + } else if ( n instanceof ServiceAttributeValueChangeNotification) { + msgtopic = EVENT_SERVICE_ATTRIBUTE_VALUE_CHANGED; + } + Map map = new HashMap<>(); + map.put("eventid", n.getEventId() ); + map.put("objId", objId ); + + template.sendBodyAndHeaders(msgtopic, toJsonString(n), map); + + } catch (Exception e) { + logger.error("Cannot send Event . " + e.getStackTrace() ); + } + } + + static String toJsonString(Object object) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.writeValueAsString(object); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/EServiceStartMode.java b/src/main/java/org/etsi/osl/tmf/sim638/model/EServiceStartMode.java new file mode 100644 index 0000000..aadb8af --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/EServiceStartMode.java @@ -0,0 +1,51 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +public enum EServiceStartMode { + UNKNOWN("UNKNOWN"), + AUTOMATICALLY_MANAGED("AUTOMATICALLY_MANAGED"), + AUTOMATICALLY_BY_DEVICE("AUTOMATICALLY_BY_DEVICE"), + MANUALLY_BY_SERVICE_PROVIDER("MANUALLY_BY_SERVICE_PROVIDER"), + MANUALLY_BY_CUSTOMER("MANUALLY_BY_CUSTOMER"), + ANY("ANY"); + + + private String value; + + EServiceStartMode(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return this.getValue(); + } + + public static EServiceStartMode getEnum(String value) { + for(EServiceStartMode v : values()) + if(v.getValue().equalsIgnoreCase(value)) return v; + throw new IllegalArgumentException(); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/Error.java b/src/main/java/org/etsi/osl/tmf/sim638/model/Error.java new file mode 100644 index 0000000..6c40724 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/Error.java @@ -0,0 +1,278 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx) + */ +@Schema(description = "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class Error { + @JsonProperty("code") + private Integer code = null; + + @JsonProperty("reason") + private String reason = null; + + @JsonProperty("message") + private String message = null; + + @JsonProperty("status") + private Integer status = null; + + @JsonProperty("referenceError") + private String referenceError = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Error code(Integer code) { + this.code = code; + return this; + } + + /** + * Application relevant detail, defined in the API or a common list. + * @return code + **/ + @Schema(description = "Application relevant detail, defined in the API or a common list.") + @NotNull + + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public Error reason(String reason) { + this.reason = reason; + return this; + } + + /** + * Explanation of the reason for the error which can be shown to a client user. + * @return reason + **/ + @Schema(description = "Explanation of the reason for the error which can be shown to a client user.") + @NotNull + + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public Error message(String message) { + this.message = message; + return this; + } + + /** + * More details and corrective actions related to the error which can be shown to a client user. + * @return message + **/ + @Schema(description = "More details and corrective actions related to the error which can be shown to a client user.") + + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Error status(Integer status) { + this.status = status; + return this; + } + + /** + * HTTP Error code extension + * @return status + **/ + @Schema(description = "HTTP Error code extension") + + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Error referenceError(String referenceError) { + this.referenceError = referenceError; + return this; + } + + /** + * URI of documentation describing the error. + * @return referenceError + **/ + @Schema(description = "URI of documentation describing the error.") + + + public String getReferenceError() { + return referenceError; + } + + public void setReferenceError(String referenceError) { + this.referenceError = referenceError; + } + + public Error baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class. + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class.") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public Error schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Error type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name. + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name.") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Error error = (Error) o; + return Objects.equals(this.code, error.code) && + Objects.equals(this.reason, error.reason) && + Objects.equals(this.message, error.message) && + Objects.equals(this.status, error.status) && + Objects.equals(this.referenceError, error.referenceError) && + Objects.equals(this.baseType, error.baseType) && + Objects.equals(this.schemaLocation, error.schemaLocation) && + Objects.equals(this.type, error.type); + } + + @Override + public int hashCode() { + return Objects.hash(code, reason, message, status, referenceError, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Error {\n"); + + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" referenceError: ").append(toIndentedString(referenceError)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/sim638/model/EventSubscription.java new file mode 100644 index 0000000..a1d8014 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/EventSubscription.java @@ -0,0 +1,153 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class EventSubscription { + @JsonProperty("id") + private String id = null; + + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscription id(String id) { + this.id = id; + return this; + } + + /** + * Id of the listener + * @return id + **/ + @Schema(description = "Id of the listener") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EventSubscription callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscription query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscription eventSubscription = (EventSubscription) o; + return Objects.equals(this.id, eventSubscription.id) && + Objects.equals(this.callback, eventSubscription.callback) && + Objects.equals(this.query, eventSubscription.query); + } + + @Override + public int hashCode() { + return Objects.hash(id, callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscription {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/EventSubscriptionInput.java b/src/main/java/org/etsi/osl/tmf/sim638/model/EventSubscriptionInput.java new file mode 100644 index 0000000..ce1bb2f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/EventSubscriptionInput.java @@ -0,0 +1,127 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class EventSubscriptionInput { + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscriptionInput callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscriptionInput query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscriptionInput eventSubscriptionInput = (EventSubscriptionInput) o; + return Objects.equals(this.callback, eventSubscriptionInput.callback) && + Objects.equals(this.query, eventSubscriptionInput.query); + } + + @Override + public int hashCode() { + return Objects.hash(callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscriptionInput {\n"); + + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/Service.java b/src/main/java/org/etsi/osl/tmf/sim638/model/Service.java new file mode 100644 index 0000000..bc6d42c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/Service.java @@ -0,0 +1,784 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.etsi.osl.tmf.common.model.service.Characteristic; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.common.model.service.Place; +import org.etsi.osl.tmf.common.model.service.ResourceRef; +import org.etsi.osl.tmf.common.model.service.ServiceRef; +import org.etsi.osl.tmf.common.model.service.ServiceRelationship; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.etsi.osl.tmf.common.model.service.ServiceStateType; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Lob; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; + +/** + * Service is a base class for defining the Service hierarchy. All Services are + * characterized as either being possibly visible and usable by a Customer or + * not. This gives rise to the two subclasses of Service: CustomerFacingService + * and ResourceFacingService. + */ +@Schema(description = "Service is a base class for defining the Service hierarchy. All Services are characterized as either being possibly visible and usable by a Customer or not. This gives rise to the two subclasses of Service: CustomerFacingService and ResourceFacingService.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +@Entity +public class Service extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("category") + private String category = null; + + @Lob + @Column(name = "LDESCRIPTION", columnDefinition = "LONGTEXT") + @JsonProperty("description") + private String descriptionL = null; + + private OffsetDateTime endDate = null; + + @JsonProperty("hasStarted") + private Boolean hasStarted = null; + + @JsonProperty("isServiceEnabled") + private Boolean isServiceEnabled = null; + + @JsonProperty("isStateful") + private Boolean isStateful = null; + + @JsonProperty("serviceDate") + private String serviceDate = null; + + @JsonProperty("serviceType") + private String serviceType = null; + + private OffsetDateTime startDate = null; + + @JsonProperty("startMode") + private String startMode = null; + + @JsonProperty("note") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set note = new HashSet<>(); + + @JsonProperty("place") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set place = new HashSet<>(); + + @JsonProperty("relatedParty") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set relatedParty = new HashSet<>(); + + @JsonProperty("serviceCharacteristic") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set serviceCharacteristic = new HashSet<>(); + + @JsonProperty("serviceOrder") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set serviceOrder = new HashSet<>(); + + @JsonProperty("serviceRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set serviceRelationship = new HashSet<>(); + + @JsonProperty("serviceSpecification") + @OneToOne(cascade = CascadeType.ALL) + private ServiceSpecificationRef serviceSpecificationRef = null; + + @JsonProperty("state") + private ServiceStateType state = ServiceStateType.FEASIBILITYCHECKED; + + @JsonProperty("supportingResource") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set supportingResource = new HashSet<>(); + + @JsonProperty("supportingService") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set supportingService = new HashSet<>(); + + + + + + public Service() { + super(); + this.baseType = "BaseRootNamedEntity"; + this.type = "CustomerFacingServiceSpecification"; // by default is a CFS... if we attach a resource then it is a RFS + } + + + /** + * Unique identifier of the service + * + * @return id + **/ + @Schema(description = "Unique identifier of the service") + + public String getId() { + id = uuid; + return uuid; + } + + /** + * Is it a customer facing or resource facing service + * + * @return category + **/ + @Schema(description = "Is it a customer facing or resource facing service") + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public Service description(String description) { + this.descriptionL = description; + return this; + } + + /** + * Free-text description of the service + * + * @return description + **/ + @Schema(description = "Free-text description of the service") + + public String getDescription() { + return descriptionL; + } + + public void setDescription(String description) { + this.descriptionL = description; + } + + public Service endDate(OffsetDateTime endDate) { + this.endDate = endDate; + return this; + } + + /** + * Date when the service ends + * + * @return endDate + **/ + @Schema(description = "Date when the service ends") + + @Valid + + public OffsetDateTime getEndDate() { + return endDate; + } + + + @JsonProperty("endDate") + public String getEndDateStr() { + if ( this.endDate != null ) { + return this.endDate.toString(); + } else { + return null; + } + } + + public void setEndDate(OffsetDateTime endDate) { + this.endDate = endDate; + } + + public void setEndDate(String endDate) { + if ( endDate!=null ) { + this.endDate = OffsetDateTime.parse( endDate ); + } + } + + public Service hasStarted(Boolean hasStarted) { + this.hasStarted = hasStarted; + return this; + } + + /** + * If TRUE, this Service has already been started + * + * @return hasStarted + **/ + @Schema(description = "If TRUE, this Service has already been started") + + public Boolean isHasStarted() { + return hasStarted; + } + + public void setHasStarted(Boolean hasStarted) { + this.hasStarted = hasStarted; + } + + public Service isServiceEnabled(Boolean isServiceEnabled) { + this.isServiceEnabled = isServiceEnabled; + return this; + } + + /** + * If FALSE, this particular Service has NOT been enabled for use + * + * @return isServiceEnabled + **/ + @Schema(description = "If FALSE, this particular Service has NOT been enabled for use") + + public Boolean isIsServiceEnabled() { + return isServiceEnabled; + } + + public void setIsServiceEnabled(Boolean isServiceEnabled) { + this.isServiceEnabled = isServiceEnabled; + } + + public Service isStateful(Boolean isStateful) { + this.isStateful = isStateful; + return this; + } + + /** + * If TRUE, this Service can be changed without affecting any other services + * + * @return isStateful + **/ + @Schema(description = "If TRUE, this Service can be changed without affecting any other services") + + public Boolean isIsStateful() { + return isStateful; + } + + public void setIsStateful(Boolean isStateful) { + this.isStateful = isStateful; + } + + public Service serviceDate(String serviceDate) { + this.serviceDate = serviceDate; + return this; + } + + /** + * Date when the service was created (whatever its status). + * + * @return serviceDate + **/ + @Schema(description = "Date when the service was created (whatever its status).") + + public String getServiceDate() { + return serviceDate; + } + + public void setServiceDate(String serviceDate) { + this.serviceDate = serviceDate; + } + + public Service serviceType(String serviceType) { + this.serviceType = serviceType; + return this; + } + + /** + * Business type of the service + * + * @return serviceType + **/ + @Schema(description = "Business type of the service") + + public String getServiceType() { + return serviceType; + } + + public void setServiceType(String serviceType) { + this.serviceType = serviceType; + } + + public Service startDate(OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Date when the service starts + * + * @return startDate + **/ + @Schema(description = "Date when the service starts") + + @Valid + + public OffsetDateTime getStartDate() { + return startDate; + } + + + @JsonProperty("startDate") + public String getStartDateStr() { + if ( this.startDate != null ) { + return this.startDate.toString(); + } else { + return null; + } + } + + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; + } + + public void setStartDate(String startDate) { + if ( startDate!=null ) { + this.startDate = OffsetDateTime.parse( startDate ); + } + } + + public Service startMode(String startMode) { + this.startMode = startMode; + return this; + } + + /** + * This attribute is an enumerated integer that indicates how the Service is + * started, such as: 0: Unknown; 1: Automatically by the managed environment; 2: + * Automatically by the owning device; 3: Manually by the Provider of the + * Service; 4: Manually by a Customer of the Provider; 5: Any of the above + * + * @return startMode + **/ + @Schema(description = "This attribute is an enumerated integer that indicates how the Service is started, such as: 0: Unknown; 1: Automatically by the managed environment; 2: Automatically by the owning device; 3: Manually by the Provider of the Service; 4: Manually by a Customer of the Provider; 5: Any of the above") + + public String getStartMode() { + return startMode; + } + + public void setStartMode(String startMode) { + this.startMode = startMode; + } + + public Service note(Set note) { + this.note = note; + return this; + } + + public Service addNoteItem(Note noteItem) { + if (this.note == null) { + this.note = new HashSet<>(); + } + this.note.add(noteItem); + return this; + } + + /** + * A list of notes made on this service + * + * @return note + **/ + @Schema(description = "A list of notes made on this service") + + @Valid + + public Set getNote() { + return note; + } + + public void setNote(Set note) { + this.note = note; + } + + public Service place(Set place) { + this.place = place; + return this; + } + + public Service addPlaceItem(Place placeItem) { + if (this.place == null) { + this.place = new HashSet<>(); + } + this.place.add(placeItem); + return this; + } + + /** + * A list of places related to this service, e.g. where the service is + * installed, a delivery address for equipment, etc. + * + * @return place + **/ + @Schema(description = "A list of places related to this service, e.g. where the service is installed, a delivery address for equipment, etc.") + + @Valid + + public Set getPlace() { + return place; + } + + public void setPlace(Set place) { + this.place = place; + } + + public Service relatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public Service addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new HashSet<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * A list of related party references (RelatedParty [1..*]). A related party + * defines party or party role linked to a specific entity. + * + * @return relatedParty + **/ + @Schema(description = "A list of related party references (RelatedParty [1..*]). A related party defines party or party role linked to a specific entity.") + + @Valid + + public Set getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + } + + public Service serviceCharacteristic( Set serviceCharacteristic) { + this.serviceCharacteristic = serviceCharacteristic; + return this; + } + + public Service addServiceCharacteristicItem(Characteristic serviceCharacteristicItem) { + if (this.serviceCharacteristic == null) { + this.serviceCharacteristic = new HashSet<>(); + } + this.serviceCharacteristic.add(serviceCharacteristicItem); + return this; + } + + /** + * A list of characteristics that characterize this service + * (ServiceCharacteristic [*]) + * + * @return serviceCharacteristic + **/ + @Schema(description = "A list of characteristics that characterize this service (ServiceCharacteristic [*]) ") + + @Valid + + public Set getServiceCharacteristic() { + return serviceCharacteristic; + } + + public void setServiceCharacteristic(Set serviceCharacteristic) { + this.serviceCharacteristic = serviceCharacteristic; + } + + public Service serviceOrder( Set serviceOrder) { + this.serviceOrder = serviceOrder; + return this; + } + + public Service addServiceOrderItem(ServiceOrderRef serviceOrderItem) { + if (this.serviceOrder == null) { + this.serviceOrder = new HashSet<>(); + } + this.serviceOrder.add(serviceOrderItem); + return this; + } + + /** + * A list of service orders related to this service + * + * @return serviceOrder + **/ + @Schema(description = "A list of service orders related to this service") + + @Valid + + public Set getServiceOrder() { + return serviceOrder; + } + + public void setServiceOrder( Set serviceOrder) { + this.serviceOrder = serviceOrder; + } + + public Service serviceRelationship( Set serviceRelationship) { + this.serviceRelationship = serviceRelationship; + return this; + } + + public Service addServiceRelationshipItem(ServiceRelationship serviceRelationshipItem) { + if (this.serviceRelationship == null) { + this.serviceRelationship = new HashSet<>(); + } + this.serviceRelationship.add(serviceRelationshipItem); + return this; + } + + /** + * A list of service relationships (ServiceRelationship [*]). Describes links + * with other service(s) in the inventory (useful for describing relies-on, + * relies-from between CFS for example). + * + * @return serviceRelationship + **/ + @Schema(description = "A list of service relationships (ServiceRelationship [*]). Describes links with other service(s) in the inventory (useful for describing relies-on, relies-from between CFS for example).") + + @Valid + + public Set getServiceRelationship() { + return serviceRelationship; + } + + public void setServiceRelationship( Set serviceRelationship) { + this.serviceRelationship = serviceRelationship; + } + + public Service serviceSpecificationRef(ServiceSpecificationRef serviceSpecification) { + this.serviceSpecificationRef = serviceSpecification; + return this; + } + + /** + * The specification from which this service was instantiated + * + * @return serviceSpecification + **/ + @Schema(description = "The specification from which this service was instantiated") + + @Valid + + public ServiceSpecificationRef getServiceSpecificationRef() { + return serviceSpecificationRef; + } + + public void setServiceSpecificationRef(ServiceSpecificationRef serviceSpecification) { + this.serviceSpecificationRef = serviceSpecification; + } + + public Service state(ServiceStateType state) { + this.state = state; + return this; + } + + /** + * The life cycle state of the service, such as: feasibilityChecked, designed, + * reserved, active, inactive, terminated + * + * @return state + **/ + @Schema(description = "The life cycle state of the service, such as: feasibilityChecked, designed, reserved, active, inactive, terminated") + + @Valid + + public ServiceStateType getState() { + return state; + } + + public void setState(ServiceStateType state) { + this.state = state; + } + + public Service supportingResource( Set supportingResource) { + this.supportingResource = supportingResource; + return this; + } + + public Service addSupportingResourceItem(ResourceRef supportingResourceItem) { + if (this.supportingResource == null) { + this.supportingResource = new HashSet<>(); + } + this.supportingResource.add(supportingResourceItem); + return this; + } + + /** + * A list of supporting resources (SupportingResource [*]).Note: only Service of + * type RFS can be associated with Resources. + * + * @return supportingResource + **/ + @Schema(description = "A list of supporting resources (SupportingResource [*]).Note: only Service of type RFS can be associated with Resources.") + + @Valid + + public Set getSupportingResource() { + return supportingResource; + } + + public void setSupportingResource( Set supportingResource) { + this.supportingResource = supportingResource; + } + + public Service supportingService( Set supportingService) { + this.supportingService = supportingService; + return this; + } + + public Service addSupportingServiceItem(ServiceRef supportingServiceItem) { + if (this.supportingService == null) { + this.supportingService = new HashSet<>(); + } + this.supportingService.add(supportingServiceItem); + return this; + } + + /** + * A list of supporting services (SupportingService [*]). A collection of + * services that support this service (bundling, link CFS to RFS). + * + * @return supportingService + **/ + @Schema(description = "A list of supporting services (SupportingService [*]). A collection of services that support this service (bundling, link CFS to RFS).") + + @Valid + + public Set getSupportingService() { + return supportingService; + } + + public void setSupportingService( Set supportingService) { + this.supportingService = supportingService; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Service service = (Service) o; + return Objects.equals(this.id, service.id) && Objects.equals(this.href, service.href) + && Objects.equals(this.category, service.category) + && Objects.equals(this.descriptionL, service.descriptionL) + && Objects.equals(this.endDate, service.endDate) && Objects.equals(this.hasStarted, service.hasStarted) + && Objects.equals(this.isServiceEnabled, service.isServiceEnabled) + && Objects.equals(this.isStateful, service.isStateful) && Objects.equals(this.name, service.name) + && Objects.equals(this.serviceDate, service.serviceDate) + && Objects.equals(this.serviceType, service.serviceType) + && Objects.equals(this.startDate, service.startDate) + && Objects.equals(this.startMode, service.startMode) && Objects.equals(this.note, service.note) + && Objects.equals(this.place, service.place) && Objects.equals(this.relatedParty, service.relatedParty) + && Objects.equals(this.serviceCharacteristic, service.serviceCharacteristic) + && Objects.equals(this.serviceOrder, service.serviceOrder) + && Objects.equals(this.serviceRelationship, service.serviceRelationship) + && Objects.equals(this.serviceSpecificationRef, service.serviceSpecificationRef) + && Objects.equals(this.state, service.state) + && Objects.equals(this.supportingResource, service.supportingResource) + && Objects.equals(this.supportingService, service.supportingService) + && Objects.equals(this.baseType, service.baseType) + && Objects.equals(this.schemaLocation, service.schemaLocation) + && Objects.equals(this.type, service.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, category, description, endDate, hasStarted, isServiceEnabled, isStateful, name, +// serviceDate, serviceType, startDate, startMode, note, place, relatedParty, serviceCharacteristic, +// serviceOrder, serviceRelationship, serviceSpecification, state, supportingResource, supportingService, +// baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Service {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" description: ").append(toIndentedString(descriptionL)).append("\n"); + sb.append(" endDate: ").append(toIndentedString(endDate)).append("\n"); + sb.append(" hasStarted: ").append(toIndentedString(hasStarted)).append("\n"); + sb.append(" isServiceEnabled: ").append(toIndentedString(isServiceEnabled)).append("\n"); + sb.append(" isStateful: ").append(toIndentedString(isStateful)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" serviceDate: ").append(toIndentedString(serviceDate)).append("\n"); + sb.append(" serviceType: ").append(toIndentedString(serviceType)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" startMode: ").append(toIndentedString(startMode)).append("\n"); + sb.append(" note: ").append(toIndentedString(note)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" serviceCharacteristic: ").append(toIndentedString(serviceCharacteristic)).append("\n"); + sb.append(" serviceOrder: ").append(toIndentedString(serviceOrder)).append("\n"); + sb.append(" serviceRelationship: ").append(toIndentedString(serviceRelationship)).append("\n"); + sb.append(" serviceSpecificationRef: ").append(toIndentedString(serviceSpecificationRef)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" supportingResource: ").append(toIndentedString(supportingResource)).append("\n"); + sb.append(" supportingService: ").append(toIndentedString(supportingService)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public Characteristic getServiceCharacteristicByName(String name) { + for (Characteristic c : this.serviceCharacteristic) { + if ( c.getName().equals(name)) { + return c; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceActionQueueAction.java b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceActionQueueAction.java new file mode 100644 index 0000000..f5ee01a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceActionQueueAction.java @@ -0,0 +1,33 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +public enum ServiceActionQueueAction { + + NONE, + CREATE, + MODIFY, + DEACTIVATE, + TERMINATE, + EVALUATE_STATE_CHANGE_TOACTIVE, + EVALUATE_STATE_CHANGE_TOINACTIVE, + EVALUATE_CHARACTERISTIC_CHANGED, + EVALUATE_CHARACTERISTIC_CHANGED_MANODAY2 +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceActionQueueItem.java b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceActionQueueItem.java new file mode 100644 index 0000000..2ce33fa --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceActionQueueItem.java @@ -0,0 +1,170 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ + + +package org.etsi.osl.tmf.sim638.model; + +import java.time.OffsetDateTime; +import java.time.ZoneOffset; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.hibernate.annotations.GenericGenerator; +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.Inheritance; +import jakarta.persistence.InheritanceType; +import jakarta.persistence.Lob; + +/** + * @author ctranoris + * + * These are items inserted in the ServiceActionQueue + * + */ +@Entity(name = "ServiceActionQueueItem") +@Inheritance( strategy = InheritanceType.TABLE_PER_CLASS ) +@Schema(description = "These are items inserted in the ServiceActionQueue ") +@Validated +public class ServiceActionQueueItem { + + + @Id + @GeneratedValue(generator = "uuid") + @GenericGenerator(name = "uuid", strategy = "uuid2") + protected String uuid = null; + + + @JsonProperty("serviceRefId") + private String serviceRefId = null; + + + private OffsetDateTime insertedDate = null; + + @JsonProperty("action") + ServiceActionQueueAction action = ServiceActionQueueAction.NONE; + + /** + * keeps the original service object in JSON. Useful to revert changes or identify different characteristics + */ + + @Lob + @Column(name = "LORIGINAL_SERVICE", columnDefinition = "LONGTEXT") + private String originalServiceInJSONL; + + public ServiceActionQueueItem() { + insertedDate = OffsetDateTime.now(ZoneOffset.UTC); + } + + /** + * @return the uuid + */ + public String getUuid() { + return uuid; + } + + /** + * @param uuid the uuid to set + */ + public void setUuid(String uuid) { + this.uuid = uuid; + } + + /** + * @return the serviceRefId + */ + public String getServiceRefId() { + return serviceRefId; + } + + /** + * @param serviceRefId the serviceRefId to set + */ + public void setServiceRefId(String serviceRefId) { + this.serviceRefId = serviceRefId; + } + + /** + * @return the insertedDate + */ + public OffsetDateTime getInsertedDate() { + return insertedDate; + } + + /** + * @param insertedDate the insertedDate to set + */ + public void setInsertedDate(OffsetDateTime insertedDate) { + this.insertedDate = insertedDate; + } + + public void setInsertedDate(String insDate) { + if ( insDate!=null ) { + this.insertedDate = OffsetDateTime.parse( insDate ); + } + } + + + @JsonProperty("insertedDate") + public String getInsertedDateStr() { + if ( this.insertedDate != null ) { + return this.insertedDate.toString(); + } else { + return null; + } + } + + /** + * @return the action + */ + public ServiceActionQueueAction getAction() { + return action; + } + + /** + * @param action the action to set + */ + public void setAction(ServiceActionQueueAction action) { + this.action = action; + } + + + /** + * keeps the original service object in JSON. Useful to revert changes or identify different characteristics + */ + + public String getOriginalServiceInJSON() { + return originalServiceInJSONL; + } + /** + * keeps the original service object in JSON. Useful to revert changes or identify different characteristics + */ + + public void setOriginalServiceInJSON(String originalServiceInJSON) { + this.originalServiceInJSONL = originalServiceInJSON; + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceAttributeValueChangeEvent.java new file mode 100644 index 0000000..0a41577 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceAttributeValueChangeEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class ServiceAttributeValueChangeEvent { + @JsonProperty("service") + private Service service = null; + + public ServiceAttributeValueChangeEvent service(Service service) { + this.service = service; + return this; + } + + /** + * The involved resource data for the event + * @return service + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Service getService() { + return service; + } + + public void setService(Service service) { + this.service = service; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceAttributeValueChangeEvent serviceAttributeValueChangeEvent = (ServiceAttributeValueChangeEvent) o; + return Objects.equals(this.service, serviceAttributeValueChangeEvent.service); + } + + @Override + public int hashCode() { + return Objects.hash(service); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceAttributeValueChangeEvent {\n"); + + sb.append(" service: ").append(toIndentedString(service)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceAttributeValueChangeNotification.java b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceAttributeValueChangeNotification.java new file mode 100644 index 0000000..05ef0c4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceAttributeValueChangeNotification.java @@ -0,0 +1,118 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class ServiceAttributeValueChangeNotification extends Notification { + + @JsonProperty("event") + private ServiceAttributeValueChangeEvent event = null; + + public ServiceAttributeValueChangeNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + + public ServiceAttributeValueChangeNotification event(ServiceAttributeValueChangeEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceAttributeValueChangeEvent getEvent() { + return event; + } + + public void setEvent(ServiceAttributeValueChangeEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceAttributeValueChangeNotification serviceAttributeValueChangeNotification = (ServiceAttributeValueChangeNotification) o; + return Objects.equals(this.eventId, serviceAttributeValueChangeNotification.eventId) && + Objects.equals(this.eventTime, serviceAttributeValueChangeNotification.eventTime) && + Objects.equals(this.eventType, serviceAttributeValueChangeNotification.eventType) && + Objects.equals(this.fieldPath, serviceAttributeValueChangeNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceAttributeValueChangeNotification.resourcePath) && + Objects.equals(this.event, serviceAttributeValueChangeNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceAttributeValueChangeNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceBatchEvent.java b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceBatchEvent.java new file mode 100644 index 0000000..036d22f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceBatchEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class ServiceBatchEvent { + @JsonProperty("service") + private Service service = null; + + public ServiceBatchEvent service(Service service) { + this.service = service; + return this; + } + + /** + * The involved resource data for the event + * @return service + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Service getService() { + return service; + } + + public void setService(Service service) { + this.service = service; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceBatchEvent serviceBatchEvent = (ServiceBatchEvent) o; + return Objects.equals(this.service, serviceBatchEvent.service); + } + + @Override + public int hashCode() { + return Objects.hash(service); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceBatchEvent {\n"); + + sb.append(" service: ").append(toIndentedString(service)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceBatchNotification.java b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceBatchNotification.java new file mode 100644 index 0000000..e49a3b4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceBatchNotification.java @@ -0,0 +1,118 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class ServiceBatchNotification extends Notification { + + @JsonProperty("event") + private ServiceBatchEvent event = null; + + public ServiceBatchNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + + public ServiceBatchNotification event(ServiceBatchEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceBatchEvent getEvent() { + return event; + } + + public void setEvent(ServiceBatchEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceBatchNotification serviceBatchNotification = (ServiceBatchNotification) o; + return Objects.equals(this.eventId, serviceBatchNotification.eventId) && + Objects.equals(this.eventTime, serviceBatchNotification.eventTime) && + Objects.equals(this.eventType, serviceBatchNotification.eventType) && + Objects.equals(this.fieldPath, serviceBatchNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceBatchNotification.resourcePath) && + Objects.equals(this.event, serviceBatchNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceBatchNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceCreate.java b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceCreate.java new file mode 100644 index 0000000..a0280e3 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceCreate.java @@ -0,0 +1,127 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +import java.util.Objects; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Service is a base class for defining the Service hierarchy. All Services are characterized as either being possibly visible and usable by a Customer or not. This gives rise to the two subclasses of Service: CustomerFacingService and ResourceFacingService. Skipped properties: id,href + */ +@Schema(description = "Service is a base class for defining the Service hierarchy. All Services are characterized as either being possibly visible and usable by a Customer or not. This gives rise to the two subclasses of Service: CustomerFacingService and ResourceFacingService. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class ServiceCreate extends ServiceUpdate { + + + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCreate serviceCreate = (ServiceCreate) o; + return Objects.equals(this.category, serviceCreate.category) && + Objects.equals(this.description, serviceCreate.description) && + Objects.equals(this.endDate, serviceCreate.endDate) && + Objects.equals(this.hasStarted, serviceCreate.hasStarted) && + Objects.equals(this.isServiceEnabled, serviceCreate.isServiceEnabled) && + Objects.equals(this.isStateful, serviceCreate.isStateful) && + Objects.equals(this.name, serviceCreate.name) && + Objects.equals(this.serviceDate, serviceCreate.serviceDate) && + Objects.equals(this.serviceType, serviceCreate.serviceType) && + Objects.equals(this.startDate, serviceCreate.startDate) && + Objects.equals(this.startMode, serviceCreate.startMode) && + Objects.equals(this.note, serviceCreate.note) && + Objects.equals(this.place, serviceCreate.place) && + Objects.equals(this.relatedParty, serviceCreate.relatedParty) && + Objects.equals(this.serviceCharacteristic, serviceCreate.serviceCharacteristic) && + Objects.equals(this.serviceOrder, serviceCreate.serviceOrder) && + Objects.equals(this.serviceRelationship, serviceCreate.serviceRelationship) && + Objects.equals(this.serviceSpecificationRef, serviceCreate.serviceSpecificationRef) && + Objects.equals(this.state, serviceCreate.state) && + Objects.equals(this.supportingResource, serviceCreate.supportingResource) && + Objects.equals(this.supportingService, serviceCreate.supportingService) && + Objects.equals(this.baseType, serviceCreate.baseType) && + Objects.equals(this.schemaLocation, serviceCreate.schemaLocation) && + Objects.equals(this.type, serviceCreate.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(category, description, endDate, hasStarted, isServiceEnabled, isStateful, name, serviceDate, serviceType, startDate, startMode, note, place, relatedParty, serviceCharacteristic, serviceOrder, serviceRelationship, serviceSpecification, state, supportingResource, supportingService, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCreate {\n"); + + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" endDate: ").append(toIndentedString(endDate)).append("\n"); + sb.append(" hasStarted: ").append(toIndentedString(hasStarted)).append("\n"); + sb.append(" isServiceEnabled: ").append(toIndentedString(isServiceEnabled)).append("\n"); + sb.append(" isStateful: ").append(toIndentedString(isStateful)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" serviceDate: ").append(toIndentedString(serviceDate)).append("\n"); + sb.append(" serviceType: ").append(toIndentedString(serviceType)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" startMode: ").append(toIndentedString(startMode)).append("\n"); + sb.append(" note: ").append(toIndentedString(note)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" serviceCharacteristic: ").append(toIndentedString(serviceCharacteristic)).append("\n"); + sb.append(" serviceOrder: ").append(toIndentedString(serviceOrder)).append("\n"); + sb.append(" serviceRelationship: ").append(toIndentedString(serviceRelationship)).append("\n"); + sb.append(" serviceSpecificationRef: ").append(toIndentedString(serviceSpecificationRef)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" supportingResource: ").append(toIndentedString(supportingResource)).append("\n"); + sb.append(" supportingService: ").append(toIndentedString(supportingService)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceCreateEvent.java b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceCreateEvent.java new file mode 100644 index 0000000..08c4e3e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceCreateEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class ServiceCreateEvent { + @JsonProperty("service") + private Service service = null; + + public ServiceCreateEvent service(Service service) { + this.service = service; + return this; + } + + /** + * The involved resource data for the event + * @return service + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Service getService() { + return service; + } + + public void setService(Service service) { + this.service = service; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCreateEvent serviceCreateEvent = (ServiceCreateEvent) o; + return Objects.equals(this.service, serviceCreateEvent.service); + } + + @Override + public int hashCode() { + return Objects.hash(service); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCreateEvent {\n"); + + sb.append(" service: ").append(toIndentedString(service)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceCreateNotification.java b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceCreateNotification.java new file mode 100644 index 0000000..c5f42a4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceCreateNotification.java @@ -0,0 +1,120 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class ServiceCreateNotification extends Notification { + + + @JsonProperty("event") + private ServiceCreateEvent event = null; + + public ServiceCreateNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + + + public ServiceCreateNotification event(ServiceCreateEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceCreateEvent getEvent() { + return event; + } + + public void setEvent(ServiceCreateEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceCreateNotification serviceCreateNotification = (ServiceCreateNotification) o; + return Objects.equals(this.eventId, serviceCreateNotification.eventId) && + Objects.equals(this.eventTime, serviceCreateNotification.eventTime) && + Objects.equals(this.eventType, serviceCreateNotification.eventType) && + Objects.equals(this.fieldPath, serviceCreateNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceCreateNotification.resourcePath) && + Objects.equals(this.event, serviceCreateNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceCreateNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceDeleteEvent.java new file mode 100644 index 0000000..a901f11 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceDeleteEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class ServiceDeleteEvent { + @JsonProperty("service") + private Service service = null; + + public ServiceDeleteEvent service(Service service) { + this.service = service; + return this; + } + + /** + * The involved resource data for the event + * @return service + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Service getService() { + return service; + } + + public void setService(Service service) { + this.service = service; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceDeleteEvent serviceDeleteEvent = (ServiceDeleteEvent) o; + return Objects.equals(this.service, serviceDeleteEvent.service); + } + + @Override + public int hashCode() { + return Objects.hash(service); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceDeleteEvent {\n"); + + sb.append(" service: ").append(toIndentedString(service)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceDeleteNotification.java b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceDeleteNotification.java new file mode 100644 index 0000000..8d2c3ea --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceDeleteNotification.java @@ -0,0 +1,118 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class ServiceDeleteNotification extends Notification { + + @JsonProperty("event") + private ServiceDeleteEvent event = null; + + public ServiceDeleteNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + + public ServiceDeleteNotification event(ServiceDeleteEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceDeleteEvent getEvent() { + return event; + } + + public void setEvent(ServiceDeleteEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceDeleteNotification serviceDeleteNotification = (ServiceDeleteNotification) o; + return Objects.equals(this.eventId, serviceDeleteNotification.eventId) && + Objects.equals(this.eventTime, serviceDeleteNotification.eventTime) && + Objects.equals(this.eventType, serviceDeleteNotification.eventType) && + Objects.equals(this.fieldPath, serviceDeleteNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceDeleteNotification.resourcePath) && + Objects.equals(this.event, serviceDeleteNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceDeleteNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceOrderRef.java b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceOrderRef.java new file mode 100644 index 0000000..647d55a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceOrderRef.java @@ -0,0 +1,168 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * Service Order reference. Useful to understand the which was the Service order + * through which the service was instantiated in the service inventory + */ +@Schema(description = "Service Order reference. Useful to understand the which was the Service order through which the service was instantiated in the service inventory") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") +@Entity(name = "ServiceOrderRef") +@JsonIgnoreProperties({ "uuid" }) +public class ServiceOrderRef extends BaseRootEntity { + + @JsonProperty("id") + private String id = null; + + @JsonProperty("serviceOrderItemId") + private String serviceOrderItemId = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public ServiceOrderRef id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the Service Order + * + * @return id + **/ + @Schema(description = "Unique identifier of the Service Order") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + + + public ServiceOrderRef serviceOrderItemId(String serviceOrderItemId) { + this.serviceOrderItemId = serviceOrderItemId; + return this; + } + + /** + * Unique identifier of the Service Order Item within a service order, not + * populated if this is a reference to a service order + * + * @return serviceOrderItemId + **/ + @Schema(description = "Unique identifier of the Service Order Item within a service order, not populated if this is a reference to a service order") + + public String getServiceOrderItemId() { + return serviceOrderItemId; + } + + public void setServiceOrderItemId(String serviceOrderItemId) { + this.serviceOrderItemId = serviceOrderItemId; + } + + + + + + public ServiceOrderRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceOrderRef serviceOrderRef = (ServiceOrderRef) o; + return Objects.equals(this.id, serviceOrderRef.id) && Objects.equals(this.href, serviceOrderRef.href) + && Objects.equals(this.serviceOrderItemId, serviceOrderRef.serviceOrderItemId) + && Objects.equals(this.baseType, serviceOrderRef.baseType) + && Objects.equals(this.schemaLocation, serviceOrderRef.schemaLocation) + && Objects.equals(this.type, serviceOrderRef.type) + && Objects.equals(this.referredType, serviceOrderRef.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, serviceOrderItemId, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceOrderRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" serviceOrderItemId: ").append(toIndentedString(serviceOrderItemId)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceStateChangeEvent.java new file mode 100644 index 0000000..14c9b30 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceStateChangeEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class ServiceStateChangeEvent { + @JsonProperty("service") + private Service service = null; + + public ServiceStateChangeEvent service(Service service) { + this.service = service; + return this; + } + + /** + * The involved resource data for the event + * @return service + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public Service getService() { + return service; + } + + public void setService(Service service) { + this.service = service; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceStateChangeEvent serviceStateChangeEvent = (ServiceStateChangeEvent) o; + return Objects.equals(this.service, serviceStateChangeEvent.service); + } + + @Override + public int hashCode() { + return Objects.hash(service); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceStateChangeEvent {\n"); + + sb.append(" service: ").append(toIndentedString(service)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceStateChangeNotification.java b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceStateChangeNotification.java new file mode 100644 index 0000000..7b8a4c7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceStateChangeNotification.java @@ -0,0 +1,120 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class ServiceStateChangeNotification extends Notification { + + + @JsonProperty("event") + private ServiceStateChangeEvent event = null; + + public ServiceStateChangeNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + + + public ServiceStateChangeNotification event(ServiceStateChangeEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceStateChangeEvent getEvent() { + return event; + } + + public void setEvent(ServiceStateChangeEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceStateChangeNotification serviceStateChangeNotification = (ServiceStateChangeNotification) o; + return Objects.equals(this.eventId, serviceStateChangeNotification.eventId) && + Objects.equals(this.eventTime, serviceStateChangeNotification.eventTime) && + Objects.equals(this.eventType, serviceStateChangeNotification.eventType) && + Objects.equals(this.fieldPath, serviceStateChangeNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceStateChangeNotification.resourcePath) && + Objects.equals(this.event, serviceStateChangeNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceStateChangeNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceUpdate.java b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceUpdate.java new file mode 100644 index 0000000..e7a9aac --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/model/ServiceUpdate.java @@ -0,0 +1,822 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.service.Characteristic; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.common.model.service.Place; +import org.etsi.osl.tmf.common.model.service.ResourceRef; +import org.etsi.osl.tmf.common.model.service.ServiceRef; +import org.etsi.osl.tmf.common.model.service.ServiceRelationship; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.etsi.osl.tmf.common.model.service.ServiceStateType; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Service is a base class for defining the Service hierarchy. All Services are + * characterized as either being possibly visible and usable by a Customer or + * not. This gives rise to the two subclasses of Service: CustomerFacingService + * and ResourceFacingService. Skipped properties: id,href,serviceRelationship + */ +@Schema(description = "Service is a base class for defining the Service hierarchy. All Services are characterized as either being possibly visible and usable by a Customer or not. This gives rise to the two subclasses of Service: CustomerFacingService and ResourceFacingService. Skipped properties: id,href,serviceRelationship") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:12:41.682+03:00") + +public class ServiceUpdate { + @JsonProperty("category") + protected String category = null; + + @JsonProperty("description") + protected String description = null; + + protected OffsetDateTime endDate = null; + + @JsonProperty("hasStarted") + protected Boolean hasStarted = null; + + @JsonProperty("isServiceEnabled") + protected Boolean isServiceEnabled = null; + + @JsonProperty("isStateful") + protected Boolean isStateful = null; + + @JsonProperty("name") + protected String name = null; + + @JsonProperty("serviceDate") + protected String serviceDate = null; + + @JsonProperty("serviceType") + protected String serviceType = null; + + protected OffsetDateTime startDate = null; + + @JsonProperty("startMode") + protected String startMode = null; + + @JsonProperty("note") + @Valid + protected List note = null; + + @JsonProperty("place") + @Valid + protected List place = null; + + @JsonProperty("relatedParty") + @Valid + protected List relatedParty = null; + + @JsonProperty("serviceCharacteristic") + @Valid + protected List serviceCharacteristic = null; + + @JsonProperty("serviceOrder") + @Valid + protected List serviceOrder = null; + + @JsonProperty("serviceSpecification") + protected ServiceSpecificationRef serviceSpecificationRef = null; + + @JsonProperty("state") + protected ServiceStateType state = null; + + @JsonProperty("supportingResource") + @Valid + protected List supportingResource = null; + + @JsonProperty("supportingService") + @Valid + protected List supportingService = null; + + + @JsonProperty("serviceRelationship") + @Valid + protected List serviceRelationship = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@type") + protected String type = null; + + public ServiceUpdate category(String category) { + this.category = category; + return this; + } + + /** + * Is it a customer facing or resource facing service + * + * @return category + **/ + @Schema(description = "Is it a customer facing or resource facing service") + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public ServiceUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Free-text description of the service + * + * @return description + **/ + @Schema(description = "Free-text description of the service") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceUpdate endDate(OffsetDateTime endDate) { + this.endDate = endDate; + return this; + } + + @JsonProperty("endDate") + public String getEndDateStr() { + if (this.endDate != null) { + return this.endDate.toString(); + } else { + return null; + } + } + + /** + * Date when the service ends + * + * @return endDate + **/ + @Schema(description = "Date when the service ends") + + @Valid + + public OffsetDateTime getEndDate() { + return endDate; + } + + public void setEndDate(OffsetDateTime endDate) { + this.endDate = endDate; + } + + public void setEndDate(String anendDate) { + if (anendDate != null) { + this.endDate = OffsetDateTime.parse(anendDate); + + } + + } + + public ServiceUpdate hasStarted(Boolean hasStarted) { + this.hasStarted = hasStarted; + return this; + } + + /** + * If TRUE, this Service has already been started + * + * @return hasStarted + **/ + @Schema(description = "If TRUE, this Service has already been started") + + public Boolean isHasStarted() { + return hasStarted; + } + + public void setHasStarted(Boolean hasStarted) { + this.hasStarted = hasStarted; + } + + public ServiceUpdate isServiceEnabled(Boolean isServiceEnabled) { + this.isServiceEnabled = isServiceEnabled; + return this; + } + + /** + * If FALSE, this particular Service has NOT been enabled for use + * + * @return isServiceEnabled + **/ + @Schema(description = "If FALSE, this particular Service has NOT been enabled for use") + + public Boolean isIsServiceEnabled() { + return isServiceEnabled; + } + + public void setIsServiceEnabled(Boolean isServiceEnabled) { + this.isServiceEnabled = isServiceEnabled; + } + + public ServiceUpdate isStateful(Boolean isStateful) { + this.isStateful = isStateful; + return this; + } + + /** + * If TRUE, this Service can be changed without affecting any other services + * + * @return isStateful + **/ + @Schema(description = "If TRUE, this Service can be changed without affecting any other services") + + public Boolean isIsStateful() { + return isStateful; + } + + public void setIsStateful(Boolean isStateful) { + this.isStateful = isStateful; + } + + public ServiceUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name of the service + * + * @return name + **/ + @Schema(description = "Name of the service") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ServiceUpdate serviceDate(String serviceDate) { + this.serviceDate = serviceDate; + return this; + } + + /** + * Date when the service was created (whatever its status). + * + * @return serviceDate + **/ + @Schema(description = "Date when the service was created (whatever its status).") + + public String getServiceDate() { + return serviceDate; + } + + public void setServiceDate(String serviceDate) { + this.serviceDate = serviceDate; + } + + public ServiceUpdate serviceType(String serviceType) { + this.serviceType = serviceType; + return this; + } + + /** + * Business type of the service + * + * @return serviceType + **/ + @Schema(description = "Business type of the service") + + public String getServiceType() { + return serviceType; + } + + public void setServiceType(String serviceType) { + this.serviceType = serviceType; + } + + public ServiceUpdate startDate(OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Date when the service starts + * + * @return startDate + **/ + @Schema(description = "Date when the service starts") + + @Valid + + public OffsetDateTime getStartDate() { + return startDate; + } + + @JsonProperty("startDate") + public String getStartDateStr() { + if (this.startDate != null) { + return this.startDate.toString(); + } else { + return null; + } + } + + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; + } + + public void setStartDate(String astartDate) { + if (astartDate != null) { + this.startDate = OffsetDateTime.parse(astartDate); + + } + + } + + public ServiceUpdate startMode(String startMode) { + this.startMode = startMode; + return this; + } + + /** + * This attribute is an enumerated integer that indicates how the Service is + * started, such as: 0: Unknown; 1: Automatically by the managed environment; 2: + * Automatically by the owning device; 3: Manually by the Provider of the + * Service; 4: Manually by a Customer of the Provider; 5: Any of the above + * + * @return startMode + **/ + @Schema(description = "This attribute is an enumerated integer that indicates how the Service is started, such as: 0: Unknown; 1: Automatically by the managed environment; 2: Automatically by the owning device; 3: Manually by the Provider of the Service; 4: Manually by a Customer of the Provider; 5: Any of the above") + + public String getStartMode() { + return startMode; + } + + public void setStartMode(String startMode) { + this.startMode = startMode; + } + + public ServiceUpdate note(List note) { + this.note = note; + return this; + } + + public ServiceUpdate addNoteItem(Note noteItem) { + if (this.note == null) { + this.note = new ArrayList<>(); + } + this.note.add(noteItem); + return this; + } + + /** + * A list of notes made on this service + * + * @return note + **/ + @Schema(description = "A list of notes made on this service") + + @Valid + + public List getNote() { + return note; + } + + public void setNote(List note) { + this.note = note; + } + + public ServiceUpdate place(List place) { + this.place = place; + return this; + } + + public ServiceUpdate addPlaceItem(Place placeItem) { + if (this.place == null) { + this.place = new ArrayList<>(); + } + this.place.add(placeItem); + return this; + } + + /** + * A list of places related to this service, e.g. where the service is + * installed, a delivery address for equipment, etc. + * + * @return place + **/ + @Schema(description = "A list of places related to this service, e.g. where the service is installed, a delivery address for equipment, etc.") + + @Valid + + public List getPlace() { + return place; + } + + public void setPlace(List place) { + this.place = place; + } + + public ServiceUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ServiceUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * A list of related party references (RelatedParty [1..*]). A related party + * defines party or party role linked to a specific entity. + * + * @return relatedParty + **/ + @Schema(description = "A list of related party references (RelatedParty [1..*]). A related party defines party or party role linked to a specific entity.") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public ServiceUpdate serviceCharacteristic(List serviceCharacteristic) { + this.serviceCharacteristic = serviceCharacteristic; + return this; + } + + public ServiceUpdate addServiceCharacteristicItem(Characteristic serviceCharacteristicItem) { + if (this.serviceCharacteristic == null) { + this.serviceCharacteristic = new ArrayList<>(); + } + this.serviceCharacteristic.add(serviceCharacteristicItem); + return this; + } + + /** + * A list of characteristics that characterize this service + * (ServiceCharacteristic [*]) + * + * @return serviceCharacteristic + **/ + @Schema(description = "A list of characteristics that characterize this service (ServiceCharacteristic [*]) ") + + @Valid + + public List getServiceCharacteristic() { + return serviceCharacteristic; + } + + public void setServiceCharacteristic(List serviceCharacteristic) { + this.serviceCharacteristic = serviceCharacteristic; + } + + public ServiceUpdate serviceOrder(List serviceOrder) { + this.serviceOrder = serviceOrder; + return this; + } + + public ServiceUpdate addServiceOrderItem(ServiceOrderRef serviceOrderItem) { + if (this.serviceOrder == null) { + this.serviceOrder = new ArrayList<>(); + } + this.serviceOrder.add(serviceOrderItem); + return this; + } + + /** + * A list of service orders related to this service + * + * @return serviceOrder + **/ + @Schema(description = "A list of service orders related to this service") + + @Valid + + public List getServiceOrder() { + return serviceOrder; + } + + public void setServiceOrder(List serviceOrder) { + this.serviceOrder = serviceOrder; + } + + public ServiceUpdate serviceSpecificationRef(ServiceSpecificationRef serviceSpecification) { + this.serviceSpecificationRef = serviceSpecification; + return this; + } + + /** + * The specification from which this service was instantiated + * + * @return serviceSpecification + **/ + @Schema(description = "The specification from which this service was instantiated") + + @Valid + + public ServiceSpecificationRef getServiceSpecificationRef() { + return serviceSpecificationRef; + } + + public void setServiceSpecificationRef(ServiceSpecificationRef serviceSpecification) { + this.serviceSpecificationRef = serviceSpecification; + } + + public ServiceUpdate state(ServiceStateType state) { + this.state = state; + return this; + } + + /** + * The life cycle state of the service, such as: feasibilityChecked, designed, + * reserved, active, inactive, terminated + * + * @return state + **/ + @Schema(description = "The life cycle state of the service, such as: feasibilityChecked, designed, reserved, active, inactive, terminated") + + @Valid + + public ServiceStateType getState() { + return state; + } + + public void setState(ServiceStateType state) { + this.state = state; + } + + public ServiceUpdate supportingResource(List supportingResource) { + this.supportingResource = supportingResource; + return this; + } + + public ServiceUpdate addSupportingResourceItem(ResourceRef supportingResourceItem) { + if (this.supportingResource == null) { + this.supportingResource = new ArrayList<>(); + } + this.supportingResource.add(supportingResourceItem); + return this; + } + + /** + * A list of supporting resources (SupportingResource [*]).Note: only Service of + * type RFS can be associated with Resources. + * + * @return supportingResource + **/ + @Schema(description = "A list of supporting resources (SupportingResource [*]).Note: only Service of type RFS can be associated with Resources.") + + @Valid + + public List getSupportingResource() { + return supportingResource; + } + + public void setSupportingResource(List supportingResource) { + this.supportingResource = supportingResource; + } + + public ServiceUpdate supportingService(List supportingService) { + this.supportingService = supportingService; + return this; + } + + public ServiceUpdate addSupportingServiceItem(ServiceRef supportingServiceItem) { + if (this.supportingService == null) { + this.supportingService = new ArrayList<>(); + } + this.supportingService.add(supportingServiceItem); + return this; + } + + /** + * A list of supporting services (SupportingService [*]). A collection of + * services that support this service (bundling, link CFS to RFS). + * + * @return supportingService + **/ + @Schema(description = "A list of supporting services (SupportingService [*]). A collection of services that support this service (bundling, link CFS to RFS).") + + @Valid + + public List getSupportingService() { + return supportingService; + } + + public void setSupportingService(List supportingService) { + this.supportingService = supportingService; + } + + public ServiceUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ServiceUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ServiceUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + + public ServiceRelationship addServiceRelationshipItem(ServiceRelationship serviceRelationshipItem) { + if (this.serviceRelationship == null) { + this.serviceRelationship = new ArrayList<>(); + } + this.serviceRelationship.add(serviceRelationshipItem); + return serviceRelationshipItem; + } + + /** + * A list of service relationships (ServiceRelationship [*]). Describes links + * with other service(s) in the inventory (useful for describing relies-on, + * relies-from between CFS for example). + * + * @return serviceRelationship + **/ + @Schema(description = "A list of service relationships (ServiceRelationship [*]). Describes links with other service(s) in the inventory (useful for describing relies-on, relies-from between CFS for example).") + + @Valid + + public List getServiceRelationship() { + return serviceRelationship; + } + + public void setServiceRelationship(List serviceRelationship) { + this.serviceRelationship = serviceRelationship; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceUpdate serviceUpdate = (ServiceUpdate) o; + return Objects.equals(this.category, serviceUpdate.category) + && Objects.equals(this.description, serviceUpdate.description) + && Objects.equals(this.endDate, serviceUpdate.endDate) + && Objects.equals(this.hasStarted, serviceUpdate.hasStarted) + && Objects.equals(this.isServiceEnabled, serviceUpdate.isServiceEnabled) + && Objects.equals(this.isStateful, serviceUpdate.isStateful) + && Objects.equals(this.name, serviceUpdate.name) + && Objects.equals(this.serviceDate, serviceUpdate.serviceDate) + && Objects.equals(this.serviceType, serviceUpdate.serviceType) + && Objects.equals(this.startDate, serviceUpdate.startDate) + && Objects.equals(this.startMode, serviceUpdate.startMode) + && Objects.equals(this.note, serviceUpdate.note) && Objects.equals(this.place, serviceUpdate.place) + && Objects.equals(this.relatedParty, serviceUpdate.relatedParty) + && Objects.equals(this.serviceCharacteristic, serviceUpdate.serviceCharacteristic) + && Objects.equals(this.serviceOrder, serviceUpdate.serviceOrder) + && Objects.equals(this.serviceSpecificationRef, serviceUpdate.serviceSpecificationRef) + && Objects.equals(this.state, serviceUpdate.state) + && Objects.equals(this.supportingResource, serviceUpdate.supportingResource) + && Objects.equals(this.supportingService, serviceUpdate.supportingService) + && Objects.equals(this.baseType, serviceUpdate.baseType) + && Objects.equals(this.schemaLocation, serviceUpdate.schemaLocation) + && Objects.equals(this.type, serviceUpdate.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(category, description, endDate, hasStarted, isServiceEnabled, isStateful, name, serviceDate, serviceType, startDate, startMode, note, place, relatedParty, serviceCharacteristic, serviceOrder, serviceSpecification, state, supportingResource, supportingService, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceUpdate {\n"); + + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" endDate: ").append(toIndentedString(endDate)).append("\n"); + sb.append(" hasStarted: ").append(toIndentedString(hasStarted)).append("\n"); + sb.append(" isServiceEnabled: ").append(toIndentedString(isServiceEnabled)).append("\n"); + sb.append(" isStateful: ").append(toIndentedString(isStateful)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" serviceDate: ").append(toIndentedString(serviceDate)).append("\n"); + sb.append(" serviceType: ").append(toIndentedString(serviceType)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" startMode: ").append(toIndentedString(startMode)).append("\n"); + sb.append(" note: ").append(toIndentedString(note)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" serviceCharacteristic: ").append(toIndentedString(serviceCharacteristic)).append("\n"); + sb.append(" serviceOrder: ").append(toIndentedString(serviceOrder)).append("\n"); + sb.append(" serviceSpecification: ").append(toIndentedString(serviceSpecificationRef)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" supportingResource: ").append(toIndentedString(supportingResource)).append("\n"); + sb.append(" supportingService: ").append(toIndentedString(supportingService)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/repo/ServiceActionQueueRepository.java b/src/main/java/org/etsi/osl/tmf/sim638/repo/ServiceActionQueueRepository.java new file mode 100644 index 0000000..ff45df3 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/repo/ServiceActionQueueRepository.java @@ -0,0 +1,38 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.sim638.model.ServiceActionQueueItem; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + + +@Repository +public interface ServiceActionQueueRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + List findByOrderByInsertedDate(); +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/repo/ServiceRepository.java b/src/main/java/org/etsi/osl/tmf/sim638/repo/ServiceRepository.java new file mode 100644 index 0000000..bd2cbf0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/repo/ServiceRepository.java @@ -0,0 +1,72 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.sim638.model.Service; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + + +@Repository +public interface ServiceRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + + @Query("SELECT srv FROM Service srv JOIN FETCH srv.relatedParty rp WHERE rp.name = ?1") + Iterable findByRolename(String name); + + @Query("SELECT srv FROM Service srv WHERE ( srv.state != org.etsi.osl.tmf.common.model.service.ServiceStateType.TERMINATED ) AND srv.endDate < CURRENT_TIMESTAMP") + List findActiveToTerminate(); + + @Query("SELECT srv FROM Service srv " + + "JOIN FETCH srv.serviceCharacteristic char " + + "JOIN FETCH char.value val " + + "WHERE char.name = 'DeploymentRequestID' AND " + + " val.value = ?1 " ) + List findByDeploymentRequestID(String aDeploymentRequestID); + + + @Query("SELECT srv FROM Service srv " + + "JOIN FETCH srv.serviceCharacteristic char " + + "JOIN FETCH char.value val " + + "WHERE (srv.state = org.etsi.osl.tmf.common.model.service.ServiceStateType.ACTIVE OR " + + " srv.state = org.etsi.osl.tmf.common.model.service.ServiceStateType.RESERVED OR " + + " srv.state = org.etsi.osl.tmf.common.model.service.ServiceStateType.FEASIBILITYCHECKED) AND " + + "char.name = 'externalPartnerServiceId'" + ) + List findActiveAndReservedServicesOfPartners(); + + @Query("SELECT srv FROM Service srv " + + "JOIN FETCH srv.serviceOrder sorder " + + "WHERE sorder.id = ?1 " ) + List findServicesFromOrderID(String orderid); + + @Query("SELECT srv FROM Service srv " + + "JOIN FETCH srv.supportingResource sres " + + "WHERE sres.id = ?1 " ) + List findServicesHavingThisSupportingResourceID(String resourceID); + +} diff --git a/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java b/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java new file mode 100644 index 0000000..27848a2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java @@ -0,0 +1,1091 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sim638.service; + +import java.io.UnsupportedEncodingException; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.UserPartRoleType; +import org.etsi.osl.tmf.common.model.service.Characteristic; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.common.model.service.Place; +import org.etsi.osl.tmf.common.model.service.ResourceRef; +import org.etsi.osl.tmf.common.model.service.ServiceRef; +import org.etsi.osl.tmf.common.model.service.ServiceRelationship; +import org.etsi.osl.tmf.common.model.service.ServiceStateType; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.ri639.model.Resource; +import org.etsi.osl.tmf.ri639.model.ResourceAttributeValueChangeNotification; +import org.etsi.osl.tmf.ri639.model.ResourceStateChangeNotification; +import org.etsi.osl.tmf.scm633.reposervices.ServiceSpecificationRepoService; +import org.etsi.osl.tmf.sim638.api.ServiceApiRouteBuilderEvents; +import org.etsi.osl.tmf.sim638.model.Service; +import org.etsi.osl.tmf.sim638.model.ServiceActionQueueAction; +import org.etsi.osl.tmf.sim638.model.ServiceActionQueueItem; +import org.etsi.osl.tmf.sim638.model.ServiceAttributeValueChangeEvent; +import org.etsi.osl.tmf.sim638.model.ServiceAttributeValueChangeNotification; +import org.etsi.osl.tmf.sim638.model.ServiceCreate; +import org.etsi.osl.tmf.sim638.model.ServiceCreateEvent; +import org.etsi.osl.tmf.sim638.model.ServiceCreateNotification; +import org.etsi.osl.tmf.sim638.model.ServiceOrderRef; +import org.etsi.osl.tmf.sim638.model.ServiceStateChangeEvent; +import org.etsi.osl.tmf.sim638.model.ServiceStateChangeNotification; +import org.etsi.osl.tmf.sim638.model.ServiceUpdate; +import org.etsi.osl.tmf.sim638.repo.ServiceActionQueueRepository; +import org.etsi.osl.tmf.sim638.repo.ServiceRepository; +import org.etsi.osl.tmf.so641.model.ServiceOrder; +import org.hibernate.Hibernate; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.transform.ResultTransformer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.etsi.osl.model.DeploymentDescriptor; +import org.etsi.osl.model.DeploymentDescriptorVxFInstanceInfo; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + + + +@org.springframework.stereotype.Service +public class ServiceRepoService { + + private static final transient Log logger = LogFactory.getLog(ServiceRepoService.class.getName()); + + @Autowired + ObjectMapper objectMapper; + + @Autowired + ServiceRepository serviceRepo; + + @Autowired + ServiceActionQueueRepository serviceActionQueueRepo; + + @Autowired + ServiceSpecificationRepoService serviceSpecRepoService; + + private SessionFactory sessionFactory; + + @Autowired + ServiceApiRouteBuilderEvents serviceApiRouteBuilder; + + @Autowired + public ServiceRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + public List findAll() { + + return (List) this.serviceRepo.findAll(); + } + + public List findAll(@Valid String fields, Map allParams) + throws UnsupportedEncodingException { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + List alist = null; + try { +// String sql = "SELECT s FROM ServiceSpecification s"; + String sql = "SELECT " + + "srv.uuid as uuid," + + "srv.serviceDate as serviceDate," + + "srv.name as name," + + "srv.startDate as startDate," + + "srv.category as category," + + "srv.state as state," + + "srv.startMode as startMode," + + "srv.serviceType as serviceType," + + "sor.id as serviceOrderId" +// + "rp.uuid as relatedParty_uuid," +// + "rp.name as relatedParty_name" + ; + + if (fields != null) { + String[] field = fields.split(","); + for (String f : field) { + sql += ", srv." + f + " as " + f ; + } + + } + sql += " FROM Service srv " + //+ "JOIN srv.relatedParty rp " + + "JOIN srv.serviceOrder sor "; +// if (allParams.size() > 0) { +// sql += " WHERE rp.role = 'REQUESTER' AND "; +// for (String pname : allParams.keySet()) { +// sql += " " + pname + " LIKE "; +// String pval = URLDecoder.decode(allParams.get(pname), StandardCharsets.UTF_8.toString()); +// sql += "'" + pval + "'"; +// } +// } else { +// sql += " WHERE rp.role = 'REQUESTER' "; +// } + + sql += " ORDER BY srv.startDate DESC"; + + List mapaEntity = session + .createQuery(sql ) + .setResultTransformer( new ResultTransformer() { + + @Override + public Object transformTuple(Object[] tuple, String[] aliases) { + Map result = new LinkedHashMap(tuple.length); + for (int i = 0; i < tuple.length; i++) { + String alias = aliases[i]; + if (alias.equals("uuid")) { + result.put("id", tuple[i]); + } + if (alias.equals("type")) { + alias = "@type"; + } + if (alias.equals("relatedParty_name")) { + if ( result.get( "relatedParty" ) == null ) { + result.put("relatedParty", new ArrayList() ) ; + } + ArrayList< Object> rpList = (ArrayList< Object>) result.get( "relatedParty" ); + LinkedHashMap rp = new LinkedHashMap(); + rp.put("name", tuple[i]); + rp.put("role", "REQUESTER" ); + rpList.add(rp); + } + if (alias.equals("serviceOrderId")) { + if ( result.get( "serviceOrder" ) == null ) { + result.put("serviceOrder", new ArrayList() ) ; + } + ArrayList< Object> rpList = (ArrayList< Object>) result.get( "serviceOrder" ); + LinkedHashMap rp = new LinkedHashMap(); + rp.put("id", tuple[i]); + rpList.add(rp); + } + if (alias != null) { + result.put(alias, tuple[i]); + } + } + + return result; + } + + @Override + public List transformList(List collection) { + return collection; + } + } ) + .list(); + + + +// List mapaEntity = session +// .createQuery(sql ) +// .setResultTransformer( new ResultTransformer() { +// +// @Override +// public ServiceOrder transformTuple(Object[] tuple, String[] aliases) { +// //Map result = new LinkedHashMap(tuple.length); +// ServiceOrder so = new ServiceOrder(); +// so.setUuid( (String) tuple[0] ); +// so.setOrderDate( (OffsetDateTime) tuple[1] ); +// ServiceOrderItem soi = new ServiceOrderItem(); +// so.addOrderItemItem( soi ); +// ServiceRestriction service = new ServiceRestriction(); +// service.setName( (String) tuple[9] ); +// soi.setService(service ); +// +//// for (int i = 0; i < tuple.length; i++) { +//// String alias = aliases[i]; +//// if (alias.equals("type")) { +//// alias = "@type"; +//// } +//// if (alias != null) { +//// result.put(alias, tuple[i]); +//// } +//// } +// +// return so; +// } +// +// @Override +// public List transformList(List collection) { +// return collection; +// } +// } ) +// .list(); + +// //this will fetch the whole object fields +// if ( (( allParams!= null) && ( allParams.size()>0)) ) { +// List resultlist = new ArrayList<>(); +// for (ServiceSpecification s : alist) { +// resultlist.add( findByUuid( s.getUuid() )); +// } +// return resultlist; +// } + + + + return mapaEntity; + + + + + } finally { + tx.commit(); + session.close(); + } + + } + + + public List findAll(String name, UserPartRoleType requester) { + // TODO Auto-generated method stub + return (List) this.serviceRepo.findByRolename(name); + } + + + public Service addService(@Valid ServiceCreate service) { + logger.info("Will add service: " + service.getName() ); + Service s = new Service(); + if (service.getType()!=null) { + s.setType(service.getType()); + } + s.setName(service.getName()); + s.setCategory( service.getCategory() ); + s.setDescription( service.getDescription() ); + s.setStartDate( service.getStartDate()); + s.setEndDate( service.getEndDate() ); + s.hasStarted( service.isHasStarted()); + s.setIsServiceEnabled( service.isIsServiceEnabled()); + s.setIsStateful(service.isIsStateful()); + s.setServiceDate( service.getServiceDate()); + s.setServiceType( service.getServiceType()); + s.setStartMode( service.getStartMode()); + s.setState(service.getState()); + s.setServiceSpecificationRef( service.getServiceSpecificationRef() ); + if ( service.getNote() != null) { + s.getNote().addAll( service.getNote() ); + } + if ( service.getPlace() != null) { + s.getPlace().addAll( service.getPlace() ); + } + + if ( service.getRelatedParty()!=null ) { + s.getRelatedParty().addAll( service.getRelatedParty()); + } + + if ( service.getServiceCharacteristic () != null) { + s.getServiceCharacteristic().addAll( service.getServiceCharacteristic() ); + } + + if ( service.getServiceOrder() != null) { + s.getServiceOrder().addAll( service.getServiceOrder() ); + } + if ( service.getServiceRelationship() != null) { + s.getServiceRelationship().addAll( service.getServiceRelationship() ); + } + if ( service.getSupportingResource() != null) { + s.getSupportingResource().addAll( service.getSupportingResource() ); + } + if ( service.getSupportingService() != null) { + s.getSupportingService().addAll( service.getSupportingService() ); + } + + Note noteItem = new Note(); + noteItem.setText("Service " + s.getState() ); + noteItem.setAuthor("API"); + noteItem.setDate(OffsetDateTime.now(ZoneOffset.UTC) ); + s.addNoteItem(noteItem); + + s = this.serviceRepo.save( s ); + + raiseServiceCreateNotification(s); + return s; + } + + + + public Service findByUuid(String id) { + Optional optionalCat = this.serviceRepo.findByUuid( id ); + return optionalCat + .orElse(null); + } + + @Transactional + public Service updateService(String id, @Valid ServiceUpdate servUpd, boolean propagateToSO, Service updatedFromParentService, Service updatedFromChildService ) { + //Service service = this.findByUuid(id); + Service service = this.getServiceEager(id); + + + if ( service == null ) { + logger.error("Service cannot be found in registry, UUID: " + id ); + return null; + } + + logger.info("Will update service: " + service.getName() ); + //logger.info("Will update service details: " + s.toString() ); + + ObjectMapper mapper = new ObjectMapper(); + String originaServiceAsJson = null; + try { + originaServiceAsJson = mapper.writeValueAsString( service ); + } catch (JsonProcessingException e) { + logger.error("cannot umarshall service: " + service.getName() ); + e.printStackTrace(); + } + + + if (servUpd.getType()!=null) { + service.setType(servUpd.getType()); + } + + if (servUpd.getName() != null ) { + service.setName(servUpd.getName()); + } + + if (servUpd.getCategory() != null ) { + service.setCategory( servUpd.getCategory() ); + } + if (servUpd.getDescription() != null ) { + service.setDescription( servUpd.getDescription() ); + } + if (servUpd.getStartDate() != null ) { + + service.setStartDate( servUpd.getStartDate()); + } + if (servUpd.getEndDate() != null ) { + service.setEndDate( servUpd.getEndDate() ); + } + if (servUpd.isHasStarted() != null ) { + service.hasStarted( servUpd.isHasStarted()); + } + if (servUpd.isIsServiceEnabled() != null ) { + service.setIsServiceEnabled( servUpd.isIsServiceEnabled()); + } + if (servUpd.isIsStateful() != null ) { + service.setIsStateful(servUpd.isIsStateful()); + } + if (servUpd.getServiceDate() != null ) { + service.setServiceDate( servUpd.getServiceDate()); + + } + if (servUpd.getServiceType() != null ) { + service.setServiceType( servUpd.getServiceType()); + + } + if (servUpd.getStartMode() != null ) { + service.setStartMode( servUpd.getStartMode()); + + } + + + boolean stateChanged = false; + ServiceStateType previousState = service.getState(); + if (servUpd.getState() != null ) { + stateChanged = service.getState() != servUpd.getState(); + service.setState(servUpd.getState()); + + } + if (servUpd.getServiceSpecificationRef() != null ) { + + service.setServiceSpecificationRef( servUpd.getServiceSpecificationRef() ); + } + + /** + * the following need to be modified for deleting items from lists. + */ + + if ( servUpd.getNote()!=null ) { + for (Note n : servUpd.getNote()) { + if (n.getUuid() == null) { + service.addNoteItem(n); + } + } + } + + if ( servUpd.getPlace()!=null ) { + for (Place n : servUpd.getPlace()) { + if (n.getUuid() == null) { + service.addPlaceItem(n); + } + } + } + + if ( servUpd.getRelatedParty()!=null ) { + for (RelatedParty n : servUpd.getRelatedParty()) { + if (n.getUuid() == null) { + service.addRelatedPartyItem(n); + } + } + } + + boolean serviceCharacteristicChanged = false; + boolean serviceCharacteristicChangedContainsPrimitive = false; + + String charChangedForNotes = ""; + List childCharacteristicsChanged = new ArrayList<>(); + + + //logger.info("==> Will update serviceToString: " + service.toString() ); + + + if ( servUpd.getServiceCharacteristic()!=null ) { + for (Characteristic n : servUpd.getServiceCharacteristic()) { + + if ( service.getServiceCharacteristicByName( n.getName() )!= null ) { + + Characteristic origChar = service.getServiceCharacteristicByName( n.getName() ); + if ( ( origChar !=null ) && ( origChar.getValue() !=null ) && ( origChar.getValue().getValue() !=null )) { + if ( !origChar.getValue().getValue().equals(n.getValue().getValue()) ) { + if ( n.getName().contains("::") ) { + childCharacteristicsChanged.add(n); //the characteristic needs later to be propagated to its children + + } + serviceCharacteristicChanged = true; //change only characteristics of this service + charChangedForNotes += n.getName(); + if ( n.getName().toUpperCase().contains( "PRIMITIVE::" ) ){ + serviceCharacteristicChangedContainsPrimitive = true; + } + + } + } + + service.getServiceCharacteristicByName( n.getName() ).setValue( + new Any( n.getValue().getValue(), n.getValue().getAlias() ) + ); + } else { + service.addServiceCharacteristicItem(n); + serviceCharacteristicChanged = true; + charChangedForNotes += n.getName() + ", "; + } + + } + } + + if ( servUpd.getServiceOrder()!=null ) { + for (ServiceOrderRef n : servUpd.getServiceOrder()) { + if (n.getUuid() == null) { + service.addServiceOrderItem(n); + } + } + } + + if ( servUpd.getServiceRelationship()!=null ) { + for (ServiceRelationship n : servUpd.getServiceRelationship()) { + if (n.getUuid() == null) { + service.addServiceRelationshipItem(n); + } + } + } + if ( servUpd.getSupportingResource()!=null ) { + for (ResourceRef n : servUpd.getSupportingResource()) { + if (n.getUuid() == null) { + service.addSupportingResourceItem(n); + } + } + } + if ( servUpd.getSupportingService()!=null ) { + for (ServiceRef n : servUpd.getSupportingService()) { + if (n.getUuid() == null) { + service.addSupportingServiceItem(n); + } + } + //prepei na enimerwsoume ta characteristics edw sto parent servcie pou exei auto ws supported + } + + + if (stateChanged) { + Note noteItem = new Note(); + noteItem.setText("Service is " + service.getState() ); + noteItem.setAuthor("API"); + noteItem.setDate(OffsetDateTime.now(ZoneOffset.UTC) ); + service.addNoteItem(noteItem); + } + + if (serviceCharacteristicChanged) { + Note noteItem = new Note(); + noteItem.setText("Service Characteristic changed: " + charChangedForNotes ); + noteItem.setAuthor("API"); + noteItem.setDate(OffsetDateTime.now(ZoneOffset.UTC) ); + service.addNoteItem(noteItem); + } + + + + service = this.serviceRepo.save( service ); + + + + /** + * Save in ServiceActionQueueItem + */ + + if (propagateToSO && stateChanged) { + ServiceActionQueueItem saqi = new ServiceActionQueueItem(); + saqi.setServiceRefId( id ); + saqi.setOriginalServiceInJSON( originaServiceAsJson ); + if (stateChanged) { + if ( service.getState().equals( ServiceStateType.INACTIVE) ) { + saqi.setAction( ServiceActionQueueAction.DEACTIVATE ); + }else if ( service.getState().equals( ServiceStateType.TERMINATED) ) { + saqi.setAction( ServiceActionQueueAction.TERMINATE ); + } + + } + + if ( saqi.getAction() != ServiceActionQueueAction.NONE ) { + this.addServiceActionQueueItem(saqi); + } + } + + +// //here on any state change of a Service we must send an ActionQueueItem that reflects the state changed with the Action + if ( stateChanged ) { + ServiceActionQueueItem saqi = new ServiceActionQueueItem(); + saqi.setServiceRefId( id ); + saqi.setOriginalServiceInJSON( originaServiceAsJson ); + if ( service.getState().equals( ServiceStateType.ACTIVE) ) { + saqi.setAction( ServiceActionQueueAction.EVALUATE_STATE_CHANGE_TOACTIVE ); + this.addServiceActionQueueItem(saqi); + }else if ( previousState!=null && previousState.equals( ServiceStateType.ACTIVE) ) { + saqi.setAction( ServiceActionQueueAction.EVALUATE_STATE_CHANGE_TOINACTIVE ); + this.addServiceActionQueueItem(saqi); + } + } + + if ( serviceCharacteristicChanged && service.getState().equals( ServiceStateType.ACTIVE) && previousState!=null && previousState.equals( ServiceStateType.ACTIVE) ) { + ServiceActionQueueItem saqi = new ServiceActionQueueItem(); + saqi.setServiceRefId( id ); + saqi.setOriginalServiceInJSON( originaServiceAsJson ); + saqi.setAction( ServiceActionQueueAction.EVALUATE_CHARACTERISTIC_CHANGED ); + if ( serviceCharacteristicChangedContainsPrimitive ) { + saqi.setAction( ServiceActionQueueAction.EVALUATE_CHARACTERISTIC_CHANGED_MANODAY2 ); + } + + + + this.addServiceActionQueueItem(saqi); + + /* + * Update any parent service + */ + for (ServiceRelationship serviceRelationship : service.getServiceRelationship()) { + if ( serviceRelationship.getRelationshipType().equals("ChildService") ) { + if ( serviceRelationship.getService() != null ) { + if ( updatedFromParentService == null || + (updatedFromParentService!=null && !updatedFromParentService.getId().equals(serviceRelationship.getService().getId())) ) { //avoid circular + propagateCharacteristicsToParentService(service, serviceRelationship.getService().getId()); + } + + } + } + } + } + + if ( childCharacteristicsChanged.size()>0 ) { + if ( service.getSupportingService() != null ) { //propagate to children + //copy characteristics values from CFS Service to its supporting services. + for (ServiceRef sref : service.getSupportingService() ) { + Service aSupportingService = this.findByUuid( sref.getId() ); + ServiceUpdate supd = new ServiceUpdate(); + boolean foundCharacteristicForChild = false; + for (Characteristic supportingServiceChar : aSupportingService.getServiceCharacteristic() ) { + + for (Characteristic serviceCharacteristic : childCharacteristicsChanged ) { + if ( serviceCharacteristic.getName().contains( aSupportingService.getName() + "::" + supportingServiceChar.getName() )) { + //supportingServiceChar.setValue( serviceCharacteristic.getValue() ); + Characteristic cNew = new Characteristic(); + cNew.setName(supportingServiceChar.getName()); + cNew.value( new Any( serviceCharacteristic.getValue() )); + supd.addServiceCharacteristicItem( cNew ); + foundCharacteristicForChild = true; + } + } + } + + if ( foundCharacteristicForChild ) { + Note n = new Note(); + n.setText("Child Characteristics Changed" ); + n.setAuthor( "SIM638-API" ); + n.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() ); + supd.addNoteItem( n ); + if ( updatedFromChildService == null || + (updatedFromChildService!=null && !updatedFromChildService.getId().equals( aSupportingService.getId())) ) { //avoid circular + this.updateService( aSupportingService.getId(), supd , false, service, null); //update the service + } + } + } + + } + } + + + + /** + * notify hub + */ + if (stateChanged) { + raiseServiceStateChangedNotification( service ); + } else if ( serviceCharacteristicChanged ) { + raiseServiceAttributeValueChangedNotification( service ); + } + + + Characteristic schart = service.getServiceCharacteristicByName("long_string"); + + if ( schart!= null ) { + String teest = schart.getValue().getValue(); + logger.info("schart size = " + teest.length() ); + + logger.info("schart " + teest ); + System.out.println("The value is : \n " + teest); +// try (PrintWriter out = new PrintWriter("C:\\tranoris\\ctranup\\personal\\Invoices\\filename.txt")) { +// out.println( teest ); +// } catch (FileNotFoundException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } + logger.info("======================================================================================================"); + } + + return service; + } + + /** + * @param service + * @param parentService + */ + private void propagateCharacteristicsToParentService(Service childService, String parentServiceId) { + + ServiceUpdate servUpd = new ServiceUpdate(); + + for (Characteristic n : childService.getServiceCharacteristic()) { + Characteristic serviceCharacteristicItem = new Characteristic(); + serviceCharacteristicItem.setName( childService.getName() + "::" + n.getName()); + serviceCharacteristicItem.setValue( new Any( n.getValue() )); + servUpd.addServiceCharacteristicItem(serviceCharacteristicItem); + } + + this.updateService( parentServiceId, servUpd, false, null, childService); + } + + public String getServiceEagerAsString(String id) throws JsonProcessingException { + Service s = this.getServiceEager(id); + ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new Hibernate5JakartaModule()); + String res = mapper.writeValueAsString(s); + + + Characteristic schart = s.getServiceCharacteristicByName("long_string"); + + if ( schart!= null ) { + String teest = schart.getValue().getValue(); + logger.info("schart size = " + teest.length() ); + + logger.info("schart " + teest ); + logger.info("======================================================================================================"); + } + + return res; + } + + public Service getServiceEager(String id) { + if ( id == null || id.equals("")) { + return null; + } + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + Service s = null; + try { + s = (Service) session.get(Service.class, id); + if (s == null) { + return this.findByUuid(id);// last resort + } + + Hibernate.initialize(s.getRelatedParty()); + Hibernate.initialize(s.getNote() ); + Hibernate.initialize(s.getServiceCharacteristic() ); + Hibernate.initialize(s.getServiceOrder() ); + Hibernate.initialize(s.getServiceRelationship() ); + Hibernate.initialize(s.getServiceSpecificationRef() ); + Hibernate.initialize(s.getSupportingService() ); + Hibernate.initialize(s.getSupportingResource() ); + Hibernate.initialize(s.getPlace() ); + + tx.commit(); + } finally { + session.close(); + } + + return s; + } + + + @Transactional + private void raiseServiceCreateNotification(Service so) { + ServiceCreateNotification n = new ServiceCreateNotification(); + ServiceCreateEvent event = new ServiceCreateEvent(); + event.service( so ); + n.setEvent(event ); + serviceApiRouteBuilder.publishEvent(n, so.getId()); + + } + + @Transactional + private void raiseServiceStateChangedNotification(Service so) { + ServiceStateChangeNotification n = new ServiceStateChangeNotification(); + ServiceStateChangeEvent event = new ServiceStateChangeEvent(); + event.service( so ); + n.setEvent(event ); + serviceApiRouteBuilder.publishEvent(n, so.getId()); + + } + + @Transactional + private void raiseServiceAttributeValueChangedNotification(Service so) { + ServiceAttributeValueChangeNotification n = new ServiceAttributeValueChangeNotification(); + ServiceAttributeValueChangeEvent event = new ServiceAttributeValueChangeEvent(); + event.service( so ); + n.setEvent(event ); + serviceApiRouteBuilder.publishEvent(n, so.getId()); + + } + + + /** + * @return + */ + public List findAllServiceActionQueueItems() { + + return (List) this.serviceActionQueueRepo.findByOrderByInsertedDate(); + } + + public ServiceActionQueueItem addServiceActionQueueItem(@Valid ServiceActionQueueItem item) { + logger.debug("Will add ServiceActionQueueItem ServiceRefId: " + item.getServiceRefId() ); + return this.serviceActionQueueRepo.save( item); + } + + /** + * @param item + * @return + */ + @Transactional + public ServiceActionQueueItem updateServiceActionQueueItem(@Valid ServiceActionQueueItem item) { + logger.debug("Will update ServiceActionQueueItem ServiceRefId: " + item.getServiceRefId() ); + return this.serviceActionQueueRepo.save( item); + } + + /** + * @param id + * @return + */ + public Void deleteServiceActionQueueItemByUuid(String id) { + + Optional optso = this.serviceActionQueueRepo.findByUuid(id); + if ( optso.isEmpty() ) { + return null; + } + ServiceActionQueueItem so = optso.get(); + if ( so == null ) { + return null; + } + + this.serviceActionQueueRepo.delete(so); + return null; + } + + + + @Transactional + public List findAllActiveServicesToTerminate(){ + + List result = new ArrayList<>(); + List srvs = this.serviceRepo.findActiveToTerminate(); + for (Service service : srvs) { + result.add( service.getId()); + } + + return result; + } + + /** + * @return UUIDs of Services and put them in a List + */ + @Transactional + public List findAllActiveAndReservedServicesOfPartners(){ + + List result = new ArrayList<>(); + List srvs = this.serviceRepo.findActiveAndReservedServicesOfPartners(); + for (Service service : srvs) { + result.add( service.getId()); + } + + return result; + } + + + + /** + * Given a DeploymentRequestID (which is provided by OSM in our case) + * we locate the equivalent service + * @param aDeploymentRequestID + * @return + */ + @Transactional + public List findDeploymentRequestID( String aDeploymentRequestID){ + + return (List) this.serviceRepo.findByDeploymentRequestID( aDeploymentRequestID ); + + } + + + /** + * Given a Resource (which for example might be provided by a CR update from a cluster ) + * we locate the equivalent services + * @param resourceID + * @return + */ + @Transactional + public List findServicesHavingThisSupportingResourceID( String resourceID){ + + return (List) this.serviceRepo.findServicesHavingThisSupportingResourceID( resourceID ); + + } + + + + /** + * @param item + * @return + */ + @Transactional + public void nfvCatalogNSResourceChanged(@Valid DeploymentDescriptor dd) { + String deploymentRequestID = dd.getId() + ""; + logger.info("Will update nfvCatalogNSResourceChanged for deploymentRequestID = " + deploymentRequestID ); + + var aservices = findDeploymentRequestID( deploymentRequestID ); + for (Service as : aservices) { + + Service aService = findByUuid(as.getId()); + + if ( aService.getState().equals( ServiceStateType.ACTIVE ) ) { + + + ServiceUpdate supd = new ServiceUpdate(); + + Characteristic cNewLCM = new Characteristic(); + cNewLCM.setName("NSLCM" ); + cNewLCM.value( new Any( dd.getNs_nslcm_details() )); + supd.addServiceCharacteristicItem( cNewLCM ); + + Characteristic cNewNSR = new Characteristic(); + //cNewNSR.setUuid(null); + cNewNSR.setName("NSR" ); + cNewNSR.value( new Any( dd.getNsr() )); + supd.addServiceCharacteristicItem( cNewNSR ); + + + + if ( dd.getDeploymentDescriptorVxFInstanceInfo() !=null ) { + for ( DeploymentDescriptorVxFInstanceInfo vnfinfo : dd.getDeploymentDescriptorVxFInstanceInfo() ) { + Characteristic cNewMember = new Characteristic(); + cNewMember.setName( "VNFINDEXREF_INFO_" + vnfinfo.getMemberVnfIndexRef() ); + cNewMember.value( new Any( vnfinfo.getVxfInstanceInfo() + "" )); + supd.addServiceCharacteristicItem( cNewMember ); + } + } + + Note n = new Note(); + n.setText("NS Resource LCM Changed" ); + n.setAuthor( "SIM638-API" ); + n.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() ); + supd.addNoteItem( n ); + + this.updateService( aService.getId(), supd , true, null, null); //update the service + } + } + } + + + @Transactional + public List getServicesFromOrderID(String orderid){ + + List result = new ArrayList<>(); + List srvs = this.serviceRepo.findServicesFromOrderID( orderid ); + for (Service service : srvs) { + result.add( service.getId()); + } + + return result; + } + + + @Transactional + public void resourceAttrChangedEvent(@Valid ResourceAttributeValueChangeNotification resNotif) { + + logger.debug("ResourceAttributeValueChangeNotification"); + Resource res = resNotif.getEvent().getEvent().getResource(); + logger.info("Will update services related to this resource with id = " + res.getId() ); + + var aservices = findServicesHavingThisSupportingResourceID( res.getId() ); + + for (Service as : aservices) { + + Service aService = findByUuid(as.getId()); + + //if ( aService.getState().equals( ServiceStateType.ACTIVE ) ) { + + + ServiceUpdate supd = new ServiceUpdate(); + + //copy characteristics from resource to service + + for (org.etsi.osl.tmf.ri639.model.Characteristic rChar : res.getResourceCharacteristic()) { + Characteristic cNew = new Characteristic(); + cNew.setName( rChar.getName()); + cNew.value( new Any( rChar.getValue() )); + supd.addServiceCharacteristicItem( cNew ); + } + + + Note n = new Note(); + n.setText("Supporting Resource Attribute Changed with id: " + res.getId()); + n.setAuthor( "SIM638-API" ); + n.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() ); + supd.addNoteItem( n ); + + this.updateService( aService.getId(), supd , true, null, null); //update the service + //} + } + } + + + @Transactional + public void resourceStateChangedEvent(@Valid ResourceStateChangeNotification resNotif) { + + logger.debug("ResourceAttributeValueChangeNotification"); + Resource res = resNotif.getEvent().getEvent().getResource(); + logger.info("Will update services related to this resource with id = " + res.getId() ); + + var aservices = findServicesHavingThisSupportingResourceID( res.getId() ); + + for (Service as : aservices) { + ServiceUpdate supd = new ServiceUpdate(); + + Service aService = findByUuid(as.getId()); + + //if ( aService.getState().equals( ServiceStateType.ACTIVE ) ) { + if ( res.getResourceStatus() != null ) { + switch (res.getResourceStatus()) { + case STANDBY: { + supd.setState( ServiceStateType.RESERVED); + break; + } + case SUSPENDED: { + supd.setState( ServiceStateType.INACTIVE); + break; + } + case RESERVED: { + supd.setState( ServiceStateType.RESERVED); + break; + } + case UNKNOWN: { + if (aService.getState().equals( ServiceStateType.ACTIVE )) { + supd.setState( ServiceStateType.TERMINATED); + } + break; + } + case ALARM: { + supd.setState( ServiceStateType.INACTIVE); + break; + } + default: + break; + } + } + + + Note n = new Note(); + n.setText("Supporting Resource "+ res.getId() + " State Changed with status: " + res.getResourceStatus()); + n.setAuthor( "SIM638-API" ); + n.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() ); + supd.addNoteItem( n ); + + this.updateService( aService.getId(), supd , true, null, null); //update the service + //} //if ( aService.getState().equals( ServiceStateType.ACTIVE ) ) { + } + + + updateResourceFromKubernetesLabel( res ); + + + } + + private void updateResourceFromKubernetesLabel(Resource res) { + if (res.getResourceCharacteristicByName("org.etsi.osl.serviceId") != null) { + String serviceId = res.getResourceCharacteristicByName("org.etsi.osl.serviceId").getValue().getValue(); + Service aService = findByUuid( serviceId ); + if ( aService !=null ) { + Boolean resourceFoundInSupportedResourcesOfService = false; + for (ResourceRef as : aService.getSupportingResource()) { + if ( as.getId().equals( res.getId() )) { + resourceFoundInSupportedResourcesOfService = true; + break; + } + } + + if ( !resourceFoundInSupportedResourcesOfService ) { + ServiceUpdate supd = new ServiceUpdate(); + + ResourceRef rref = new ResourceRef(); + rref.id(res.getId()).name(res.getName()); + supd.addSupportingResourceItem(rref ); + + Note n = new Note(); + n.setText("Supporting Resource "+ res.getId() + " Added in service" ); + n.setAuthor( "SIM638-API" ); + n.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() ); + supd.addNoteItem( n ); + + this.updateService( aService.getId(), supd , true, null, null); //update the service + + } + + } + + } + + } + + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/api/ApiException.java b/src/main/java/org/etsi/osl/tmf/so641/api/ApiException.java new file mode 100644 index 0000000..eb32300 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/api/ApiException.java @@ -0,0 +1,30 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/api/ApiOriginFilter.java b/src/main/java/org/etsi/osl/tmf/so641/api/ApiOriginFilter.java new file mode 100644 index 0000000..8487180 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/api/ApiOriginFilter.java @@ -0,0 +1,51 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.api; + +import java.io.IOException; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +public class ApiOriginFilter implements jakarta.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/api/ApiResponseMessage.java b/src/main/java/org/etsi/osl/tmf/so641/api/ApiResponseMessage.java new file mode 100644 index 0000000..8f9b969 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/api/ApiResponseMessage.java @@ -0,0 +1,89 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.api; + +import jakarta.xml.bind.annotation.XmlTransient; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +@jakarta.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/so641/api/HubApi.java new file mode 100644 index 0000000..b789233 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/api/HubApi.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.so641.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.so641.model.EventSubscription; +import org.etsi.osl.tmf.so641.model.EventSubscriptionInput; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +@Tag(name = "hub", description = "the hub API") +public interface HubApi { + + Logger log = LoggerFactory.getLogger(HubApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Register a listener", operationId = "registerListener", description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Subscribed" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Unregister a listener", operationId = "unregisterListener", description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method not allowed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/so641/api/HubApiController.java new file mode 100644 index 0000000..d2ad0b1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/api/HubApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +@Controller("HubApiController641") +@RequestMapping("/serviceOrdering/v4/") +public class HubApiController implements HubApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public HubApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/api/ListenerApi.java b/src/main/java/org/etsi/osl/tmf/so641/api/ListenerApi.java new file mode 100644 index 0000000..558fcf3 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/api/ListenerApi.java @@ -0,0 +1,192 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.so641.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.so641.model.EventSubscription; +import org.etsi.osl.tmf.so641.model.ServiceOrderAttributeValueChangeNotification; +import org.etsi.osl.tmf.so641.model.ServiceOrderCreateNotification; +import org.etsi.osl.tmf.so641.model.ServiceOrderDeleteNotification; +import org.etsi.osl.tmf.so641.model.ServiceOrderStateChangeNotification; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +@Tag(name = "listener", description = "the listener API") +public interface ListenerApi { + + Logger log = LoggerFactory.getLogger(ListenerApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Client listener for entity ServiceOrderAttributeValueChangeNotification", operationId = "listenToServiceOrderAttributeValueChangeNotification", description = "Example of a client listener for receiving the notification ServiceOrderAttributeValueChangeNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceOrderAttributeValueChangeNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceOrderAttributeValueChangeNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceOrderAttributeValueChangeNotification data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ServiceOrderCreateNotification", operationId = "listenToServiceOrderCreateNotification", description = "Example of a client listener for receiving the notification ServiceOrderCreateNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceOrderCreateNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceOrderCreateNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceOrderCreateNotification data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ServiceOrderDeleteNotification", operationId = "listenToServiceOrderDeleteNotification", description = "Example of a client listener for receiving the notification ServiceOrderDeleteNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceOrderDeleteNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceOrderDeleteNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceOrderDeleteNotification data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ServiceOrderStateChangeNotification", operationId = "listenToServiceOrderStateChangeNotification", description = "Example of a client listener for receiving the notification ServiceOrderStateChangeNotification", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceOrderStateChangeNotification", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceOrderStateChangeNotification(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceOrderStateChangeNotification data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/api/ListenerApiController.java b/src/main/java/org/etsi/osl/tmf/so641/api/ListenerApiController.java new file mode 100644 index 0000000..fade142 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/api/ListenerApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +@Controller("ListenerApiController641") +@RequestMapping("/serviceOrdering/v4/") +public class ListenerApiController implements ListenerApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ListenerApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/api/NotFoundException.java b/src/main/java/org/etsi/osl/tmf/so641/api/NotFoundException.java new file mode 100644 index 0000000..e5631b7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/api/NotFoundException.java @@ -0,0 +1,30 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +public class NotFoundException extends ApiException { + private int code; + public NotFoundException (int code, String msg) { + super(code, msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/api/ServiceOrderApi.java b/src/main/java/org/etsi/osl/tmf/so641/api/ServiceOrderApi.java new file mode 100644 index 0000000..8ad172a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/api/ServiceOrderApi.java @@ -0,0 +1,224 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.so641.api; + +import java.security.Principal; +import java.util.Date; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.so641.model.ServiceOrder; +import org.etsi.osl.tmf.so641.model.ServiceOrderCreate; +import org.etsi.osl.tmf.so641.model.ServiceOrderUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +@Tag(name = "serviceOrder", description = "the serviceOrder API") +public interface ServiceOrderApi { + + Logger log = LoggerFactory.getLogger(ServiceOrderApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a ServiceOrder", operationId = "createServiceOrder", description = "This operation creates a ServiceOrder entity.", tags={ "serviceOrder", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceOrder", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createServiceOrder( + Principal principal, + @Parameter(description = "The ServiceOrder to be created" ,required=true ) @Valid @RequestBody ServiceOrderCreate serviceOrder) { + + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a ServiceOrder", operationId = "deleteServiceOrder", description = "This operation deletes a ServiceOrder entity.", tags={ "serviceOrder", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceOrder/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteServiceOrder( + Principal principal, + @Parameter(description = "Identifier of the ServiceOrder",required=true) @PathVariable("id") String id) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find ServiceOrder objects", operationId = "listServiceOrder", description = "This operation list or find ServiceOrder entities" , tags={ "serviceOrder", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceOrder", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listServiceOrder( + Principal principal, + @Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit, + @Parameter(description = "Requested starttime for start of resources to be provided in response") @Valid @RequestParam(value = "starttime", required = false) @DateTimeFormat(pattern="yyyy-MM-dd'T'HH:mm:ss") Date starttime, + @Parameter(description = "Requested endtime for start of resources to be provided in response") @Valid @RequestParam(value = "endtime", required = false) @DateTimeFormat(pattern="yyyy-MM-dd'T'HH:mm:ss") Date endtime + ) { + + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a ServiceOrder", operationId = "patchServiceOrder", description = "This operation updates partially a ServiceOrder entity.", tags={ "serviceOrder", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceOrder/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchServiceOrder( + Principal principal, + @Parameter(description = "Identifier of the ServiceOrder",required=true) @PathVariable("id") String id,@Parameter(description = "The ServiceOrder to be updated" ,required=true ) @Valid @RequestBody ServiceOrderUpdate serviceOrder) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a ServiceOrder by ID", operationId = "retrieveServiceOrder", description = "This operation retrieves a ServiceOrder entity. Attribute selection is enabled for all first level attributes.", tags={ "serviceOrder", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceOrder/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveServiceOrder( + Principal principal, + @Parameter(description = "Identifier of the ServiceOrder",required=true) @PathVariable("id") String id, + @Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + + @Operation(summary = "Get a SVG image with service order item services relationship graph", operationId = "getImageServiceOrderItemRelationshipGraph", + description = "This operation returns a SVG image with service order item services relationship graph", tags={ "serviceOrder", }) + @ApiResponses(value = { + + @ApiResponse(responseCode = "302", description = "Success" ), + //@ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value ="/serviceOrder/{id}/item/{itemid}/relationship_graph", + produces = MediaType.ALL_VALUE , + method = RequestMethod.GET) + ResponseEntity getImageServiceOrderItemRelationshipGraph( + @Parameter(description = "Identifier of the ServiceOrder",required=true) @PathVariable("id") String id, + @Parameter(description = "Identifier of the ServiceOrderItem",required=true) @PathVariable("itemid") String itemid); + + + @Operation(summary = "Get a SVG image with service order notes activity graph", operationId = "getImageServiceOrderNotesGraph", + description = "This operation returns a SVG image with service order notes activity graph", tags={ "serviceOrder", }) + @ApiResponses(value = { + + @ApiResponse(responseCode = "302", description = "Success" ), + //@ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value ="/serviceOrder/{id}/notes_graph", + produces = MediaType.ALL_VALUE , + method = RequestMethod.GET) + ResponseEntity getImageServiceOrderNotesGraph( + @Parameter(description = "Identifier of the ServiceOrder",required=true) @PathVariable("id") String id); + +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/api/ServiceOrderApiController.java b/src/main/java/org/etsi/osl/tmf/so641/api/ServiceOrderApiController.java new file mode 100644 index 0000000..7f1c2e8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/api/ServiceOrderApiController.java @@ -0,0 +1,255 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.api; + +import java.net.URI; +import java.security.Principal; +import java.util.Date; +import java.util.HashMap; +import java.util.List; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.common.model.UserPartRoleType; +import org.etsi.osl.tmf.so641.model.ServiceOrder; +import org.etsi.osl.tmf.so641.model.ServiceOrderCreate; +import org.etsi.osl.tmf.so641.model.ServiceOrderUpdate; +import org.etsi.osl.tmf.so641.reposervices.ServiceOrderRepoService; +import org.etsi.osl.tmf.util.AddUserAsOwnerToRelatedParties; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.oauth2.jwt.Jwt; +import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import org.etsi.osl.model.UserRoleType; +import io.swagger.v3.oas.annotations.Parameter; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +@Controller +@RequestMapping("/serviceOrdering/v4/") +public class ServiceOrderApiController implements ServiceOrderApi { + + private static final Logger log = LoggerFactory.getLogger(ServiceOrderApiController.class); + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + + + @Value("${kroki.serverurl}") + private String KROKI_SERVERURL = ""; + + @Autowired + ServiceOrderRepoService serviceOrderRepoService; + + @Autowired + ServiceOrderApiRouteBuilder serviceOrderApiRouteBuilder; + + @org.springframework.beans.factory.annotation.Autowired + public ServiceOrderApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity createServiceOrder( + Principal principal, + @Parameter(description = "The ServiceOrder to be created", required = true) @Valid @RequestBody ServiceOrderCreate serviceOrder + ) { + + try { + //Object attr = request.getSession().getAttribute("SPRING_SECURITY_CONTEXT"); + //SecurityContextHolder.setContext( (SecurityContext) attr ); + + + log.info("authentication= " + principal.toString()); + String extInfo = null; + try { + + + if ( principal instanceof JwtAuthenticationToken) { + + JwtAuthenticationToken pr = ( JwtAuthenticationToken ) principal; + + Jwt lp = (Jwt) pr.getPrincipal(); + extInfo = lp.getClaimAsString("email"); + log.debug("extInfo= " + extInfo); + + serviceOrder.setRelatedParty(AddUserAsOwnerToRelatedParties.addUser( + principal.getName(), + //user.getId()+"", + principal.getName(), + UserPartRoleType.REQUESTER, + extInfo, + serviceOrder.getRelatedParty())); + } + else if ( principal instanceof UsernamePasswordAuthenticationToken ) { + serviceOrder.setRelatedParty(AddUserAsOwnerToRelatedParties.addUser( + principal.getName(), + //user.getId()+"", + principal.getName(), + UserPartRoleType.REQUESTER, + extInfo, + serviceOrder.getRelatedParty())); + } + + + }finally { + + } + + + + + + + ServiceOrder c = serviceOrderRepoService.addServiceOrder(serviceOrder); + + return new ResponseEntity(c, HttpStatus.OK); + + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity deleteServiceOrder( + Principal principal, + @Parameter(description = "Identifier of the ServiceOrder", required = true) @PathVariable("id") String id) { + + + try { + return new ResponseEntity( serviceOrderRepoService.deleteByUuid(id), HttpStatus.OK); + }catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity> listServiceOrder( + Principal principal, + @Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit, + @Parameter(description = "Requested starttime for start of resources to be provided in response") @Valid @RequestParam(value = "starttime", required = false) Date starttime, + @Parameter(description = "Requested endtime for start of resources to be provided in response") @Valid @RequestParam(value = "endtime", required = false) Date endtime ) { + + + try { +// Object attr = request.getSession().getAttribute("SPRING_SECURITY_CONTEXT"); +// SecurityContextHolder.setContext( (SecurityContext) attr ); + + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + log.debug("principal= " + principal.toString()); + + log.debug("principal ROLE_ADMIN = " + authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_ADMIN.getValue() ) )); + log.debug("principal ROLE_NFV_DEVELOPER = " + authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_NFV_DEVELOPER.getValue() ) )); + log.debug("principal ROLE_EXPERIMENTER = " + authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_EXPERIMENTER.getValue() ) )); + + if ( authentication.getAuthorities().contains( new SimpleGrantedAuthority( UserRoleType.ROLE_ADMIN.getValue() ) ) ) { + + return new ResponseEntity>(serviceOrderRepoService.findAll( fields, new HashMap<>(), starttime, endtime), HttpStatus.OK); + }else { + return new ResponseEntity>(serviceOrderRepoService.findAll( + principal.getName(), + UserPartRoleType.REQUESTER), HttpStatus.OK); + } + + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity patchServiceOrder( + Principal principal, + @Parameter(description = "Identifier of the ServiceOrder", required = true) @PathVariable("id") String id, + @Parameter(description = "The ServiceOrder to be updated", required = true) @Valid @RequestBody ServiceOrderUpdate serviceOrder) { + ServiceOrder c = serviceOrderRepoService.updateServiceOrder(id, serviceOrder); + + return new ResponseEntity(c, HttpStatus.OK); + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity retrieveServiceOrder( + Principal principal, + @Parameter(description = "Identifier of the ServiceOrder", required = true) @PathVariable("id") String id, + @Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + + try { + + return new ResponseEntity( serviceOrderRepoService.findByUuid( id ), HttpStatus.OK); + } catch ( Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity getImageServiceOrderItemRelationshipGraph(String id, String itemid) { + String encodedDiagram = serviceOrderRepoService.getImageServiceOrderItemRelationshipGraph(id, itemid); + + //consider redirect to kroki..id + return ResponseEntity + .status(HttpStatus.FOUND) + .location(URI.create(KROKI_SERVERURL + "/blockdiag/svg/" + encodedDiagram)) + .build(); + //return null; + } + + @Override + public ResponseEntity getImageServiceOrderNotesGraph(String id) { + String encodedDiagram = serviceOrderRepoService.getImageServiceOrderNotesGraph(id); + + //consider redirect to kroki..id + return ResponseEntity + .status(HttpStatus.FOUND) + .location(URI.create(KROKI_SERVERURL + "/actdiag/svg/" + encodedDiagram)) + .build(); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/api/ServiceOrderApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/so641/api/ServiceOrderApiRouteBuilder.java new file mode 100644 index 0000000..f0a02d8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/api/ServiceOrderApiRouteBuilder.java @@ -0,0 +1,172 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.api; + +import java.io.IOException; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.camel.LoggingLevel; +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.model.dataformat.JsonLibrary; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.centrallog.client.CentralLogger; +import org.etsi.osl.tmf.so641.model.ServiceOrderCreate; +import org.etsi.osl.tmf.so641.model.ServiceOrderUpdate; +import org.etsi.osl.tmf.so641.reposervices.ServiceOrderRepoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; +import org.etsi.osl.model.PortalUser; + +@Configuration +//@RefreshScope +@Component +public class ServiceOrderApiRouteBuilder extends RouteBuilder { + + private static final transient Log logger = LogFactory.getLog(ServiceOrderApiRouteBuilder.class.getName()); + + @Value("${CATALOG_GET_SERVICEORDER_BY_ID}") + private String CATALOG_GET_SERVICEORDER_BY_ID = ""; + + @Value("${CATALOG_GET_SERVICEORDERS}") + private String CATALOG_GET_SERVICEORDERS = ""; + + @Value("${CATALOG_GET_INITIAL_SERVICEORDERS_IDS}") + private String CATALOG_GET_INITIAL_SERVICEORDERS_IDS = ""; + + @Value("${CATALOG_GET_SERVICEORDER_IDS_BY_STATE}") + private String CATALOG_GET_SERVICEORDER_IDS_BY_STATE = ""; + + @Value("${CATALOG_UPD_SERVICEORDER_BY_ID}") + private String CATALOG_UPD_SERVICEORDER_BY_ID = ""; + + @Value("${CATALOG_ADD_SERVICEORDER}") + private String CATALOG_ADD_SERVICEORDER = ""; + + + + @Value("${GET_USER_BY_USERNAME}") + private String GET_USER_BY_USERNAME = ""; + + + @Value("${spring.application.name}") + private String compname; + + @Autowired + private ProducerTemplate template; + + @Autowired + ServiceOrderRepoService serviceOrderRepoService; + + @Autowired + private CentralLogger centralLogger; + + @Override + public void configure() throws Exception { + + from(CATALOG_GET_SERVICEORDERS).log(LoggingLevel.INFO, log, CATALOG_GET_SERVICEORDERS + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean(serviceOrderRepoService, "findAllParamsJsonOrderIDs").convertBodyTo(String.class); + +// final Map propertiesMap = new HashMap(); +// propertiesMap.put("state", "INITIAL"); +// logger.info( "propertiesMap.toString() = " + propertiesMap.toString() ); + + from(CATALOG_GET_INITIAL_SERVICEORDERS_IDS) + .log(LoggingLevel.INFO, log, CATALOG_GET_INITIAL_SERVICEORDERS_IDS + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true").setBody(constant("{\"state\":\"INITIAL\"}")).unmarshal() + .json(JsonLibrary.Jackson, Map.class, true).bean(serviceOrderRepoService, "findAllParamsJsonOrderIDs") + .convertBodyTo(String.class); + + from(CATALOG_GET_SERVICEORDER_IDS_BY_STATE) + .log(LoggingLevel.INFO, log, CATALOG_GET_SERVICEORDER_IDS_BY_STATE + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true").setBody(simple("{\"state\":\"${header.orderstate}\"}")) + .unmarshal().json(JsonLibrary.Jackson, Map.class, true) + .bean(serviceOrderRepoService, "findAllParamsJsonOrderIDs").convertBodyTo(String.class); + + from(CATALOG_GET_SERVICEORDER_BY_ID) + .log(LoggingLevel.INFO, log, CATALOG_GET_SERVICEORDER_BY_ID + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean(serviceOrderRepoService, "getServiceOrderEagerAsString").convertBodyTo(String.class); + + from(CATALOG_UPD_SERVICEORDER_BY_ID) + .log(LoggingLevel.INFO, log, CATALOG_UPD_SERVICEORDER_BY_ID + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true").unmarshal() + .json(JsonLibrary.Jackson, ServiceOrderUpdate.class, true) + .bean(serviceOrderRepoService, "updateServiceOrder(${header.orderid}, ${body})"); + + + from(CATALOG_ADD_SERVICEORDER) + .log(LoggingLevel.INFO, log, CATALOG_ADD_SERVICEORDER + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true").unmarshal() + .json(JsonLibrary.Jackson, ServiceOrderCreate.class, true) + .bean(serviceOrderRepoService, "addServiceOrderReturnEager(${body})") + .convertBodyTo(String.class); //creates back a response + + + } + + static String toJsonString(Object object) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.writeValueAsString(object); + } + + /** + * get service order by id from model via bus + * @param id + * @return + * @throws IOException + */ + public PortalUser retrievePortalUser( String userName ) { + logger.info("will retrieve PortalUser from userName =" + userName ); + try { + Object response = template. + requestBody( GET_USER_BY_USERNAME, userName); + + if ( !(response instanceof String)) { + logger.error("PortalUser object is wrong."); + return null; + } + PortalUser sor = toJsonObj( (String)response, PortalUser.class); + return sor; + + }catch (Exception e) { + logger.error("Cannot retrieve PortalUser details from catalog. " + e.toString()); + } + return null; + } + + + + static T toJsonObj(String content, Class valueType) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.readValue( content, valueType); + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/api/ServiceOrderApiRouteBuilderEvents.java b/src/main/java/org/etsi/osl/tmf/so641/api/ServiceOrderApiRouteBuilderEvents.java new file mode 100644 index 0000000..64b5eb7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/api/ServiceOrderApiRouteBuilderEvents.java @@ -0,0 +1,138 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.api; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.centrallog.client.CLevel; +import org.etsi.osl.centrallog.client.CentralLogger; +import org.etsi.osl.tmf.common.model.Notification; +import org.etsi.osl.tmf.so641.model.ServiceOrderAttributeValueChangeNotification; +import org.etsi.osl.tmf.so641.model.ServiceOrderCreateNotification; +import org.etsi.osl.tmf.so641.model.ServiceOrderDeleteNotification; +import org.etsi.osl.tmf.so641.model.ServiceOrderStateChangeNotification; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +@Configuration +//@RefreshScope +@Component +public class ServiceOrderApiRouteBuilderEvents extends RouteBuilder { + + private static final transient Log logger = LogFactory.getLog(ServiceOrderApiRouteBuilderEvents.class.getName()); + + + + + @Value("${EVENT_SERVICE_ORDER_CREATE}") + private String EVENT_SERVICE_ORDER_CREATE = ""; + + @Value("${EVENT_SERVICE_ORDER_STATE_CHANGED}") + private String EVENT_SERVICE_ORDER_STATE_CHANGED = ""; + + @Value("${EVENT_SERVICE_ORDER_DELETE}") + private String EVENT_SERVICE_ORDER_DELETE = ""; + + @Value("${EVENT_SERVICE_ORDER_ATTRIBUTE_VALUE_CHANGED}") + private String EVENT_SERVICE_ORDER_ATTRIBUTE_VALUE_CHANGED = ""; + + + + @Value("${spring.application.name}") + private String compname; + + @Autowired + private ProducerTemplate template; + + + @Autowired + private CentralLogger centralLogger; + + @Override + public void configure() throws Exception { + + + + + } + + /** + * @param n + */ + public void publishEvent(final Notification n, final String objId) { + n.setEventType( n.getClass().getName()); + logger.info("will send Event for type " + n.getEventType()); + try { + String msgtopic=""; + + if ( n instanceof ServiceOrderCreateNotification) { + msgtopic = EVENT_SERVICE_ORDER_CREATE; + } else if ( n instanceof ServiceOrderStateChangeNotification) { + msgtopic = EVENT_SERVICE_ORDER_STATE_CHANGED; + } else if ( n instanceof ServiceOrderDeleteNotification) { + msgtopic = EVENT_SERVICE_ORDER_DELETE; + } else if ( n instanceof ServiceOrderAttributeValueChangeNotification) { + msgtopic = EVENT_SERVICE_ORDER_ATTRIBUTE_VALUE_CHANGED; + } + Map map = new HashMap<>(); + map.put("eventid", n.getEventId() ); + map.put("objId", objId ); + + String apayload = toJsonString(n); + template.sendBodyAndHeaders(msgtopic, apayload , map); + + + centralLogger.log( CLevel.INFO, apayload, compname ); + + } catch (Exception e) { + e.printStackTrace(); + logger.error("Cannot send Event . " + e.getMessage() ); + } + } + + static String toJsonString(Object object) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.writeValueAsString(object); + } + + + + + + static T toJsonObj(String content, Class valueType) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.readValue( content, valueType); + } + + +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/AppointmentRef.java b/src/main/java/org/etsi/osl/tmf/so641/model/AppointmentRef.java new file mode 100644 index 0000000..8893f12 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/AppointmentRef.java @@ -0,0 +1,153 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * Refers an appointment, such as a Customer presentation or internal meeting or site visit + */ +@Schema(description = "Refers an appointment, such as a Customer presentation or internal meeting or site visit") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") +@Entity(name = "AppointmentRef") +public class AppointmentRef extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("description") + private String description = null; + + + @JsonProperty("@referredType") + private String referredType = null; + + /** + * The identifier of the referred appointment + * @return id + **/ + @Schema(description = "The identifier of the referred appointment") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + + public AppointmentRef description(String description) { + this.description = description; + return this; + } + + /** + * An explanatory text regarding the appointment made with a party + * @return description + **/ + @Schema(description = "An explanatory text regarding the appointment made with a party") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + + /** + * The actual type of the target instance when needed for disambiguation + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AppointmentRef appointmentRef = (AppointmentRef) o; + return Objects.equals(this.id, appointmentRef.id) && + Objects.equals(this.href, appointmentRef.href) && + Objects.equals(this.description, appointmentRef.description) && + Objects.equals(this.baseType, appointmentRef.baseType) && + Objects.equals(this.schemaLocation, appointmentRef.schemaLocation) && + Objects.equals(this.type, appointmentRef.type) && + Objects.equals(this.referredType, appointmentRef.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, description, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AppointmentRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/Error.java b/src/main/java/org/etsi/osl/tmf/so641/model/Error.java new file mode 100644 index 0000000..466ec4f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/Error.java @@ -0,0 +1,278 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx) + */ +@Schema(description = "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +public class Error { + @JsonProperty("code") + private Integer code = null; + + @JsonProperty("reason") + private String reason = null; + + @JsonProperty("message") + private String message = null; + + @JsonProperty("status") + private Integer status = null; + + @JsonProperty("referenceError") + private String referenceError = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Error code(Integer code) { + this.code = code; + return this; + } + + /** + * Application relevant detail, defined in the API or a common list. + * @return code + **/ + @Schema(description = "Application relevant detail, defined in the API or a common list.") + @NotNull + + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public Error reason(String reason) { + this.reason = reason; + return this; + } + + /** + * Explanation of the reason for the error which can be shown to a client user. + * @return reason + **/ + @Schema(description = "Explanation of the reason for the error which can be shown to a client user.") + @NotNull + + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public Error message(String message) { + this.message = message; + return this; + } + + /** + * More details and corrective actions related to the error which can be shown to a client user. + * @return message + **/ + @Schema(description = "More details and corrective actions related to the error which can be shown to a client user.") + + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Error status(Integer status) { + this.status = status; + return this; + } + + /** + * HTTP Error code extension + * @return status + **/ + @Schema(description = "HTTP Error code extension") + + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Error referenceError(String referenceError) { + this.referenceError = referenceError; + return this; + } + + /** + * URI of documentation describing the error. + * @return referenceError + **/ + @Schema(description = "URI of documentation describing the error.") + + + public String getReferenceError() { + return referenceError; + } + + public void setReferenceError(String referenceError) { + this.referenceError = referenceError; + } + + public Error baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class. + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class.") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public Error schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Error type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name. + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name.") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Error error = (Error) o; + return Objects.equals(this.code, error.code) && + Objects.equals(this.reason, error.reason) && + Objects.equals(this.message, error.message) && + Objects.equals(this.status, error.status) && + Objects.equals(this.referenceError, error.referenceError) && + Objects.equals(this.baseType, error.baseType) && + Objects.equals(this.schemaLocation, error.schemaLocation) && + Objects.equals(this.type, error.type); + } + + @Override + public int hashCode() { + return Objects.hash(code, reason, message, status, referenceError, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Error {\n"); + + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" referenceError: ").append(toIndentedString(referenceError)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/so641/model/EventSubscription.java new file mode 100644 index 0000000..7d8f62e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/EventSubscription.java @@ -0,0 +1,153 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +public class EventSubscription { + @JsonProperty("id") + private String id = null; + + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscription id(String id) { + this.id = id; + return this; + } + + /** + * Id of the listener + * @return id + **/ + @Schema(description = "Id of the listener") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EventSubscription callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscription query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscription eventSubscription = (EventSubscription) o; + return Objects.equals(this.id, eventSubscription.id) && + Objects.equals(this.callback, eventSubscription.callback) && + Objects.equals(this.query, eventSubscription.query); + } + + @Override + public int hashCode() { + return Objects.hash(id, callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscription {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/EventSubscriptionInput.java b/src/main/java/org/etsi/osl/tmf/so641/model/EventSubscriptionInput.java new file mode 100644 index 0000000..5cde564 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/EventSubscriptionInput.java @@ -0,0 +1,127 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +public class EventSubscriptionInput { + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscriptionInput callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscriptionInput query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscriptionInput eventSubscriptionInput = (EventSubscriptionInput) o; + return Objects.equals(this.callback, eventSubscriptionInput.callback) && + Objects.equals(this.query, eventSubscriptionInput.query); + } + + @Override + public int hashCode() { + return Objects.hash(callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscriptionInput {\n"); + + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrder.java b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrder.java new file mode 100644 index 0000000..9e1d28e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrder.java @@ -0,0 +1,697 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.UserPartRoleType; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Lob; +import jakarta.persistence.OneToMany; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * ServiceOrder + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") +@Entity(name = "ServiceOrder") +@JsonIgnoreProperties("orderRequester") +public class ServiceOrder extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("category") + private String category = null; + + + @Lob + @Column(name = "LDESCRIPTION", columnDefinition = "LONGTEXT") + @JsonProperty("description") + private String description = null; + + + @JsonProperty("externalId") + private String externalId = null; + + @JsonProperty("notificationContact") + private String notificationContact = null; + + private OffsetDateTime orderDate = null; + + @JsonProperty("priority") + private String priority = null; + + private OffsetDateTime completionDate = null; + + private OffsetDateTime expectedCompletionDate = null; + + private OffsetDateTime requestedCompletionDate = null; + + private OffsetDateTime requestedStartDate = null; + + private OffsetDateTime startDate = null; + + @JsonProperty("note") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set note = new HashSet<>(); + + @JsonProperty("orderItem") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set orderItem = new HashSet<>(); + + @JsonProperty("orderRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set orderRelationship = new HashSet<>(); + + @JsonProperty("relatedParty") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set relatedParty = new HashSet<>(); + + @JsonProperty("state") + private ServiceOrderStateType state = ServiceOrderStateType.INITIAL; + + public ServiceOrder () { + super(); + this.baseType = "BaseRootEntity"; + this.type = "ServiceOrder"; + } + + /** + * ID created on repository side + * + * @return id + **/ + @Schema(description = "ID created on repository side") + + public String getId() { + if ( ( id != null) && (uuid == null) ) { //this check is good for external partners when no uuid exists + return id; + } + return uuid; + } + + + /** + * Used to categorize the order, useful for the OM system, such as: Broadband, + * TVOption + * + * @return category + **/ + @Schema(description = "Used to categorize the order, useful for the OM system, such as: Broadband, TVOption") + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public ServiceOrder completionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + return this; + } + + /** + * Effective delivery date amended by the provider + * + * @return completionDate + **/ + @Schema(description = "Effective delivery date amended by the provider") + + @Valid + @JsonProperty("completionDate") + public String getCompletionDateString() { + if ( this.completionDate == null) { + return null; + } + return this.completionDate.toString(); + } + + public OffsetDateTime getCompletionDate() { + return completionDate; + } + + public void setCompletionDate(OffsetDateTime completionDate) { + this.completionDate = completionDate; + } + + public ServiceOrder description(String description) { + this.description = description; + return this; + } + + public void setCompletionDate(String completionDate) { + if (completionDate!=null) { + this.completionDate = OffsetDateTime.parse( completionDate ); + } + } + + + /** + * A free-text description of the service order + * + * @return description + **/ + @Schema(description = "A free-text description of the service order") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceOrder expectedCompletionDate(OffsetDateTime expectedCompletionDate) { + this.expectedCompletionDate = expectedCompletionDate; + return this; + } + + /** + * Expected delivery date amended by the provider + * + * @return expectedCompletionDate + **/ + @Schema(description = "Expected delivery date amended by the provider") + + @Valid + + @JsonProperty("expectedCompletionDate") + public String getExpectedCompletionDateString() { + + if ( this.expectedCompletionDate == null) { + return null; + } + return this.expectedCompletionDate.toString(); + } + + public OffsetDateTime getExpectedCompletionDate() { + return expectedCompletionDate; + } + + public void setExpectedCompletionDate(OffsetDateTime expectedCompletionDate) { + this.expectedCompletionDate = expectedCompletionDate; + } + + public void setExpectedCompletionDate(String expectedCompletionDate) { + if (expectedCompletionDate!=null) { + this.expectedCompletionDate = OffsetDateTime.parse( expectedCompletionDate ); + + } + } + + + public ServiceOrder externalId(String externalId) { + this.externalId = externalId; + return this; + } + + + + /** + * ID given by the consumer to facilitate searches + * + * @return externalId + **/ + @Schema(description = "ID given by the consumer to facilitate searches") + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public ServiceOrder notificationContact(String notificationContact) { + this.notificationContact = notificationContact; + return this; + } + + /** + * Contact attached to the order to send back information regarding this order + * + * @return notificationContact + **/ + @Schema(description = "Contact attached to the order to send back information regarding this order") + + public String getNotificationContact() { + return notificationContact; + } + + public void setNotificationContact(String notificationContact) { + this.notificationContact = notificationContact; + } + + public ServiceOrder orderDate(OffsetDateTime orderDate) { + this.orderDate = orderDate; + return this; + } + + /** + * Get orderDate + * + * @return orderDate + **/ + @Schema(description = "") + + @Valid + @JsonProperty("orderDate") + public String getOrderDateString() { + if ( this.orderDate == null) { + return null; + } + return this.orderDate.toString(); + } + + public OffsetDateTime getOrderDate() { + return orderDate; + } + + public void setOrderDate(OffsetDateTime orderDate) { + this.orderDate = orderDate; + } + + public ServiceOrder priority(String priority) { + this.priority = priority; + return this; + } + + public void setOrderDate(String orderDate) { + + if (orderDate!=null) { + this.orderDate = OffsetDateTime.parse( orderDate ); + + } + } + + /** + * Can be used by consumers to prioritize orders in a Service Order Management + * system + * + * @return priority + **/ + @Schema(description = "Can be used by consumers to prioritize orders in a Service Order Management system") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ServiceOrder requestedCompletionDate(OffsetDateTime requestedCompletionDate) { + this.requestedCompletionDate = requestedCompletionDate; + return this; + } + + /** + * Requested delivery date from the requestors perspective + * + * @return requestedCompletionDate + **/ + @Schema(description = "Requested delivery date from the requestors perspective") + + @Valid + + @JsonProperty("requestedCompletionDate") + public String getRequestedCompletionDateString() { + + if ( this.requestedCompletionDate == null) { + return null; + } + return this.requestedCompletionDate.toString(); + } + + public OffsetDateTime getRequestedCompletionDate() { + return requestedCompletionDate; + } + + public void setRequestedCompletionDate(OffsetDateTime requestedCompletionDate) { + this.requestedCompletionDate = requestedCompletionDate; + } + + public ServiceOrder requestedStartDate(OffsetDateTime requestedStartDate) { + this.requestedStartDate = requestedStartDate; + return this; + } + + public void setRequestedCompletionDate(String requestedCompletionDate) { + + if (requestedCompletionDate!=null) { + this.requestedCompletionDate = OffsetDateTime.parse( requestedCompletionDate ); + + } + } + + /** + * Order start date wished by the requestor + * + * @return requestedStartDate + **/ + @Schema(description = "Order start date wished by the requestor") + + @Valid + @JsonProperty("requestedStartDate") + public String getRequestedStartDateString() { + + if ( this.requestedStartDate == null) { + return null; + } + return this.requestedStartDate.toString(); + } + + public OffsetDateTime getRequestedStartDate() { + return requestedStartDate; + } + + public void setRequestedStartDate(OffsetDateTime requestedStartDate) { + this.requestedStartDate = requestedStartDate; + } + + + public void setRequestedStartDate(String requestedStartDate) { + + if (requestedStartDate!=null) { + this.requestedStartDate = OffsetDateTime.parse( requestedStartDate ); + + } + } + + + public ServiceOrder startDate(OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + /** + * Date when the order was started for processing + * + * @return startDate + **/ + @Schema(description = "Date when the order was started for processing") + + @Valid + @JsonProperty("startDate") + public String getStartDateString() { + if ( this.startDate == null) { + return null; + } + return this.startDate.toString(); + } + + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; + } + + public void setStartDate(String requestedStartDate) { + if (requestedStartDate!=null) { + this.startDate = OffsetDateTime.parse( requestedStartDate ); + } + } + + + public ServiceOrder note(Set note) { + this.note = note; + return this; + } + + public ServiceOrder addNoteItem(Note noteItem) { + if (this.note == null) { + this.note = new HashSet<>(); + } + this.note.add(noteItem); + return this; + } + + /** + * Extra-information about the order; e.g. useful to add extra delivery + * information that could be useful for a human process + * + * @return note + **/ + @Schema(description = "Extra-information about the order; e.g. useful to add extra delivery information that could be useful for a human process") + + @Valid + + public Set getNote() { + return note; + } + + public void setNote(Set note) { + this.note = note; + } + + public ServiceOrder orderItem(Set orderItem) { + this.orderItem = orderItem; + return this; + } + + public ServiceOrder addOrderItemItem(ServiceOrderItem orderItemItem) { + this.orderItem.add(orderItemItem); + return this; + } + + /** + * A list of service order items to be processed by this order + * + * @return orderItem + **/ + @Schema(description = "A list of service order items to be processed by this order") + @NotNull + + @Valid + @Size(min = 1) + public Set getOrderItem() { + return orderItem; + } + + public void setOrderItem(Set orderItem) { + this.orderItem = orderItem; + } + + public ServiceOrder orderRelationship(Set orderRelationship) { + this.orderRelationship = orderRelationship; + return this; + } + + public ServiceOrder addOrderRelationshipItem(ServiceOrderRelationship orderRelationshipItem) { + if (this.orderRelationship == null) { + this.orderRelationship = new HashSet<>(); + } + this.orderRelationship.add(orderRelationshipItem); + return this; + } + + /** + * A list of service orders related to this order (e.g. prerequisite, dependent + * on) + * + * @return orderRelationship + **/ + @Schema(description = "A list of service orders related to this order (e.g. prerequisite, dependent on)") + + @Valid + + public Set getOrderRelationship() { + return orderRelationship; + } + + public void setOrderRelationship(Set orderRelationship) { + this.orderRelationship = orderRelationship; + } + + public ServiceOrder relatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ServiceOrder addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new HashSet<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * A list of parties which are involved in this order and the role they are + * playing + * + * @return relatedParty + **/ + @Schema(description = "A list of parties which are involved in this order and the role they are playing") + + @Valid + + public Set getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + } + + public ServiceOrder state(ServiceOrderStateType state) { + this.state = state; + return this; + } + + /** + * State of the order: described in the state-machine diagram + * + * @return state + **/ + @Schema(description = "State of the order: described in the state-machine diagram") + + @Valid + + public ServiceOrderStateType getState() { + return state; + } + + public void setState(ServiceOrderStateType state) { + this.state = state; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceOrder serviceOrder = (ServiceOrder) o; + return Objects.equals(this.id, serviceOrder.id) && Objects.equals(this.href, serviceOrder.href) + && Objects.equals(this.category, serviceOrder.category) + && Objects.equals(this.completionDate, serviceOrder.completionDate) + && Objects.equals(this.description, serviceOrder.description) + && Objects.equals(this.expectedCompletionDate, serviceOrder.expectedCompletionDate) + && Objects.equals(this.externalId, serviceOrder.externalId) + && Objects.equals(this.notificationContact, serviceOrder.notificationContact) + && Objects.equals(this.orderDate, serviceOrder.orderDate) + && Objects.equals(this.priority, serviceOrder.priority) + && Objects.equals(this.requestedCompletionDate, serviceOrder.requestedCompletionDate) + && Objects.equals(this.requestedStartDate, serviceOrder.requestedStartDate) + && Objects.equals(this.startDate, serviceOrder.startDate) + && Objects.equals(this.note, serviceOrder.note) + && Objects.equals(this.orderItem, serviceOrder.orderItem) + && Objects.equals(this.orderRelationship, serviceOrder.orderRelationship) + && Objects.equals(this.relatedParty, serviceOrder.relatedParty) + && Objects.equals(this.state, serviceOrder.state) + && Objects.equals(this.baseType, serviceOrder.baseType) + && Objects.equals(this.schemaLocation, serviceOrder.schemaLocation) + && Objects.equals(this.type, serviceOrder.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, category, completionDate, description, expectedCompletionDate, externalId, +// notificationContact, orderDate, priority, requestedCompletionDate, requestedStartDate, startDate, note, +// orderItem, orderRelationship, relatedParty, state, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceOrder {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" completionDate: ").append(toIndentedString(completionDate)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" expectedCompletionDate: ").append(toIndentedString(expectedCompletionDate)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" notificationContact: ").append(toIndentedString(notificationContact)).append("\n"); + sb.append(" orderDate: ").append(toIndentedString(orderDate)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" requestedCompletionDate: ").append(toIndentedString(requestedCompletionDate)).append("\n"); + sb.append(" requestedStartDate: ").append(toIndentedString(requestedStartDate)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" note: ").append(toIndentedString(note)).append("\n"); + sb.append(" orderItem: ").append(toIndentedString(orderItem)).append("\n"); + sb.append(" orderRelationship: ").append(toIndentedString(orderRelationship)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public ServiceOrderItem findOrderItemById(String id) { + for (ServiceOrderItem oi : this.orderItem) { + if ( oi.getId().equals(id)) { + return oi; + } + } + return null; + } + + /** + * @return the PartyRole that made the request + */ + public RelatedParty getOrderRequester() { + for (RelatedParty rp : relatedParty) { + if (rp.getRole().equals( UserPartRoleType.REQUESTER.toString() )) { + return rp; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderActionType.java b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderActionType.java new file mode 100644 index 0000000..fd213f7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderActionType.java @@ -0,0 +1,60 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * string + */ +public enum ServiceOrderActionType { + + ADD("add"), + + MODIFY("modify"), + + DELETE("delete"), + + NOCHANGE("noChange"); + + private String value; + + ServiceOrderActionType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ServiceOrderActionType fromValue(String text) { + for (ServiceOrderActionType b : ServiceOrderActionType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderAttributeValueChangeEvent.java new file mode 100644 index 0000000..7c4299c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderAttributeValueChangeEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +public class ServiceOrderAttributeValueChangeEvent { + @JsonProperty("serviceOrder") + private ServiceOrder serviceOrder = null; + + public ServiceOrderAttributeValueChangeEvent serviceOrder(ServiceOrder serviceOrder) { + this.serviceOrder = serviceOrder; + return this; + } + + /** + * The involved resource data for the event + * @return serviceOrder + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ServiceOrder getServiceOrder() { + return serviceOrder; + } + + public void setServiceOrder(ServiceOrder serviceOrder) { + this.serviceOrder = serviceOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceOrderAttributeValueChangeEvent serviceOrderAttributeValueChangeEvent = (ServiceOrderAttributeValueChangeEvent) o; + return Objects.equals(this.serviceOrder, serviceOrderAttributeValueChangeEvent.serviceOrder); + } + + @Override + public int hashCode() { + return Objects.hash(serviceOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceOrderAttributeValueChangeEvent {\n"); + + sb.append(" serviceOrder: ").append(toIndentedString(serviceOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderAttributeValueChangeNotification.java b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderAttributeValueChangeNotification.java new file mode 100644 index 0000000..926527c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderAttributeValueChangeNotification.java @@ -0,0 +1,120 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +public class ServiceOrderAttributeValueChangeNotification extends Notification { + + + @JsonProperty("event") + private ServiceOrderAttributeValueChangeEvent event = null; + + public ServiceOrderAttributeValueChangeNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + + + public ServiceOrderAttributeValueChangeNotification event(ServiceOrderAttributeValueChangeEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceOrderAttributeValueChangeEvent getEvent() { + return event; + } + + public void setEvent(ServiceOrderAttributeValueChangeEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceOrderAttributeValueChangeNotification serviceOrderAttributeValueChangeNotification = (ServiceOrderAttributeValueChangeNotification) o; + return Objects.equals(this.eventId, serviceOrderAttributeValueChangeNotification.eventId) && + Objects.equals(this.eventTime, serviceOrderAttributeValueChangeNotification.eventTime) && + Objects.equals(this.eventType, serviceOrderAttributeValueChangeNotification.eventType) && + Objects.equals(this.fieldPath, serviceOrderAttributeValueChangeNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceOrderAttributeValueChangeNotification.resourcePath) && + Objects.equals(this.event, serviceOrderAttributeValueChangeNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceOrderAttributeValueChangeNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderCreate.java b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderCreate.java new file mode 100644 index 0000000..5347ad0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderCreate.java @@ -0,0 +1,522 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +/** + * Skipped properties: + * id,href,orderDate,completionDate,expectedCompletionDate,startDate,state + */ +@Schema(description = " Skipped properties: id,href,orderDate,completionDate,expectedCompletionDate,startDate,state") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +public class ServiceOrderCreate { + @JsonProperty("category") + private String category = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("externalId") + private String externalId = null; + + @JsonProperty("notificationContact") + private String notificationContact = null; + + @JsonProperty("priority") + private String priority = null; + + private OffsetDateTime requestedCompletionDate = null; + + private OffsetDateTime requestedStartDate = null; + + @JsonProperty("note") + @Valid + private List note = null; + + @JsonProperty("orderItem") + @Valid + private List orderItem = new ArrayList<>(); + + @JsonProperty("orderRelationship") + @Valid + private List orderRelationship = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ServiceOrderCreate category(String category) { + this.category = category; + return this; + } + + /** + * Used to categorize the order, useful for the OM system, such as: Broadband, + * TVOption + * + * @return category + **/ + @Schema(description = "Used to categorize the order, useful for the OM system, such as: Broadband, TVOption") + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public ServiceOrderCreate description(String description) { + this.description = description; + return this; + } + + /** + * A free-text description of the service order + * + * @return description + **/ + @Schema(description = "A free-text description of the service order") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceOrderCreate externalId(String externalId) { + this.externalId = externalId; + return this; + } + + /** + * ID given by the consumer to facilitate searches + * + * @return externalId + **/ + @Schema(description = "ID given by the consumer to facilitate searches") + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public ServiceOrderCreate notificationContact(String notificationContact) { + this.notificationContact = notificationContact; + return this; + } + + /** + * Contact attached to the order to send back information regarding this order + * + * @return notificationContact + **/ + @Schema(description = "Contact attached to the order to send back information regarding this order") + + public String getNotificationContact() { + return notificationContact; + } + + public void setNotificationContact(String notificationContact) { + this.notificationContact = notificationContact; + } + + public ServiceOrderCreate priority(String priority) { + this.priority = priority; + return this; + } + + /** + * Can be used by consumers to prioritize orders in a Service Order Management + * system + * + * @return priority + **/ + @Schema(description = "Can be used by consumers to prioritize orders in a Service Order Management system") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ServiceOrderCreate requestedCompletionDate(OffsetDateTime requestedCompletionDate) { + this.requestedCompletionDate = requestedCompletionDate; + return this; + } + + /** + * Requested delivery date from the requestors perspective + * + * @return requestedCompletionDate + **/ + @Schema(description = "Requested delivery date from the requestors perspective") + + @Valid + public OffsetDateTime getRequestedCompletionDate() { + return requestedCompletionDate; + } + + + @JsonProperty("requestedCompletionDate") + public String getRequestedCompletionDateStr() { + if ( requestedCompletionDate != null) { + return requestedCompletionDate.toString(); + } else { + return null; + } + } + + + public void setRequestedCompletionDate(OffsetDateTime requestedCompletionDate) { + this.requestedCompletionDate = requestedCompletionDate; + } + + + + public void setRequestedCompletionDate(String requestedCompletionDate) { + + if (requestedCompletionDate!=null) { + this.requestedCompletionDate = OffsetDateTime.parse( requestedCompletionDate ); + + } + } + + public ServiceOrderCreate requestedStartDate(OffsetDateTime requestedStartDate) { + this.requestedStartDate = requestedStartDate; + return this; + } + + /** + * Order start date wished by the requestor + * + * @return requestedStartDate + **/ + @Schema(description = "Order start date wished by the requestor") + + @Valid + + public OffsetDateTime getRequestedStartDate() { + return requestedStartDate; + } + + + @JsonProperty("requestedStartDate") + public String getRequestedStartDateStr() { + + if ( requestedStartDate != null) { + return requestedStartDate.toString(); + } + + return null; + } + + + public void setRequestedStartDate(OffsetDateTime requestedStartDate) { + this.requestedStartDate = requestedStartDate; + } + + public ServiceOrderCreate note(List note) { + this.note = note; + return this; + } + + + public void setRequestedStartDate(String requestedStartDate) { + + if (requestedStartDate!=null) { + this.requestedStartDate = OffsetDateTime.parse( requestedStartDate ); + + } + } + + public ServiceOrderCreate addNoteItem(Note noteItem) { + if (this.note == null) { + this.note = new ArrayList<>(); + } + this.note.add(noteItem); + return this; + } + + /** + * Extra-information about the order; e.g. useful to add extra delivery + * information that could be useful for a human process + * + * @return note + **/ + @Schema(description = "Extra-information about the order; e.g. useful to add extra delivery information that could be useful for a human process") + + @Valid + + public List getNote() { + return note; + } + + public void setNote(List note) { + this.note = note; + } + + public ServiceOrderCreate orderItem(List orderItem) { + this.orderItem = orderItem; + return this; + } + + public ServiceOrderCreate addOrderItemItem(ServiceOrderItem orderItemItem) { + this.orderItem.add(orderItemItem); + return this; + } + + /** + * A list of service order items to be processed by this order + * + * @return orderItem + **/ + @Schema(description = "A list of service order items to be processed by this order") + @NotNull + + @Valid + @Size(min = 1) + public List getOrderItem() { + return orderItem; + } + + public void setOrderItem(List orderItem) { + this.orderItem = orderItem; + } + + public ServiceOrderCreate orderRelationship(List orderRelationship) { + this.orderRelationship = orderRelationship; + return this; + } + + public ServiceOrderCreate addOrderRelationshipItem(ServiceOrderRelationship orderRelationshipItem) { + if (this.orderRelationship == null) { + this.orderRelationship = new ArrayList<>(); + } + this.orderRelationship.add(orderRelationshipItem); + return this; + } + + /** + * A list of service orders related to this order (e.g. prerequisite, dependent + * on) + * + * @return orderRelationship + **/ + @Schema(description = "A list of service orders related to this order (e.g. prerequisite, dependent on)") + + @Valid + + public List getOrderRelationship() { + return orderRelationship; + } + + public void setOrderRelationship(List orderRelationship) { + this.orderRelationship = orderRelationship; + } + + public ServiceOrderCreate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ServiceOrderCreate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * A list of parties which are involved in this order and the role they are + * playing + * + * @return relatedParty + **/ + @Schema(description = "A list of parties which are involved in this order and the role they are playing") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public ServiceOrderCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ServiceOrderCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ServiceOrderCreate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceOrderCreate serviceOrderCreate = (ServiceOrderCreate) o; + return Objects.equals(this.category, serviceOrderCreate.category) + && Objects.equals(this.description, serviceOrderCreate.description) + && Objects.equals(this.externalId, serviceOrderCreate.externalId) + && Objects.equals(this.notificationContact, serviceOrderCreate.notificationContact) + && Objects.equals(this.priority, serviceOrderCreate.priority) + && Objects.equals(this.requestedCompletionDate, serviceOrderCreate.requestedCompletionDate) + && Objects.equals(this.requestedStartDate, serviceOrderCreate.requestedStartDate) + && Objects.equals(this.note, serviceOrderCreate.note) + && Objects.equals(this.orderItem, serviceOrderCreate.orderItem) + && Objects.equals(this.orderRelationship, serviceOrderCreate.orderRelationship) + && Objects.equals(this.relatedParty, serviceOrderCreate.relatedParty) + && Objects.equals(this.baseType, serviceOrderCreate.baseType) + && Objects.equals(this.schemaLocation, serviceOrderCreate.schemaLocation) + && Objects.equals(this.type, serviceOrderCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(category, description, externalId, notificationContact, priority, requestedCompletionDate, + requestedStartDate, note, orderItem, orderRelationship, relatedParty, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceOrderCreate {\n"); + + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" notificationContact: ").append(toIndentedString(notificationContact)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" requestedCompletionDate: ").append(toIndentedString(requestedCompletionDate)).append("\n"); + sb.append(" requestedStartDate: ").append(toIndentedString(requestedStartDate)).append("\n"); + sb.append(" note: ").append(toIndentedString(note)).append("\n"); + sb.append(" orderItem: ").append(toIndentedString(orderItem)).append("\n"); + sb.append(" orderRelationship: ").append(toIndentedString(orderRelationship)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderCreateEvent.java b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderCreateEvent.java new file mode 100644 index 0000000..49e7923 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderCreateEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +public class ServiceOrderCreateEvent { + @JsonProperty("serviceOrder") + private ServiceOrder serviceOrder = null; + + public ServiceOrderCreateEvent serviceOrder(ServiceOrder serviceOrder) { + this.serviceOrder = serviceOrder; + return this; + } + + /** + * The involved resource data for the event + * @return serviceOrder + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ServiceOrder getServiceOrder() { + return serviceOrder; + } + + public void setServiceOrder(ServiceOrder serviceOrder) { + this.serviceOrder = serviceOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceOrderCreateEvent serviceOrderCreateEvent = (ServiceOrderCreateEvent) o; + return Objects.equals(this.serviceOrder, serviceOrderCreateEvent.serviceOrder); + } + + @Override + public int hashCode() { + return Objects.hash(serviceOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceOrderCreateEvent {\n"); + + sb.append(" serviceOrder: ").append(toIndentedString(serviceOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderCreateNotification.java b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderCreateNotification.java new file mode 100644 index 0000000..763a810 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderCreateNotification.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +public class ServiceOrderCreateNotification extends Notification { + + @JsonProperty("event") + private ServiceOrderCreateEvent event = null; + + public ServiceOrderCreateNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + + + public ServiceOrderCreateNotification event(ServiceOrderCreateEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceOrderCreateEvent getEvent() { + return event; + } + + public void setEvent(ServiceOrderCreateEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceOrderCreateNotification serviceOrderCreateNotification = (ServiceOrderCreateNotification) o; + return Objects.equals(this.eventId, serviceOrderCreateNotification.eventId) && + Objects.equals(this.eventTime, serviceOrderCreateNotification.eventTime) && + Objects.equals(this.eventType, serviceOrderCreateNotification.eventType) && + Objects.equals(this.fieldPath, serviceOrderCreateNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceOrderCreateNotification.resourcePath) && + Objects.equals(this.event, serviceOrderCreateNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceOrderCreateNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderDeleteEvent.java new file mode 100644 index 0000000..f711617 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderDeleteEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +public class ServiceOrderDeleteEvent { + @JsonProperty("serviceOrder") + private ServiceOrder serviceOrder = null; + + public ServiceOrderDeleteEvent serviceOrder(ServiceOrder serviceOrder) { + this.serviceOrder = serviceOrder; + return this; + } + + /** + * The involved resource data for the event + * @return serviceOrder + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ServiceOrder getServiceOrder() { + return serviceOrder; + } + + public void setServiceOrder(ServiceOrder serviceOrder) { + this.serviceOrder = serviceOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceOrderDeleteEvent serviceOrderDeleteEvent = (ServiceOrderDeleteEvent) o; + return Objects.equals(this.serviceOrder, serviceOrderDeleteEvent.serviceOrder); + } + + @Override + public int hashCode() { + return Objects.hash(serviceOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceOrderDeleteEvent {\n"); + + sb.append(" serviceOrder: ").append(toIndentedString(serviceOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderDeleteNotification.java b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderDeleteNotification.java new file mode 100644 index 0000000..0aa1a5c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderDeleteNotification.java @@ -0,0 +1,120 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +public class ServiceOrderDeleteNotification extends Notification { + + + @JsonProperty("event") + private ServiceOrderDeleteEvent event = null; + + public ServiceOrderDeleteNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + + + public ServiceOrderDeleteNotification event(ServiceOrderDeleteEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceOrderDeleteEvent getEvent() { + return event; + } + + public void setEvent(ServiceOrderDeleteEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceOrderDeleteNotification serviceOrderDeleteNotification = (ServiceOrderDeleteNotification) o; + return Objects.equals(this.eventId, serviceOrderDeleteNotification.eventId) && + Objects.equals(this.eventTime, serviceOrderDeleteNotification.eventTime) && + Objects.equals(this.eventType, serviceOrderDeleteNotification.eventType) && + Objects.equals(this.fieldPath, serviceOrderDeleteNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceOrderDeleteNotification.resourcePath) && + Objects.equals(this.event, serviceOrderDeleteNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceOrderDeleteNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderItem.java b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderItem.java new file mode 100644 index 0000000..c86e161 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderItem.java @@ -0,0 +1,267 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * ServiceOrderItem + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") +@Entity(name = "ServiceOrderItem") +public class ServiceOrderItem extends BaseRootEntity { + + @JsonProperty("id") + private String id = null; + + @JsonProperty("action") + private ServiceOrderActionType action = ServiceOrderActionType.ADD; + + + @JsonProperty("orderItemRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set orderItemRelationship = new HashSet<>(); + + + @JsonProperty("state") + private ServiceOrderStateType state = ServiceOrderStateType.INITIAL; + + + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "service_restrictuuid", referencedColumnName = "uuid") + @JsonProperty("service") + private ServiceRestriction service = null; + + /** + * not managed for now + */ + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "appointment_refid", referencedColumnName = "uuid") + @JsonProperty("appointment") + private AppointmentRef appointment = null; + + + + /** + * Identifier of the individual line item + * + * @return id + **/ + @Schema(description = "Identifier of the individual line item") + public String getId() { + return uuid; + } + + + + public ServiceOrderItem action(ServiceOrderActionType action) { + this.action = action; + return this; + } + + /** + * The action to be carried out on the Service. Can be: add, modify, delete, + * noChange + * + * @return action + **/ + @Schema(description = "The action to be carried out on the Service. Can be: add, modify, delete, noChange") + @NotNull + + @Valid + + public ServiceOrderActionType getAction() { + return action; + } + + public void setAction(ServiceOrderActionType action) { + this.action = action; + } + + public ServiceOrderItem appointment(AppointmentRef appointment) { + this.appointment = appointment; + return this; + } + + /** + * An appointment that was set up with a related party for this order item + * + * @return appointment + **/ + @Schema(description = "An appointment that was set up with a related party for this order item") + + @Valid + + public AppointmentRef getAppointment() { + return appointment; + } + + public void setAppointment(AppointmentRef appointment) { + this.appointment = appointment; + } + + public ServiceOrderItem orderItemRelationship(Set orderItemRelationship) { + this.orderItemRelationship = orderItemRelationship; + return this; + } + + public ServiceOrderItem addOrderItemRelationshipItem(ServiceOrderItemRelationship orderItemRelationshipItem) { + if (this.orderItemRelationship == null) { + this.orderItemRelationship = new HashSet<>(); + } + this.orderItemRelationship.add(orderItemRelationshipItem); + return this; + } + + /** + * A list of order items related to this order item + * + * @return orderItemRelationship + **/ + @Schema(description = "A list of order items related to this order item") + + @Valid + + public Set getOrderItemRelationship() { + return orderItemRelationship; + } + + public void setOrderItemRelationship(Set orderItemRelationship) { + this.orderItemRelationship = orderItemRelationship; + } + + public ServiceOrderItem service(ServiceRestriction service) { + this.service = service; + return this; + } + + /** + * The Service to be acted on by the order item + * + * @return service + **/ + @Schema(description = "The Service to be acted on by the order item") + @NotNull + + @Valid + + public ServiceRestriction getService() { + return service; + } + + public void setService(ServiceRestriction service) { + this.service = service; + } + + public ServiceOrderItem state(ServiceOrderStateType state) { + this.state = state; + return this; + } + + /** + * State of the order item: described in the state machine diagram. This is the + * requested state. + * + * @return state + **/ + @Schema(description = "State of the order item: described in the state machine diagram. This is the requested state.") + + @Valid + + public ServiceOrderStateType getState() { + return state; + } + + public void setState(ServiceOrderStateType state) { + this.state = state; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceOrderItem serviceOrderItem = (ServiceOrderItem) o; + return Objects.equals(this.getId(), serviceOrderItem.getId()) && Objects.equals(this.action, serviceOrderItem.action) + && Objects.equals(this.appointment, serviceOrderItem.appointment) + && Objects.equals(this.orderItemRelationship, serviceOrderItem.orderItemRelationship) + && Objects.equals(this.service, serviceOrderItem.service) + && Objects.equals(this.state, serviceOrderItem.state) + && Objects.equals(this.baseType, serviceOrderItem.baseType) + && Objects.equals(this.schemaLocation, serviceOrderItem.schemaLocation) + && Objects.equals(this.type, serviceOrderItem.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(uuid, getId(), action, appointment, orderItemRelationship, service, state, baseType, schemaLocation, +// type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceOrderItem {\n"); + + sb.append(" id: ").append(toIndentedString(getId())).append("\n"); + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" action: ").append(toIndentedString(action)).append("\n"); + sb.append(" appointment: ").append(toIndentedString(appointment)).append("\n"); + sb.append(" orderItemRelationship: ").append(toIndentedString(orderItemRelationship)).append("\n"); + sb.append(" service: ").append(toIndentedString(service)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderItemRelationship.java b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderItemRelationship.java new file mode 100644 index 0000000..6abc233 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderItemRelationship.java @@ -0,0 +1,136 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * Linked service order item to the one containing this attribute + */ +@Schema(description = "Linked service order item to the one containing this attribute") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") +@Entity(name = "ServiceOrderItemRelationship") +public class ServiceOrderItemRelationship extends BaseRootEntity { + + + @JsonProperty("id") + private String id = null; + + @JsonProperty("relationshipType") + private String relationshipType = null; + + public ServiceOrderItemRelationship id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of a service order item + * @return id + **/ + @Schema(description = "Unique identifier of a service order item") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ServiceOrderItemRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * The type of related order item, can be: dependency if the order item needs to be not started until another order item is complete + * @return relationshipType + **/ + @Schema(description = "The type of related order item, can be: dependency if the order item needs to be not started until another order item is complete") + @NotNull + + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceOrderItemRelationship serviceOrderItemRelationship = (ServiceOrderItemRelationship) o; + return Objects.equals(this.id, serviceOrderItemRelationship.id) && + Objects.equals(this.relationshipType, serviceOrderItemRelationship.relationshipType) && + Objects.equals(this.baseType, serviceOrderItemRelationship.baseType) && + Objects.equals(this.schemaLocation, serviceOrderItemRelationship.schemaLocation) && + Objects.equals(this.type, serviceOrderItemRelationship.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, relationshipType, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceOrderItemRelationship {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderRelationship.java b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderRelationship.java new file mode 100644 index 0000000..0ac406c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderRelationship.java @@ -0,0 +1,159 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.validation.constraints.NotNull; + +/** + * Linked service order to the one containing this attribute + */ +@Schema(description = "Linked service order to the one containing this attribute") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +@Entity(name = "ServiceOrderRelationship") +public class ServiceOrderRelationship extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + + + @JsonProperty("relationshipType") + private String relationshipType = null; + + + @JsonProperty("@referredType") + private String referredType = null; + + public ServiceOrderRelationship id(String id) { + this.id = id; + return this; + } + + /** + * The id of the related order + * @return id + **/ + @Schema(description = "The id of the related order") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ServiceOrderRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * The type of related order, such as: [dependency] if the order needs to be [not started] until another order item is complete (a service order in this case) or [cross-ref] to keep track of the source order (a productOrder) + * @return relationshipType + **/ + @Schema(description = "The type of related order, such as: [dependency] if the order needs to be [not started] until another order item is complete (a service order in this case) or [cross-ref] to keep track of the source order (a productOrder)") + + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + + /** + * The entity type of the related order + * @return referredType + **/ + @Schema(description = "The entity type of the related order") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceOrderRelationship serviceOrderRelationship = (ServiceOrderRelationship) o; + return Objects.equals(this.id, serviceOrderRelationship.id) && + Objects.equals(this.href, serviceOrderRelationship.href) && + Objects.equals(this.relationshipType, serviceOrderRelationship.relationshipType) && + Objects.equals(this.baseType, serviceOrderRelationship.baseType) && + Objects.equals(this.schemaLocation, serviceOrderRelationship.schemaLocation) && + Objects.equals(this.type, serviceOrderRelationship.type) && + Objects.equals(this.referredType, serviceOrderRelationship.referredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, relationshipType, baseType, schemaLocation, type, referredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceOrderRelationship {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderStateChangeEvent.java b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderStateChangeEvent.java new file mode 100644 index 0000000..b8d90fa --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderStateChangeEvent.java @@ -0,0 +1,102 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +public class ServiceOrderStateChangeEvent { + @JsonProperty("serviceOrder") + private ServiceOrder serviceOrder = null; + + public ServiceOrderStateChangeEvent serviceOrder(ServiceOrder serviceOrder) { + this.serviceOrder = serviceOrder; + return this; + } + + /** + * The involved resource data for the event + * @return serviceOrder + **/ + @Schema(description = "The involved resource data for the event") + + @Valid + + public ServiceOrder getServiceOrder() { + return serviceOrder; + } + + public void setServiceOrder(ServiceOrder serviceOrder) { + this.serviceOrder = serviceOrder; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceOrderStateChangeEvent serviceOrderStateChangeEvent = (ServiceOrderStateChangeEvent) o; + return Objects.equals(this.serviceOrder, serviceOrderStateChangeEvent.serviceOrder); + } + + @Override + public int hashCode() { + return Objects.hash(serviceOrder); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceOrderStateChangeEvent {\n"); + + sb.append(" serviceOrder: ").append(toIndentedString(serviceOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderStateChangeNotification.java b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderStateChangeNotification.java new file mode 100644 index 0000000..196a6e1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderStateChangeNotification.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Notification; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +public class ServiceOrderStateChangeNotification extends Notification { + + @JsonProperty("event") + private ServiceOrderStateChangeEvent event = null; + + public ServiceOrderStateChangeNotification eventId(String eventId) { + this.eventId = eventId; + return this; + } + + + + public ServiceOrderStateChangeNotification event(ServiceOrderStateChangeEvent event) { + this.event = event; + return this; + } + + /** + * The event linked to the involved resource object + * @return event + **/ + @Schema(description = "The event linked to the involved resource object") + + @Valid + + public ServiceOrderStateChangeEvent getEvent() { + return event; + } + + public void setEvent(ServiceOrderStateChangeEvent event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceOrderStateChangeNotification serviceOrderStateChangeNotification = (ServiceOrderStateChangeNotification) o; + return Objects.equals(this.eventId, serviceOrderStateChangeNotification.eventId) && + Objects.equals(this.eventTime, serviceOrderStateChangeNotification.eventTime) && + Objects.equals(this.eventType, serviceOrderStateChangeNotification.eventType) && + Objects.equals(this.fieldPath, serviceOrderStateChangeNotification.fieldPath) && + Objects.equals(this.resourcePath, serviceOrderStateChangeNotification.resourcePath) && + Objects.equals(this.event, serviceOrderStateChangeNotification.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, fieldPath, resourcePath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceOrderStateChangeNotification {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" resourcePath: ").append(toIndentedString(resourcePath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderStateType.java b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderStateType.java new file mode 100644 index 0000000..0a18e50 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderStateType.java @@ -0,0 +1,71 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Possible values for the state of the order + */ +public enum ServiceOrderStateType { + + INITIAL("INITIAL"), + + ACKNOWLEDGED("ACKNOWLEDGED"), + + REJECTED("REJECTED"), + + PENDING("PENDING"), + + HELD("HELD"), + + INPROGRESS("INPROGRESS"), + + CANCELLED("CANCELLED"), + + COMPLETED("COMPLETED"), + + FAILED("FAILED"), + + PARTIAL("PARTIAL"); + + private String value; + + ServiceOrderStateType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ServiceOrderStateType fromValue(String text) { + for (ServiceOrderStateType b : ServiceOrderStateType.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderUpdate.java b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderUpdate.java new file mode 100644 index 0000000..94347b0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceOrderUpdate.java @@ -0,0 +1,555 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Skipped properties: + * id,href,externalId,priority,state,orderDate,completionDate,orderItem + */ +@Schema(description = " Skipped properties: id,href,externalId,priority,state,orderDate,completionDate,orderItem") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +public class ServiceOrderUpdate { + @JsonProperty("category") + private String category = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("notificationContact") + private String notificationContact = null; + + private OffsetDateTime expectedCompletionDate = null; + + private OffsetDateTime requestedCompletionDate = null; + + private OffsetDateTime requestedStartDate = null; + + private OffsetDateTime startDate = null; + + @JsonProperty("note") + @Valid + private List note = null; + + @JsonProperty("orderRelationship") + @Valid + private List orderRelationship = null; + + @JsonProperty("relatedParty") + @Valid + private List relatedParty = null; + + /** + * standard says that this must not be available. + * Still we will allow to update + */ + @JsonProperty("state") + private ServiceOrderStateType state = null; + + + @JsonProperty("orderItem") + @Valid + private List orderItem = new ArrayList<>(); + + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public ServiceOrderUpdate category(String category) { + this.category = category; + return this; + } + + /** + * Used to categorize the order, useful for the OM system, such as: Broadband, + * TVOption + * + * @return category + **/ + @Schema(description = "Used to categorize the order, useful for the OM system, such as: Broadband, TVOption") + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public ServiceOrderUpdate description(String description) { + this.description = description; + return this; + } + + /** + * A free-text description of the service order + * + * @return description + **/ + @Schema(description = "A free-text description of the service order") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceOrderUpdate expectedCompletionDate(OffsetDateTime expectedCompletionDate) { + this.expectedCompletionDate = expectedCompletionDate; + return this; + } + + @JsonProperty("expectedCompletionDate") + public String getExpectedCompletionDateStr() { + if ( expectedCompletionDate!=null ) { + return expectedCompletionDate.toString(); + } + return baseType; + } + + /** + * Expected delivery date amended by the provider + * + * @return expectedCompletionDate + **/ + @Schema(description = "Expected delivery date amended by the provider") + + @Valid + + public OffsetDateTime getExpectedCompletionDate() { + return expectedCompletionDate; + } + + public void setExpectedCompletionDate(OffsetDateTime expectedCompletionDate) { + this.expectedCompletionDate = expectedCompletionDate; + } + + public void setExpectedCompletionDate(String expectedCompletionDate) { + + if (expectedCompletionDate != null) { + this.expectedCompletionDate = OffsetDateTime.parse(expectedCompletionDate); + + } + } + + public ServiceOrderUpdate notificationContact(String notificationContact) { + this.notificationContact = notificationContact; + return this; + } + + /** + * Contact attached to the order to send back information regarding this order + * + * @return notificationContact + **/ + @Schema(description = "Contact attached to the order to send back information regarding this order") + + public String getNotificationContact() { + return notificationContact; + } + + public void setNotificationContact(String notificationContact) { + this.notificationContact = notificationContact; + } + + public ServiceOrderUpdate requestedCompletionDate(OffsetDateTime requestedCompletionDate) { + this.requestedCompletionDate = requestedCompletionDate; + return this; + } + + /** + * Requested delivery date from the requestors perspective + * + * @return requestedCompletionDate + **/ + @Schema(description = "Requested delivery date from the requestors perspective") + + @Valid + + public OffsetDateTime getRequestedCompletionDate() { + return requestedCompletionDate; + } + + @JsonProperty("requestedCompletionDate") + public String getRequestedCompletionDateStr() { + if (requestedCompletionDate != null) { + return requestedCompletionDate.toString(); + } + + return null; + } + + public void setRequestedCompletionDate(OffsetDateTime requestedCompletionDate) { + this.requestedCompletionDate = requestedCompletionDate; + } + + public ServiceOrderUpdate requestedStartDate(OffsetDateTime requestedStartDate) { + this.requestedStartDate = requestedStartDate; + return this; + } + + public void setRequestedCompletionDate(String requestedCompletionDate) { + + if (requestedCompletionDate != null) { + this.requestedCompletionDate = OffsetDateTime.parse(requestedCompletionDate); + + } + } + + /** + * Order start date wished by the requestor + * + * @return requestedStartDate + **/ + @Schema(description = "Order start date wished by the requestor") + + @Valid + + public OffsetDateTime getRequestedStartDate() { + return requestedStartDate; + } + + @JsonProperty("requestedStartDate") + public String getRequestedStartDateStr() { + + if (requestedStartDate != null) { + return requestedStartDate.toString(); + } + + return null; + } + + public void setRequestedStartDate(OffsetDateTime requestedStartDate) { + this.requestedStartDate = requestedStartDate; + } + + public void setRequestedStartDate(String requestedStartDate) { + + if (requestedStartDate != null) { + this.requestedStartDate = OffsetDateTime.parse(requestedStartDate); + + } + } + + public ServiceOrderUpdate startDate(OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Date when the order was started for processing + * + * @return startDate + **/ + @Schema(description = "Date when the order was started for processing") + + @Valid + + public OffsetDateTime getStartDate() { + return startDate; + } + + @JsonProperty("startDate") + public String getStartDateStr() { + + if (startDate != null) { + return startDate.toString(); + } + + return null; + } + + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; + } + + public void setStartDate(String startDate) { + if (startDate != null) { + this.startDate = OffsetDateTime.parse(startDate); + + } + } + + public ServiceOrderUpdate note(List note) { + this.note = note; + return this; + } + + public ServiceOrderUpdate addNoteItem(Note noteItem) { + if (this.note == null) { + this.note = new ArrayList<>(); + } + this.note.add(noteItem); + return this; + } + + /** + * Extra-information about the order; e.g. useful to add extra delivery + * information that could be useful for a human process + * + * @return note + **/ + @Schema(description = "Extra-information about the order; e.g. useful to add extra delivery information that could be useful for a human process") + + @Valid + + public List getNote() { + return note; + } + + public void setNote(List note) { + this.note = note; + } + + public ServiceOrderUpdate orderRelationship(List orderRelationship) { + this.orderRelationship = orderRelationship; + return this; + } + + public ServiceOrderUpdate addOrderRelationshipItem(ServiceOrderRelationship orderRelationshipItem) { + if (this.orderRelationship == null) { + this.orderRelationship = new ArrayList<>(); + } + this.orderRelationship.add(orderRelationshipItem); + return this; + } + + /** + * A list of service orders related to this order (e.g. prerequisite, dependent + * on) + * + * @return orderRelationship + **/ + @Schema(description = "A list of service orders related to this order (e.g. prerequisite, dependent on)") + + @Valid + + public List getOrderRelationship() { + return orderRelationship; + } + + public void setOrderRelationship(List orderRelationship) { + this.orderRelationship = orderRelationship; + } + + public ServiceOrderUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ServiceOrderUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * A list of parties which are involved in this order and the role they are + * playing + * + * @return relatedParty + **/ + @Schema(description = "A list of parties which are involved in this order and the role they are playing") + + @Valid + + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public ServiceOrderUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + public ServiceOrderUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ServiceOrderUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name") + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + /** + * @return the state + */ + public ServiceOrderStateType getState() { + return state; + } + + public ServiceOrderUpdate addOrderItemItem(ServiceOrderItem orderItemItem) { + this.orderItem.add(orderItemItem); + return this; + } + + public List getOrderItem() { + return orderItem; + } + + public void setOrderItem(List orderItem) { + this.orderItem = orderItem; + } + + + /** + * @param state the state to set + */ + public void setState(ServiceOrderStateType state) { + this.state = state; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceOrderUpdate serviceOrderUpdate = (ServiceOrderUpdate) o; + return Objects.equals(this.category, serviceOrderUpdate.category) + && Objects.equals(this.description, serviceOrderUpdate.description) + && Objects.equals(this.expectedCompletionDate, serviceOrderUpdate.expectedCompletionDate) + && Objects.equals(this.notificationContact, serviceOrderUpdate.notificationContact) + && Objects.equals(this.requestedCompletionDate, serviceOrderUpdate.requestedCompletionDate) + && Objects.equals(this.requestedStartDate, serviceOrderUpdate.requestedStartDate) + && Objects.equals(this.startDate, serviceOrderUpdate.startDate) + && Objects.equals(this.note, serviceOrderUpdate.note) + && Objects.equals(this.orderRelationship, serviceOrderUpdate.orderRelationship) + && Objects.equals(this.relatedParty, serviceOrderUpdate.relatedParty) + && Objects.equals(this.baseType, serviceOrderUpdate.baseType) + && Objects.equals(this.schemaLocation, serviceOrderUpdate.schemaLocation) + && Objects.equals(this.type, serviceOrderUpdate.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(category, description, expectedCompletionDate, notificationContact, requestedCompletionDate, +// requestedStartDate, startDate, note, orderRelationship, relatedParty, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceOrderUpdate {\n"); + + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" expectedCompletionDate: ").append(toIndentedString(expectedCompletionDate)).append("\n"); + sb.append(" notificationContact: ").append(toIndentedString(notificationContact)).append("\n"); + sb.append(" requestedCompletionDate: ").append(toIndentedString(requestedCompletionDate)).append("\n"); + sb.append(" requestedStartDate: ").append(toIndentedString(requestedStartDate)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" note: ").append(toIndentedString(note)).append("\n"); + sb.append(" orderRelationship: ").append(toIndentedString(orderRelationship)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/model/ServiceRestriction.java b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceRestriction.java new file mode 100644 index 0000000..19f370b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/model/ServiceRestriction.java @@ -0,0 +1,490 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.etsi.osl.tmf.common.model.service.Characteristic; +import org.etsi.osl.tmf.common.model.service.Place; +import org.etsi.osl.tmf.common.model.service.ResourceRef; +import org.etsi.osl.tmf.common.model.service.ServiceRef; +import org.etsi.osl.tmf.common.model.service.ServiceRelationship; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.etsi.osl.tmf.common.model.service.ServiceStateType; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * In the context of a service order, and depending of the action requested + * (add/modify/delete/noChange) this data structure captures the configuration + * to apply to an existing subscribed service or to a new one + */ +@Schema(description = "In the context of a service order, and depending of the action requested (add/modify/delete/noChange) this data structure captures the configuration to apply to an existing subscribed service or to a new one") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:09:58.885+03:00") + +@Entity(name = "ServiceRestriction") +public class ServiceRestriction extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("category") + private String category = null; + + @JsonProperty("serviceType") + private String serviceType = null; + + @OneToOne(cascade = CascadeType.ALL) + private ServiceSpecificationRef serviceSpecificationRef = null; + + + @JsonProperty("place") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set place = new HashSet<>(); + + @JsonProperty("relatedParty") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set relatedParty = new HashSet<>(); + + @JsonProperty("serviceCharacteristic") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set serviceCharacteristic = new HashSet<>(); + + @JsonProperty("state") + private ServiceStateType state = ServiceStateType.FEASIBILITYCHECKED; + + @JsonProperty("supportingResource") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set supportingResource = new HashSet<>(); + + + @JsonProperty("serviceRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set serviceRelationship = new HashSet<>(); + + + + @JsonProperty("supportingService") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set supportingService = new HashSet<>(); + + /** + * Unique identifier of the service + * + * @return id + **/ + @Schema(description = "Unique identifier of the service") + + public String getId() { + return uuid; + } + + public ServiceRestriction category(String category) { + this.category = category; + return this; + } + + /** + * Is it a customer facing or resource facing service + * + * @return category + **/ + @Schema(description = "Is it a customer facing or resource facing service") + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public ServiceRestriction serviceType(String serviceType) { + this.serviceType = serviceType; + return this; + } + + /** + * Business type of the service + * + * @return serviceType + **/ + @Schema(description = "Business type of the service") + + public String getServiceType() { + return serviceType; + } + + public void setServiceType(String serviceType) { + this.serviceType = serviceType; + } + + public ServiceRestriction place(Set place) { + this.place = place; + return this; + } + + public ServiceRestriction addPlaceItem(Place placeItem) { + if (this.place == null) { + this.place = new HashSet<>(); + } + this.place.add(placeItem); + return this; + } + + /** + * A list of places (Place [*]). Used to define a place useful for the service + * (for example a delivery geographical place) + * + * @return place + **/ + @Schema(description = "A list of places (Place [*]). Used to define a place useful for the service (for example a delivery geographical place)") + + @Valid + + public Set getPlace() { + return place; + } + + public void setPlace(Set place) { + this.place = place; + } + + public ServiceRestriction relatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ServiceRestriction addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new HashSet<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * A list of related party references (RelatedParty [*]). A related party + * defines party or party role linked to a specific entity + * + * @return relatedParty + **/ + @Schema(description = "A list of related party references (RelatedParty [*]). A related party defines party or party role linked to a specific entity") + + @Valid + + public Set getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + } + + public ServiceRestriction serviceCharacteristic(Set serviceCharacteristic) { + this.serviceCharacteristic = serviceCharacteristic; + return this; + } + + public ServiceRestriction addServiceCharacteristicItem(Characteristic serviceCharacteristicItem) { + if (this.serviceCharacteristic == null) { + this.serviceCharacteristic = new HashSet<>(); + } + this.serviceCharacteristic.add(serviceCharacteristicItem); + return this; + } + + /** + * A list of characteristics that characterize this service + * (ServiceCharacteristic [*]) + * + * @return serviceCharacteristic + **/ + @Schema(description = "A list of characteristics that characterize this service (ServiceCharacteristic [*]) ") + + @Valid + + public Set getServiceCharacteristic() { + return serviceCharacteristic; + } + + public void setServiceCharacteristic(Set serviceCharacteristic) { + this.serviceCharacteristic = serviceCharacteristic; + } + + public ServiceRestriction serviceRelationship(Set serviceRelationship) { + this.serviceRelationship = serviceRelationship; + return this; + } + + public ServiceRestriction addServiceRelationshipItem(ServiceRelationship serviceRelationshipItem) { + if (this.serviceRelationship == null) { + this.serviceRelationship = new HashSet<>(); + } + this.serviceRelationship.add(serviceRelationshipItem); + return this; + } + + /** + * A list of service relationships (ServiceRelationship [*]). Describes links + * with other service(s) in the inventory (useful for describing relies-on, + * relies-from between CFS for example). + * + * @return serviceRelationship + **/ + @Schema(description = "A list of service relationships (ServiceRelationship [*]). Describes links with other service(s) in the inventory (useful for describing relies-on, relies-from between CFS for example).") + + @Valid + + public Set getServiceRelationship() { + return serviceRelationship; + } + + public void setServiceRelationship(Set serviceRelationship) { + this.serviceRelationship = serviceRelationship; + } + + + /** + * The specification from which this service was instantiated + * + * @return serviceSpecification + **/ + @Schema(description = "The specification from which this service was instantiated") + @Valid + public ServiceSpecificationRef getServiceSpecification() { + + + return this.serviceSpecificationRef; + } + + public void setServiceSpecification(ServiceSpecificationRef aServiceSpecificationRef) { + + this.serviceSpecificationRef = aServiceSpecificationRef; + this.name = aServiceSpecificationRef.getName(); + } + + + + + public ServiceRestriction state(ServiceStateType state) { + this.state = state; + return this; + } + + /** + * The life cycle state of the service, such as: [feasibilityChecked], + * [designed] + * + * @return state + **/ + @Schema(description = "The life cycle state of the service, such as: [feasibilityChecked], [designed]") + + @Valid + + public ServiceStateType getState() { + return state; + } + + public void setState(ServiceStateType state) { + this.state = state; + } + + public ServiceRestriction supportingResource(Set supportingResource) { + this.supportingResource = supportingResource; + return this; + } + + public ServiceRestriction addSupportingResourceItem(ResourceRef supportingResourceItem) { + if (this.supportingResource == null) { + this.supportingResource = new HashSet<>(); + } + this.supportingResource.add(supportingResourceItem); + return this; + } + + /** + * A list of supporting resources (SupportingResource [*]).Note: only Service of + * type RFS can be associated with Resources + * + * @return supportingResource + **/ + @Schema(description = "A list of supporting resources (SupportingResource [*]).Note: only Service of type RFS can be associated with Resources") + + @Valid + + public Set getSupportingResource() { + return supportingResource; + } + + public void setSupportingResource(Set supportingResource) { + this.supportingResource = supportingResource; + } + + public ServiceRestriction supportingService(Set supportingService) { + this.supportingService = supportingService; + return this; + } + + public ServiceRestriction addSupportingServiceItem(ServiceRef supportingServiceItem) { + if (this.supportingService == null) { + this.supportingService = new HashSet<>(); + } + this.supportingService.add(supportingServiceItem); + return this; + } + + /** + * A list of supporting services (SupportingService [*]). A collection of + * services that support this service (bundling, link CFS to RFS) + * + * @return supportingService + **/ + @Schema(description = "A list of supporting services (SupportingService [*]). A collection of services that support this service (bundling, link CFS to RFS)") + + @Valid + + public Set getSupportingService() { + return supportingService; + } + + public void setSupportingService(Set supportingService) { + this.supportingService = supportingService; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceRestriction serviceRestriction = (ServiceRestriction) o; + return Objects.equals(this.id, serviceRestriction.id) && Objects.equals(this.href, serviceRestriction.href) + && Objects.equals(this.category, serviceRestriction.category) + && Objects.equals(this.name, serviceRestriction.name) + && Objects.equals(this.serviceType, serviceRestriction.serviceType) + && Objects.equals(this.place, serviceRestriction.place) + && Objects.equals(this.relatedParty, serviceRestriction.relatedParty) + && Objects.equals(this.serviceCharacteristic, serviceRestriction.serviceCharacteristic) + && Objects.equals(this.serviceRelationship, serviceRestriction.serviceRelationship) + && Objects.equals(this.getServiceSpecification(), serviceRestriction.getServiceSpecification()) + && Objects.equals(this.state, serviceRestriction.state) + && Objects.equals(this.supportingResource, serviceRestriction.supportingResource) + && Objects.equals(this.supportingService, serviceRestriction.supportingService) + && Objects.equals(this.baseType, serviceRestriction.baseType) + && Objects.equals(this.schemaLocation, serviceRestriction.schemaLocation) + && Objects.equals(this.type, serviceRestriction.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, category, name, serviceType, place, relatedParty, serviceCharacteristic, +// serviceRelationship, getServiceSpecification(), state, supportingResource, supportingService, baseType, +// schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceRestriction {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" serviceType: ").append(toIndentedString(serviceType)).append("\n"); + sb.append(" place: ").append(toIndentedString(place)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" serviceCharacteristic: ").append(toIndentedString(serviceCharacteristic)).append("\n"); + sb.append(" serviceRelationship: ").append(toIndentedString(serviceRelationship)).append("\n"); + sb.append(" serviceSpecification: ").append(toIndentedString(getServiceSpecification())).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" supportingResource: ").append(toIndentedString(supportingResource)).append("\n"); + sb.append(" supportingService: ").append(toIndentedString(supportingService)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public Object getSupportingServiceById(@NotNull String id) { + for (ServiceRef sr : supportingService) { + if ( sr.getId().equals(id)) { + return sr; + } + } + return null; + } + + public Object getSupportingResourceById(@NotNull String id) { + for (ResourceRef sr : supportingResource) { + if ( sr.getId().equals(id)) { + return sr; + } + } + return null; + } + + /** + * return a characteristic matching by name + * @param name + * @return + */ + public Characteristic findCharacteristicByName(String aName) { + for (Characteristic c : serviceCharacteristic) { + if ( c.getName().equals(aName) ) { + return c; + } + } + + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/repo/ServiceOrderRepository.java b/src/main/java/org/etsi/osl/tmf/so641/repo/ServiceOrderRepository.java new file mode 100644 index 0000000..3279fad --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/repo/ServiceOrderRepository.java @@ -0,0 +1,55 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.common.model.UserPartRoleType; +import org.etsi.osl.tmf.so641.model.ServiceOrder; +import org.etsi.osl.tmf.so641.model.ServiceOrderStateType; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + +@Repository +public interface ServiceOrderRepository extends CrudRepository, PagingAndSortingRepository { + + + Optional findByUuid(String id); + Iterable findByState( ServiceOrderStateType state); + @Query("SELECT sor FROM ServiceOrder sor JOIN FETCH sor.relatedParty rp WHERE rp.name = ?1 AND rp.role = ?2 ORDER BY sor.orderDate DESC") + Iterable findByRolenameAndRoleType(String rolename, UserPartRoleType requester); + @Query("SELECT sor FROM ServiceOrder sor JOIN FETCH sor.relatedParty rp WHERE rp.name = ?1") + Iterable findByRolename(String rolename); + + List findByOrderByOrderDateDesc(); + + @Query("SELECT sor FROM ServiceOrder sor JOIN FETCH sor.relatedParty rp ORDER BY sor.orderDate DESC") + List findAllOptimized(); + + + + @Query("SELECT sor FROM ServiceOrder sor JOIN FETCH sor.note an " + + "WHERE sor.uuid = ?1 " + + "ORDER BY an.date ASC") + Optional findNotesOfServOrder(String id); +} diff --git a/src/main/java/org/etsi/osl/tmf/so641/reposervices/ServiceOrderRepoService.java b/src/main/java/org/etsi/osl/tmf/so641/reposervices/ServiceOrderRepoService.java new file mode 100644 index 0000000..80e1248 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/so641/reposervices/ServiceOrderRepoService.java @@ -0,0 +1,989 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.so641.reposervices; + +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +//import com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module; +import com.fasterxml.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.EValueType; +import org.etsi.osl.tmf.common.model.UserPartRoleType; +import org.etsi.osl.tmf.common.model.service.Characteristic; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.common.model.service.ResourceRef; +import org.etsi.osl.tmf.common.model.service.ServiceRef; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.scm633.model.ServiceSpecCharacteristic; +import org.etsi.osl.tmf.scm633.model.ServiceSpecCharacteristicValue; +import org.etsi.osl.tmf.scm633.model.ServiceSpecification; +import org.etsi.osl.tmf.scm633.reposervices.ServiceSpecificationRepoService; +import org.etsi.osl.tmf.sim638.service.ServiceRepoService; +import org.etsi.osl.tmf.so641.api.ServiceOrderApiRouteBuilderEvents; +import org.etsi.osl.tmf.so641.model.ServiceOrder; +import org.etsi.osl.tmf.so641.model.ServiceOrderActionType; +import org.etsi.osl.tmf.so641.model.ServiceOrderAttributeValueChangeEvent; +import org.etsi.osl.tmf.so641.model.ServiceOrderAttributeValueChangeNotification; +import org.etsi.osl.tmf.so641.model.ServiceOrderCreate; +import org.etsi.osl.tmf.so641.model.ServiceOrderCreateEvent; +import org.etsi.osl.tmf.so641.model.ServiceOrderCreateNotification; +import org.etsi.osl.tmf.so641.model.ServiceOrderItem; +import org.etsi.osl.tmf.so641.model.ServiceOrderRelationship; +import org.etsi.osl.tmf.so641.model.ServiceOrderStateChangeEvent; +import org.etsi.osl.tmf.so641.model.ServiceOrderStateChangeNotification; +import org.etsi.osl.tmf.so641.model.ServiceOrderStateType; +import org.etsi.osl.tmf.so641.model.ServiceOrderUpdate; +import org.etsi.osl.tmf.so641.repo.ServiceOrderRepository; +import org.etsi.osl.tmf.util.KrokiClient; +import org.hibernate.Hibernate; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.query.Query; +import org.hibernate.transform.ResultTransformer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import jakarta.persistence.EntityManagerFactory; +import jakarta.persistence.TemporalType; +import jakarta.validation.Valid; +import lombok.Data; + +@Service +public class ServiceOrderRepoService { + + private static final transient Log logger = LogFactory.getLog(ServiceOrderRepoService.class.getName()); + + @Autowired + ObjectMapper objectMapper; + + @Autowired + ServiceOrderRepository serviceOrderRepo; + + @Autowired + ServiceSpecificationRepoService serviceSpecRepoService; + + @Autowired + ServiceOrderApiRouteBuilderEvents serviceOrderApiRouteBuilder; + + @Autowired + ServiceRepoService serviceRepoService; + + private SessionFactory sessionFactory; + + + @Autowired + public ServiceOrderRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + /** + * + * This findAll is optimized on fields. + * @param fields + * @param allParams + * @return + * @throws UnsupportedEncodingException + */ + @Transactional + public List findAll(@Valid String fields, Map allParams, @Valid Date starttime, @Valid Date endtime) + throws UnsupportedEncodingException { + + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + List alist = null; + try { +// String sql = "SELECT s FROM ServiceSpecification s"; + String sql = "SELECT " + + "sor.uuid as uuid," + + "sor.orderDate as orderDate," + + "sor.requestedStartDate as requestedStartDate," + + "sor.requestedCompletionDate as requestedCompletionDate," + + "sor.startDate as startDate," + + "sor.expectedCompletionDate as expectedCompletionDate," + + "sor.state as state," + + "sor.type as type," + + "rp.uuid as relatedParty_uuid," + + "rp.name as relatedParty_name"; + + if (fields != null && fields.length()>0 ) { + String[] field = fields.split(","); + for (String f : field) { + sql += ", sor." + f + " as " + f ; + } + + } + sql += " FROM ServiceOrder sor " + + "JOIN sor.relatedParty rp "; + + if (allParams.size() > 0) { + sql += " WHERE rp.role = 'REQUESTER' AND "; + for (String pname : allParams.keySet()) { + sql += " " + pname + " LIKE "; + String pval = URLDecoder.decode(allParams.get(pname), StandardCharsets.UTF_8.toString()); + sql += "'" + pval + "'"; + } + } else { + sql += " WHERE rp.role = 'REQUESTER' "; + } + + if ( starttime != null ) { + sql += " AND sor.startDate >= :param1"; + + } + if ( endtime != null ) { + sql += " AND sor.expectedCompletionDate <= :param2"; + } + + sql += " ORDER BY sor.orderDate DESC"; + + Query query = session.createQuery( sql ); + if ( starttime != null ) { + query.setParameter("param1", starttime.toInstant().atOffset(ZoneOffset.UTC) ); + } + if ( endtime != null ) { + query.setParameter("param2", endtime.toInstant().atOffset(ZoneOffset.UTC) ); + } + + List mapaEntity = query + .setResultTransformer( new ResultTransformer() { + + @Override + public Object transformTuple(Object[] tuple, String[] aliases) { + Map result = new LinkedHashMap(tuple.length); + for (int i = 0; i < tuple.length; i++) { + String alias = aliases[i]; + if (alias.equals("uuid")) { + result.put("id", tuple[i]); + } + if (alias.equals("type")) { + alias = "@type"; + } + if (alias.equals("relatedParty_name")) { + if ( result.get( "relatedParty" ) == null ) { + result.put("relatedParty", new ArrayList() ) ; + } + ArrayList< Object> rpList = (ArrayList< Object>) result.get( "relatedParty" ); + LinkedHashMap rp = new LinkedHashMap(); + rp.put("name", tuple[i]); + rp.put("role", "REQUESTER" ); + rpList.add(rp); + } + if (alias != null) { + result.put(alias, tuple[i]); + } + } + + return result; + } + + @Override + public List transformList(List collection) { + return collection; + } + } ) + .list(); + + + +// List mapaEntity = session +// .createQuery(sql ) +// .setResultTransformer( new ResultTransformer() { +// +// @Override +// public ServiceOrder transformTuple(Object[] tuple, String[] aliases) { +// //Map result = new LinkedHashMap(tuple.length); +// ServiceOrder so = new ServiceOrder(); +// so.setUuid( (String) tuple[0] ); +// so.setOrderDate( (OffsetDateTime) tuple[1] ); +// ServiceOrderItem soi = new ServiceOrderItem(); +// so.addOrderItemItem( soi ); +// ServiceRestriction service = new ServiceRestriction(); +// service.setName( (String) tuple[9] ); +// soi.setService(service ); +// +//// for (int i = 0; i < tuple.length; i++) { +//// String alias = aliases[i]; +//// if (alias.equals("type")) { +//// alias = "@type"; +//// } +//// if (alias != null) { +//// result.put(alias, tuple[i]); +//// } +//// } +// +// return so; +// } +// +// @Override +// public List transformList(List collection) { +// return collection; +// } +// } ) +// .list(); + +// //this will fetch the whole object fields +// if ( (( allParams!= null) && ( allParams.size()>0)) ) { +// List resultlist = new ArrayList<>(); +// for (ServiceSpecification s : alist) { +// resultlist.add( findByUuid( s.getUuid() )); +// } +// return resultlist; +// } + + + + return mapaEntity; + + + + + } finally { + tx.commit(); + session.close(); + } + + } + + public List findAll() { + + //return (List) this.serviceOrderRepo.findAll(); + //return (List) this.serviceOrderRepo.findByOrderByOrderDateDesc(); + return (List) this.serviceOrderRepo.findAllOptimized(); + } + + public List findAllParams(Map allParams) { + logger.info("findAll with params:" + allParams.toString()); + if ( ( allParams !=null) && allParams.get("state") !=null) { + ServiceOrderStateType state = ServiceOrderStateType.fromValue( allParams.get("state") ); + logger.info("find by state:" + state ); + return (List) this.serviceOrderRepo.findByState(state); + }else { + return findAll(); + } + + } + + public String findAllParamsJsonOrderIDs(Map allParams) throws JsonProcessingException { + List lso = findAllParams(allParams); + ArrayList oids = new ArrayList<>(); + for (ServiceOrder object : lso) { + oids.add(object.getId()); + } + ObjectMapper mapper = new ObjectMapper(); + // Registering Hibernate4Module to support lazy objects + // this will fetch all lazy objects before marshaling + mapper.registerModule(new Hibernate5JakartaModule()); + String res = mapper.writeValueAsString( oids ); + + return res; + } + + public ServiceOrder addServiceOrder(@Valid ServiceOrderCreate serviceOrderCreate) { + ServiceOrder so = new ServiceOrder(); + so.setOrderDate(OffsetDateTime.now(ZoneOffset.UTC)); + so.setCategory(serviceOrderCreate.getCategory()); + so.setDescription(serviceOrderCreate.getDescription()); + so.setExternalId(serviceOrderCreate.getExternalId()); + so.setNotificationContact(serviceOrderCreate.getNotificationContact()); + so.priority(serviceOrderCreate.getPriority()); + so.requestedCompletionDate(serviceOrderCreate.getRequestedCompletionDate()); + so.requestedStartDate(serviceOrderCreate.getRequestedStartDate() ); + so.setStartDate( serviceOrderCreate.getRequestedStartDate() ); + so.setExpectedCompletionDate( serviceOrderCreate.getRequestedCompletionDate() ); //this is by default + if (serviceOrderCreate.getNote() != null) { + so.getNote().addAll(serviceOrderCreate.getNote()); + } + + + + + boolean allAcknowledged = true; + if (serviceOrderCreate.getOrderItem() != null) { + so.getOrderItem().addAll(serviceOrderCreate.getOrderItem()); + for (ServiceOrderItem soi : so.getOrderItem()) { + //as of 18/8/2021 in service item we do not copy all service spec characteristics. The characteristics of the spec, since they are not user configurable will + //be just exist in the service instance + //copySpecCharacteristicsToServiceCharacteristic( soi.getService().getServiceSpecification().getId(), soi.getService().getServiceCharacteristic() ); + + if ( ! soi.getState().equals( ServiceOrderStateType.ACKNOWLEDGED )) { + allAcknowledged = false; + } + } + + + + } + + if (serviceOrderCreate.getRelatedParty() != null) { + so.getRelatedParty().addAll(serviceOrderCreate.getRelatedParty()); + } + if (serviceOrderCreate.getOrderRelationship() != null) { + so.getOrderRelationship().addAll(serviceOrderCreate.getOrderRelationship()); + + } + +// so = this.serviceOrderRepo.save(so); +// so = this.fixServiceOrderItemsDependencies(so); + + Note noteItem = new Note(); + noteItem.setText("Service Order " + ServiceOrderStateType.INITIAL); + noteItem.setAuthor("SO641API-addServiceOrder"); + noteItem.setDate(OffsetDateTime.now(ZoneOffset.UTC) ); + so.addNoteItem(noteItem); + + so = this.serviceOrderRepo.save(so); + + if (allAcknowledged) { //in the case were order items are automatically acknowledged + so.setState( ServiceOrderStateType.ACKNOWLEDGED ); + so.setStartDate( OffsetDateTime.now(ZoneOffset.UTC) ); + noteItem = new Note(); + noteItem.setText("Service Order " + ServiceOrderStateType.ACKNOWLEDGED); + noteItem.setAuthor("SO641API-addServiceOrder"); + noteItem.setDate(OffsetDateTime.now(ZoneOffset.UTC) ); + so.addNoteItem(noteItem); + + so = this.serviceOrderRepo.save(so); + } + + raiseSOCreateNotification(so); + + return so; + } + +// private ServiceOrder fixServiceOrderItemsDependencies(ServiceOrder so) { +// +// // we need to resolve service relationships for this order item +// for (ServiceOrderItem soi : so.getOrderItem()) { +// +// // find the proper service spec +// ServiceSpecification spec = serviceSpecRepoService +// .findByUuid(soi.getService().getServiceSpecification().getId()); +// soi = addResourceSpecificationRefs(soi, spec); +// soi = addBundleSpecificationRefs(soi, spec); +// +// for (ServiceSpecCharacteristic specChar : spec.getServiceSpecCharacteristic()) { +// if (specChar.isConfigurable()) { +// Characteristic serviceCharacteristicItem = new Characteristic(); +// serviceCharacteristicItem.setName(specChar.getName()); +// serviceCharacteristicItem.setValueType(specChar.getValueType()); +// for (ServiceSpecCharacteristicValue specval : specChar.getServiceSpecCharacteristicValue()) { +// if (specval.isIsDefault()) { +// serviceCharacteristicItem.setValue(specval.getValue()); +// break; +// } +// } +// soi.getService().addServiceCharacteristicItem(serviceCharacteristicItem); +// } +// } +// +// } +// return so; +// } +// +// private ServiceOrderItem addBundleSpecificationRefs(ServiceOrderItem soi, ServiceSpecification spec) { +// if (spec.isIsBundle()) { +// for (ServiceSpecRelationship specRel : spec.getServiceSpecRelationship()) { +// ServiceSpecification refServiceSpec = serviceSpecRepoService.findByUuid(specRel.getId()); +// +// ServiceRef supportingServiceItem = new ServiceRef(); +// supportingServiceItem.setId(refServiceSpec.getId()); +// supportingServiceItem.setName(refServiceSpec.getName()); +// soi.getService().addSupportingServiceItem(supportingServiceItem); +// ServiceRelationship serviceRelationshipItem = new ServiceRelationship(); +// serviceRelationshipItem.setRelationshipType(specRel.getRelationshipType()); +// serviceRelationshipItem.setService(supportingServiceItem); +// soi.getService().addServiceRelationshipItem(serviceRelationshipItem); +// +// soi = addResourceSpecificationRefs(soi, refServiceSpec); // recursive +// soi = addBundleSpecificationRefs(soi, refServiceSpec); // recursive +// } +// } +// return soi; +// } +// +// private ServiceOrderItem addResourceSpecificationRefs(ServiceOrderItem soi, ServiceSpecification spec) { +// for (ResourceSpecificationRef resSpecRef : spec.getResourceSpecification()) { +// ResourceRef supportingResourceItem = new ResourceRef(); +// supportingResourceItem.setId(resSpecRef.getId()); +// supportingResourceItem.setName(resSpecRef.getName()); +// +// soi.getService().addSupportingResourceItem(supportingResourceItem); +// } +// return soi; +// } + + + + /** + * + * will copy any remaining service spec characteristics that where not included in the initial order + * + * @param sourceSpecID + * @param destServiceCharacteristic + */ + private void copySpecCharacteristicsToServiceCharacteristic(String sourceSpecID, @Valid Set destServiceCharacteristic) { + ServiceSpecification sourceSpec = serviceSpecRepoService.findByUuid(sourceSpecID); + if ( sourceSpec == null ) { + return; + } + + for (ServiceSpecCharacteristic sourceCharacteristic : sourceSpec.getServiceSpecCharacteristic()) { + if ( sourceCharacteristic.getValueType() != null ) { + boolean charfound = false; + for (Characteristic destchar : destServiceCharacteristic) { + if ( destchar.getName().equals(sourceCharacteristic.getName())) { + charfound = true; + break; + } + } + + if (!charfound) { + + Characteristic newChar = new Characteristic(); + newChar.setName( sourceCharacteristic.getName() ); + newChar.setValueType( sourceCharacteristic.getValueType() ); + + if ( sourceCharacteristic.getValueType().equals( EValueType.ARRAY.getValue() ) || + sourceCharacteristic.getValueType().equals( EValueType.SET.getValue() ) ) { + String valString = ""; + for (ServiceSpecCharacteristicValue specchar : sourceCharacteristic.getServiceSpecCharacteristicValue()) { + if ( ( specchar.isIsDefault()!= null) && specchar.isIsDefault() ) { + if ( !valString.equals("")) { + valString = valString + ","; + } + valString = valString + "{\"value\":\"" + specchar.getValue().getValue() + "\",\"alias\":\"" + specchar.getValue().getAlias() + "\"}"; + } + + } + + newChar.setValue( new Any( "[" + valString + "]", "") ); + + + } else { + for (ServiceSpecCharacteristicValue specchar : sourceCharacteristic.getServiceSpecCharacteristicValue()) { + if ( ( specchar.isIsDefault()!= null) && specchar.isIsDefault() ) { + newChar.setValue( new Any( + specchar.getValue().getValue(), + specchar.getValue().getAlias()) ); + break; + }else { + if (specchar.isIsDefault()== null){ + + logger.info("specchar is null value: " + sourceCharacteristic.getName() ); + } + } + + } + } + + //sourceCharacteristic.getServiceSpecCharacteristicValue() + + if ( newChar.getValue() !=null) { + destServiceCharacteristic.add(newChar ); + } + + } + + } + + + } + + } + + @Transactional + public ServiceOrder updateServiceOrder(String id, @Valid ServiceOrderUpdate serviceOrderUpd) { + + logger.info("Will updateServiceOrder:" + id); + + ServiceOrder so = this.findByUuid(id); + boolean stateChanged = false; + + //logger.info("so:" + so.toString()); + for (ServiceOrderItem oi : so.getOrderItem() ) { + logger.debug( "(oi.getId() = "+oi.getId() ); + + } + if ( serviceOrderUpd.getState()!= null ) { + + + + stateChanged = so.getState() != serviceOrderUpd.getState(); + so.setState( serviceOrderUpd.getState() ); + + if ( so.getState().equals( ServiceOrderStateType.COMPLETED )) { + so.setCompletionDate( OffsetDateTime.now(ZoneOffset.UTC)); + } + + + + + + + + } + if ( serviceOrderUpd.getCategory()!= null ) { + so.setCategory(serviceOrderUpd.getCategory()); + + } + + if ( serviceOrderUpd.getDescription()!= null ) { + so.setDescription(serviceOrderUpd.getDescription()); + + } + + if ( serviceOrderUpd.getNotificationContact()!= null ) { + so.setNotificationContact(serviceOrderUpd.getNotificationContact()); + + } + + if ( serviceOrderUpd.getRequestedCompletionDate()!= null ) { + so.requestedCompletionDate(serviceOrderUpd.getRequestedCompletionDate()); + + } + + if ( serviceOrderUpd.getRequestedStartDate()!= null ) { + so.requestedStartDate(serviceOrderUpd.getRequestedStartDate()); + + } + + if ( serviceOrderUpd.getExpectedCompletionDate()!= null ) { + so.setExpectedCompletionDate(serviceOrderUpd.getExpectedCompletionDate()); + + } + + if ( serviceOrderUpd.getStartDate()!= null ) { + so.setStartDate(serviceOrderUpd.getStartDate()); + + } + + + if ( serviceOrderUpd.getOrderItem() != null ) { + for (ServiceOrderItem soiUpd : serviceOrderUpd.getOrderItem()) { + ServiceOrderItem soiOrigin = so.findOrderItemById( soiUpd.getId() ); + if (soiOrigin!=null) { + updateOrderItem(soiOrigin, soiUpd); + /** + * When we patch the order and see a MODIFY or DELETE action, we set the state to ACKNOWLEDGED + */ + if ( soiOrigin.getAction().equals( ServiceOrderActionType.MODIFY ) || + soiOrigin.getAction().equals( ServiceOrderActionType.DELETE )) { + soiOrigin.setState( ServiceOrderStateType.ACKNOWLEDGED ); + so.setState( ServiceOrderStateType.ACKNOWLEDGED ); + + + } + + } + } + } + + + + + if (serviceOrderUpd.getNote() != null) { + for (Note n : serviceOrderUpd.getNote()) { + if (n.getUuid() == null) { + so.addNoteItem(n); + } + } + + } + + if (serviceOrderUpd.getRelatedParty() != null) { + for (RelatedParty n : serviceOrderUpd.getRelatedParty()) { + if (n.getUuid() == null) { + so.addRelatedPartyItem(n); + } + } + } + if (serviceOrderUpd.getOrderRelationship() != null) { + for (ServiceOrderRelationship n : serviceOrderUpd.getOrderRelationship()) { + if (n.getUuid() == null) { + so.addOrderRelationshipItem(n); + } + } + } + + + if ( stateChanged ) { + Note noteItem = new Note(); + noteItem.setText("Service Order " + so.getState() ); + noteItem.setAuthor("SO641API-stateChanged"); + noteItem.setDate(OffsetDateTime.now(ZoneOffset.UTC) ); + so.addNoteItem(noteItem); + } + + + + + + + so = this.serviceOrderRepo.save(so); + if (stateChanged) { + raiseSOStateChangedNotification(so); + } else { + raiseSOAttributeValueChangedNotification(so); + } + + return so; + } + + + + + private void updateOrderItem(ServiceOrderItem soiOrigin, ServiceOrderItem soiUpd) { + + if ( soiUpd.getAction()!=null) { + soiOrigin.setAction( soiUpd.getAction() ); + } + + if ( soiUpd.getState()!=null) { + soiOrigin.setState( soiUpd.getState() ); + } + + if ( soiUpd.getService() !=null) { + if ( soiOrigin.getService() == null) { + soiOrigin.setService(soiUpd.getService()); + } else { + soiOrigin.getService().setState( soiUpd.getService().getState() );//this probably will change only + soiOrigin.getService().setName( soiUpd.getService().getName() ); + + + for (Characteristic updChar : soiUpd.getService().getServiceCharacteristic() ) { + String charname = updChar.getName(); + Characteristic originChar = soiOrigin.getService().findCharacteristicByName ( charname ); + if ( ( originChar != null ) && ( updChar != null ) && ( originChar.getValue() != null ) &&( originChar.getValue().getValue() != null ) && ( updChar.getValue() != null ) ) { + if ( !originChar.getValue().getValue().equals( updChar.getValue().getValue() ) ) { + originChar.setValue( new Any( updChar.getValue() ) ); + } + } else if ( ( originChar != null ) && ( originChar.getValue() == null ) && ( updChar.getValue() != null ) ) { + originChar.setValue( new Any( updChar.getValue() ) ); + } + } + + //we need also to update supportingServices + for (ServiceRef serviceRef : soiUpd.getService().getSupportingService()) { + if ( soiOrigin.getService().getSupportingServiceById(serviceRef.getId() ) == null ) { + soiOrigin.getService().addSupportingServiceItem(serviceRef); + } + } + + for (ResourceRef resourceRef : soiUpd.getService().getSupportingResource()) { + if ( soiOrigin.getService().getSupportingResourceById(resourceRef.getId() ) == null ) { + soiOrigin.getService().addSupportingResourceItem(resourceRef) ; + } + } + + + } + } + } + + + + + public ServiceOrder findByUuid(String id) { + Optional optionalCat = this.serviceOrderRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + + public String getServiceOrderEagerAsString(String id) throws JsonProcessingException { + ServiceOrder s = this.getServiceORderEager(id); + ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new Hibernate5JakartaModule()); + String res = mapper.writeValueAsString(s); + + return res; + } + + public ServiceOrder getServiceORderEager(String id) { + + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + + try { + ServiceOrder s = null; + try { + s = (ServiceOrder) session.get(ServiceOrder.class, id); + if (s == null) { + return this.findByUuid(id);// last resort + } + + Hibernate.initialize(s.getRelatedParty()); + Hibernate.initialize(s.getOrderItem() ); + Hibernate.initialize(s.getNote() ); + for (ServiceOrderItem soi : s.getOrderItem()) { + Hibernate.initialize( soi.getService().getSupportingService() ); + Hibernate.initialize( soi.getService().getSupportingResource()); + Hibernate.initialize( soi.getService().getServiceCharacteristic() ); + Hibernate.initialize( soi.getService().getRelatedParty() ); + } + + tx.commit(); + } finally { + session.close(); + } + + return s; + } catch (Exception e) { + // TODO: handle exception + } + + session.close(); + return null; + + + } + + @Transactional + private void raiseSOCreateNotification(ServiceOrder so) { + ServiceOrderCreateNotification n = new ServiceOrderCreateNotification(); + ServiceOrderCreateEvent event = new ServiceOrderCreateEvent(); + event.serviceOrder( so ); + n.setEvent(event ); + serviceOrderApiRouteBuilder.publishEvent(n, so.getId()); + + } + + @Transactional + private void raiseSOStateChangedNotification(ServiceOrder so) { + ServiceOrderStateChangeNotification n = new ServiceOrderStateChangeNotification(); + ServiceOrderStateChangeEvent event = new ServiceOrderStateChangeEvent(); + //event.serviceOrder( getServiceORderEager( so.getId()) ); + event.serviceOrder( so ); + n.setEvent(event ); + serviceOrderApiRouteBuilder.publishEvent(n, so.getId()); + + } + + @Transactional + private void raiseSOAttributeValueChangedNotification(ServiceOrder so) { + ServiceOrderAttributeValueChangeNotification n = new ServiceOrderAttributeValueChangeNotification(); + ServiceOrderAttributeValueChangeEvent event = new ServiceOrderAttributeValueChangeEvent(); + event.serviceOrder( so ); + n.setEvent(event ); + serviceOrderApiRouteBuilder.publishEvent(n, so.getId()); + + } + + public List findAll(String rolename, UserPartRoleType requester) { +// return (List) this.serviceOrderRepo.findByRolenameAndRoleType(rolename, requester); + return (List) this.serviceOrderRepo.findByRolename(rolename); + } + + public Void deleteByUuid(String id) { + + Optional optso = this.serviceOrderRepo.findByUuid(id); + ServiceOrder so = optso.get(); + if ( so == null ) { + return null; + } + + this.serviceOrderRepo.delete(so); + return null; + } + + public String addServiceOrderReturnEager(@Valid ServiceOrderCreate serviceOrderCreate) { + ServiceOrder so = this.addServiceOrder(serviceOrderCreate); + try { + return this.getServiceOrderEagerAsString( so.getUuid()); + } catch (JsonProcessingException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + public String getImageServiceOrderItemRelationshipGraph(String id, String itemid) { + + ServiceOrder so = this.findByUuid(id); + String charvalue = null; + if ( so!=null) { + for (ServiceOrderItem soiOrigin : so.getOrderItem()) { + if ( soiOrigin.getId().equals(itemid)) { + charvalue = createItemRelationshipGraphNotation( soiOrigin ); + +// Characteristic gnchar = soiOrigin.getService().findCharacteristicByName ( "SOITEM_GRAPH_NOTATION" ); +// if ( gnchar == null ) { +// Characteristic serviceCharacteristicItem = new Characteristic(); +// serviceCharacteristicItem.setName( "SOITEM_GRAPH_NOTATION" ); +// serviceCharacteristicItem.setValue( new Any( charvalue , "SOITEM_GRAPH_NOTATION" ) ); +// serviceCharacteristicItem.setValueType( EValueType.LONGTEXT.getValue() ); +// soiOrigin.getService().addServiceCharacteristicItem( serviceCharacteristicItem ); + // +// } else { +// gnchar.setValue( new Any( charvalue , "SOITEM_GRAPH_NOTATION" ) ); +// } + } + + } + } + + return KrokiClient.encodedGraph( charvalue ); + } + + + + private String createItemRelationshipGraphNotation( ServiceOrderItem soiOrigin ) { + String result = getSOItemGraphNotation(soiOrigin, 0 ); + result = "blockdiag {" + + "default_textcolor = white;\r\n" + + "default_fontsize = 12;\r\n" + + "\r\n" + result + "}"; + return result; + } + + + + private String getSOItemGraphNotation(ServiceOrderItem soiOrigin, int depth) { + String result = ""; + if (depth>10) { + return result; + } + for (ServiceRef specRel : soiOrigin.getService().getSupportingService() ) { + if ( !soiOrigin.getService().getName().equals( specRel.getName()) ) { + result += "\""+ soiOrigin.getService().getId() + "\""+ " -> " + "\""+ specRel.getId() +"\" "+";\r\n"; + result += "\""+ specRel.getId() + "\""+ " [label =\""+ specRel.getName() +"\", color = \"#2596be\"]; \r\n"; + org.etsi.osl.tmf.sim638.model.Service aService= serviceRepoService.findByUuid( specRel.getId() ); + if ( aService!= null) { + result += getServiceGraphNotation( aService,0 ); + } + } + + } + + for (ResourceRef resRel :soiOrigin.getService().getSupportingResource() ) { + result += "\""+ soiOrigin.getService().getId() + "\""+ " -> " + "\""+ resRel.getId() + "\""+ ";\r\n"; + result += "\""+ resRel.getId() + "\""+ " [label = \"" + resRel.getName() + "\", shape = roundedbox, color = \"#e28743\"]; \r\n"; + + } + + result += "\""+ soiOrigin.getService().getId() + "\""+ " [label = \""+ soiOrigin.getService().getName() +"\", color = \"#2596be\"]; \r\n"; + return result; + } + + private String getServiceGraphNotation(org.etsi.osl.tmf.sim638.model.Service aService, int depth) { + String result = ""; + if (depth>10) { + return result; + } + for (ServiceRef specRel : aService.getSupportingService() ) { + result += "\""+ aService.getId() + "\""+ " -> " + "\""+ specRel.getId() +"\" "+";\r\n"; + result += "\""+ specRel.getId() + "\""+ " [label = \"" + specRel.getName() + "\", color = \"#2596be\"];\r\n"; + + for (ResourceRef resRel : aService.getSupportingResource()) { + + result += "\""+ aService.getId() + "\""+ " -> " + "\""+ resRel.getId() + "\""+ ";\r\n"; + result += "\""+ resRel.getId() + "\""+ " [ label = \"" + resRel.getName() +"\", shape = roundedbox, color = \"#e28743\"]; \r\n"; + + } + + } + + + return result; + } + + + public String getImageServiceOrderNotesGraph(String id) { + + @Data + class ALane{ + public ALane(String author) { + this.name =author; + } + String name = ""; + List boxes = new ArrayList(); + } + + Map lanes = new HashMap<>(); + String charvalue = ""; + Optional optionalCat = this.serviceOrderRepo.findNotesOfServOrder(id); + if ( optionalCat.isPresent() ) { + + ServiceOrder so = optionalCat.get(); + List notes = so.getNote() + .stream() + .sorted( (a, b) -> a.getDate().compareTo(b.getDate()) ) + .collect(Collectors.toList()); + + for (Note anote : notes ) { + if ( charvalue.length() > 0 ) { + charvalue += " -> "; + } + charvalue += "\""+ anote.getUuid() + "\"" ; + + if ( lanes.get( anote.getAuthor()) == null) { + lanes.put( anote.getAuthor() , new ALane( anote.getAuthor() )); + } + + lanes.get( anote.getAuthor()).boxes.add( anote); + + } + + } + + for (String lane : lanes.keySet()) { + charvalue += "lane " + lanes.get(lane).name + " {\r\n"; + for ( Note aNote : lanes.get(lane).boxes) { + charvalue += aNote.getUuid() +" [label = \"" + aNote.getDateString() + "\r\n "+ aNote.getText() +"\", color = \"#2596be\"]\r\n"; + } + charvalue += "}\r\n"; + } + + charvalue = "actdiag {" + + "default_textcolor = white;\r\n" + + "default_fontsize = 9;\r\n" + + "\r\n" + charvalue + "}\r\n"; + return KrokiClient.encodedGraph( charvalue ); + + + } + + + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/api/ApiException.java b/src/main/java/org/etsi/osl/tmf/sqm657/api/ApiException.java new file mode 100644 index 0000000..fa61317 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/api/ApiException.java @@ -0,0 +1,30 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/api/ApiOriginFilter.java b/src/main/java/org/etsi/osl/tmf/sqm657/api/ApiOriginFilter.java new file mode 100644 index 0000000..eadacc8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/api/ApiOriginFilter.java @@ -0,0 +1,51 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.api; + +import java.io.IOException; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +public class ApiOriginFilter implements jakarta.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/api/ApiResponseMessage.java b/src/main/java/org/etsi/osl/tmf/sqm657/api/ApiResponseMessage.java new file mode 100644 index 0000000..548f0e9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/api/ApiResponseMessage.java @@ -0,0 +1,89 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.api; + +import jakarta.xml.bind.annotation.XmlTransient; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +@jakarta.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/sqm657/api/HubApi.java new file mode 100644 index 0000000..0ecc8b0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/api/HubApi.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.sqm657.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.sqm657.model.EventSubscription; +import org.etsi.osl.tmf.sqm657.model.EventSubscriptionInput; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +@Tag(name = "hub", description = "the hub API") +public interface HubApi { + + Logger log = LoggerFactory.getLogger(HubApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Register a listener", operationId = "registerListener", description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Subscribed" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.POST) + default ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput data) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\"}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Unregister a listener", operationId = "unregisterListener", description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method not allowed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub/{id}", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.DELETE) + default ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/sqm657/api/HubApiController.java new file mode 100644 index 0000000..2736989 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/api/HubApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +@Controller("HubApiController657") +@RequestMapping("/serviceQualityManagement/v2/") +public class HubApiController implements HubApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public HubApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/api/NotFoundException.java b/src/main/java/org/etsi/osl/tmf/sqm657/api/NotFoundException.java new file mode 100644 index 0000000..221fbb2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/api/NotFoundException.java @@ -0,0 +1,30 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +public class NotFoundException extends ApiException { + private int code; + public NotFoundException (int code, String msg) { + super(code, msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/api/RFC3339DateFormat.java b/src/main/java/org/etsi/osl/tmf/sqm657/api/RFC3339DateFormat.java new file mode 100644 index 0000000..806eeac --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/api/RFC3339DateFormat.java @@ -0,0 +1,41 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.api; + +import java.text.FieldPosition; +import java.util.Date; + +import com.fasterxml.jackson.databind.util.ISO8601DateFormat; +import com.fasterxml.jackson.databind.util.ISO8601Utils; + + +public class RFC3339DateFormat extends ISO8601DateFormat { + + private static final long serialVersionUID = 1L; + + // Same as ISO8601DateFormat but serializing milliseconds. + @Override + public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) { + String value = ISO8601Utils.format(date, true); + toAppendTo.append(value); + return toAppendTo; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/api/ServiceLevelObjectiveApi.java b/src/main/java/org/etsi/osl/tmf/sqm657/api/ServiceLevelObjectiveApi.java new file mode 100644 index 0000000..2d6b1cd --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/api/ServiceLevelObjectiveApi.java @@ -0,0 +1,216 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.sqm657.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.sqm657.model.ServiceLevelObjective; +import org.etsi.osl.tmf.sqm657.model.ServiceLevelObjectiveCreate; +import org.etsi.osl.tmf.sqm657.model.ServiceLevelObjectiveUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +@Tag(name = "serviceLevelObjective", description = "the serviceLevelObjective API") +public interface ServiceLevelObjectiveApi { + + Logger log = LoggerFactory.getLogger(ServiceLevelObjectiveApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a 'ServiceLevelObjective'", operationId = "createServiceLevelObjective", description = "", tags={ "serviceLevelObjective", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceLevelObjective", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.POST) + default ResponseEntity createServiceLevelObjective(@Parameter(description = "The Service Level Objective to be created" ,required=true ) @Valid @RequestBody ServiceLevelObjectiveCreate serviceLevelObjective) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"specConsequence\" : [ { \"prescribedAction\" : \"prescribedAction\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, { \"prescribedAction\" : \"prescribedAction\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" } ], \"conformanceComparator\" : \"conformanceComparator\", \"graceTimes\" : \"graceTimes\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"specParameter\" : { \"serviceParmCategory\" : \"serviceParmCategory\", \"transformationAlgorithmOfKQI\" : \"transformationAlgorithmOfKQI\", \"serviceParmPerspective\" : \"serviceParmPerspective\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"relatedEntity\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"name\" : \"name\", \"type\" : \"type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"conformanceTarget\" : \"conformanceTarget\", \"toleranceTarget\" : \"toleranceTarget\", \"@baseType\" : \"@baseType\", \"tolerancePeriod\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"name\" : \"name\", \"conformancePeriod\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"thresholdTarget\" : \"thresholdTarget\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\"}", ServiceLevelObjective.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ServiceLevelObjectiveApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a 'ServiceLevelObjective' by Id", operationId = "deleteServiceLevelObjective", description = "", tags={ "serviceLevelObjective", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceLevelObjective/{id}", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteServiceLevelObjective(@Parameter(description = "Identifier of the Service Level Objective",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ServiceLevelObjectiveApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find 'ServiceLevelObjective' objects", operationId = "listServiceLevelObjective", description = "" , tags={ "serviceLevelObjective", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Ok" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceLevelObjective", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.GET) + default ResponseEntity> listServiceLevelObjective(@Parameter(description = "Comma separated properties to display in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"specConsequence\" : [ { \"prescribedAction\" : \"prescribedAction\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, { \"prescribedAction\" : \"prescribedAction\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" } ], \"conformanceComparator\" : \"conformanceComparator\", \"graceTimes\" : \"graceTimes\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"specParameter\" : { \"serviceParmCategory\" : \"serviceParmCategory\", \"transformationAlgorithmOfKQI\" : \"transformationAlgorithmOfKQI\", \"serviceParmPerspective\" : \"serviceParmPerspective\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"relatedEntity\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"name\" : \"name\", \"type\" : \"type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"conformanceTarget\" : \"conformanceTarget\", \"toleranceTarget\" : \"toleranceTarget\", \"@baseType\" : \"@baseType\", \"tolerancePeriod\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"name\" : \"name\", \"conformancePeriod\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"thresholdTarget\" : \"thresholdTarget\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\"}, { \"specConsequence\" : [ { \"prescribedAction\" : \"prescribedAction\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, { \"prescribedAction\" : \"prescribedAction\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" } ], \"conformanceComparator\" : \"conformanceComparator\", \"graceTimes\" : \"graceTimes\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"specParameter\" : { \"serviceParmCategory\" : \"serviceParmCategory\", \"transformationAlgorithmOfKQI\" : \"transformationAlgorithmOfKQI\", \"serviceParmPerspective\" : \"serviceParmPerspective\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"relatedEntity\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"name\" : \"name\", \"type\" : \"type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"conformanceTarget\" : \"conformanceTarget\", \"toleranceTarget\" : \"toleranceTarget\", \"@baseType\" : \"@baseType\", \"tolerancePeriod\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"name\" : \"name\", \"conformancePeriod\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"thresholdTarget\" : \"thresholdTarget\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ServiceLevelObjectiveApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a 'ServiceLevelObjective' by Id", operationId = "patchServiceLevelObjective", description = "", tags={ "serviceLevelObjective", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceLevelObjective/{id}", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.PATCH) + default ResponseEntity patchServiceLevelObjective(@Parameter(description = "Identifier of the Service Level Objective",required=true) @PathVariable("id") String id,@Parameter(description = "The Service Level Objective to be updated" ,required=true ) @Valid @RequestBody ServiceLevelObjectiveUpdate serviceLevelObjective) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"specConsequence\" : [ { \"prescribedAction\" : \"prescribedAction\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, { \"prescribedAction\" : \"prescribedAction\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" } ], \"conformanceComparator\" : \"conformanceComparator\", \"graceTimes\" : \"graceTimes\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"specParameter\" : { \"serviceParmCategory\" : \"serviceParmCategory\", \"transformationAlgorithmOfKQI\" : \"transformationAlgorithmOfKQI\", \"serviceParmPerspective\" : \"serviceParmPerspective\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"relatedEntity\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"name\" : \"name\", \"type\" : \"type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"conformanceTarget\" : \"conformanceTarget\", \"toleranceTarget\" : \"toleranceTarget\", \"@baseType\" : \"@baseType\", \"tolerancePeriod\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"name\" : \"name\", \"conformancePeriod\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"thresholdTarget\" : \"thresholdTarget\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\"}", ServiceLevelObjective.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ServiceLevelObjectiveApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a 'ServiceLevelObjective' by Id", operationId = "retrieveServiceLevelObjective", description = "" , tags={ "serviceLevelObjective", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Ok" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceLevelObjective/{id}", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.GET) + default ResponseEntity> retrieveServiceLevelObjective(@Parameter(description = "Identifier of the Service Level Objective",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"specConsequence\" : [ { \"prescribedAction\" : \"prescribedAction\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, { \"prescribedAction\" : \"prescribedAction\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" } ], \"conformanceComparator\" : \"conformanceComparator\", \"graceTimes\" : \"graceTimes\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"specParameter\" : { \"serviceParmCategory\" : \"serviceParmCategory\", \"transformationAlgorithmOfKQI\" : \"transformationAlgorithmOfKQI\", \"serviceParmPerspective\" : \"serviceParmPerspective\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"relatedEntity\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"name\" : \"name\", \"type\" : \"type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"conformanceTarget\" : \"conformanceTarget\", \"toleranceTarget\" : \"toleranceTarget\", \"@baseType\" : \"@baseType\", \"tolerancePeriod\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"name\" : \"name\", \"conformancePeriod\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"thresholdTarget\" : \"thresholdTarget\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\"}, { \"specConsequence\" : [ { \"prescribedAction\" : \"prescribedAction\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, { \"prescribedAction\" : \"prescribedAction\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" } ], \"conformanceComparator\" : \"conformanceComparator\", \"graceTimes\" : \"graceTimes\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"specParameter\" : { \"serviceParmCategory\" : \"serviceParmCategory\", \"transformationAlgorithmOfKQI\" : \"transformationAlgorithmOfKQI\", \"serviceParmPerspective\" : \"serviceParmPerspective\", \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"relatedEntity\" : [ { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\" } ], \"name\" : \"name\", \"type\" : \"type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"conformanceTarget\" : \"conformanceTarget\", \"toleranceTarget\" : \"toleranceTarget\", \"@baseType\" : \"@baseType\", \"tolerancePeriod\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"name\" : \"name\", \"conformancePeriod\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"thresholdTarget\" : \"thresholdTarget\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\"} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ServiceLevelObjectiveApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/api/ServiceLevelObjectiveApiController.java b/src/main/java/org/etsi/osl/tmf/sqm657/api/ServiceLevelObjectiveApiController.java new file mode 100644 index 0000000..61ab1e4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/api/ServiceLevelObjectiveApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +@Controller +@RequestMapping("/serviceQualityManagement/v2/") +public class ServiceLevelObjectiveApiController implements ServiceLevelObjectiveApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ServiceLevelObjectiveApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/api/ServiceLevelSpecificationApi.java b/src/main/java/org/etsi/osl/tmf/sqm657/api/ServiceLevelSpecificationApi.java new file mode 100644 index 0000000..4b700a4 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/api/ServiceLevelSpecificationApi.java @@ -0,0 +1,216 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.4.9). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.sqm657.api; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.sqm657.model.ServiceLevelSpecification; +import org.etsi.osl.tmf.sqm657.model.ServiceLevelSpecificationCreate; +import org.etsi.osl.tmf.sqm657.model.ServiceLevelSpecificationUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +@Tag(name = "serviceLevelSpecification", description = "the serviceLevelSpecification API") +public interface ServiceLevelSpecificationApi { + + Logger log = LoggerFactory.getLogger(ServiceLevelSpecificationApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a 'ServiceLevelSpecification'", operationId = "createServiceLevelSpecification", description = "", tags={ "serviceLevelSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceLevelSpecification", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.POST) + default ResponseEntity createServiceLevelSpecification(@Parameter(description = "The Service Level Specification to be created" ,required=true ) @Valid @RequestBody ServiceLevelSpecificationCreate serviceLevelSpecification) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"objective\" : [ { \"@referredType\" : \"@referredType\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"href\" : \"href\", \"id\" : \"id\" } ]}", ServiceLevelSpecification.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ServiceLevelSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a 'ServiceLevelSpecification' by Id", operationId = "deleteServiceLevelSpecification", description = "", tags={ "serviceLevelSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceLevelSpecification/{id}", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteServiceLevelSpecification(@Parameter(description = "Identifier of the Service Level Specification",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ServiceLevelSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find 'ServiceLevelSpecification' objects", operationId = "listServiceLevelSpecification", description = "" , tags={ "serviceLevelSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Ok" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceLevelSpecification", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.GET) + default ResponseEntity> listServiceLevelSpecification(@Parameter(description = "Comma separated properties to display in response") @Valid @RequestParam(value = "fields", required = false) String fields,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"objective\" : [ { \"@referredType\" : \"@referredType\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"href\" : \"href\", \"id\" : \"id\" } ]}, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"objective\" : [ { \"@referredType\" : \"@referredType\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"href\" : \"href\", \"id\" : \"id\" } ]} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ServiceLevelSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a 'ServiceLevelSpecification' by Id", operationId = "patchServiceLevelSpecification", description = "", tags={ "serviceLevelSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceLevelSpecification/{id}", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.PATCH) + default ResponseEntity patchServiceLevelSpecification(@Parameter(description = "Identifier of the Service Level Specification",required=true) @PathVariable("id") String id,@Parameter(description = "The Service Level Specification to be updated" ,required=true ) @Valid @RequestBody ServiceLevelSpecificationUpdate serviceLevelSpecification) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{ \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"objective\" : [ { \"@referredType\" : \"@referredType\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"href\" : \"href\", \"id\" : \"id\" } ]}", ServiceLevelSpecification.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ServiceLevelSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a 'ServiceLevelSpecification' by Id", operationId = "retrieveServiceLevelSpecification", description = "" , tags={ "serviceLevelSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Ok" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceLevelSpecification/{id}", + produces = { "application/json" }, + consumes = { "application/json" }, + method = RequestMethod.GET) + default ResponseEntity> retrieveServiceLevelSpecification(@Parameter(description = "Identifier of the Service Level Specification",required=true) @PathVariable("id") String id) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"objective\" : [ { \"@referredType\" : \"@referredType\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"href\" : \"href\", \"id\" : \"id\" } ]}, { \"@baseType\" : \"@baseType\", \"validFor\" : { \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\", \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\" }, \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"objective\" : [ { \"@referredType\" : \"@referredType\", \"href\" : \"href\", \"id\" : \"id\" }, { \"@referredType\" : \"@referredType\", \"href\" : \"href\", \"id\" : \"id\" } ]} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ServiceLevelSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/api/ServiceLevelSpecificationApiController.java b/src/main/java/org/etsi/osl/tmf/sqm657/api/ServiceLevelSpecificationApiController.java new file mode 100644 index 0000000..0810034 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/api/ServiceLevelSpecificationApiController.java @@ -0,0 +1,56 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +@Controller +@RequestMapping("/serviceQualityManagement/v2/") +public class ServiceLevelSpecificationApiController implements ServiceLevelSpecificationApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ServiceLevelSpecificationApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/model/EntityRef.java b/src/main/java/org/etsi/osl/tmf/sqm657/model/EntityRef.java new file mode 100644 index 0000000..238344f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/model/EntityRef.java @@ -0,0 +1,178 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * The related entity source of a KQI or KPI. A KQI draws its data from a number of sources, including Key Performance Indicators (KPIs). A KPI provides a measurement of a specific aspect of the performance of a Service (whether it is a network- or a non-network-based Service) or a group of Services of the same type. + */ +@Schema(description = "The related entity source of a KQI or KPI. A KQI draws its data from a number of sources, including Key Performance Indicators (KPIs). A KPI provides a measurement of a specific aspect of the performance of a Service (whether it is a network- or a non-network-based Service) or a group of Services of the same type.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +public class EntityRef { + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public EntityRef href(String href) { + this.href = href; + return this; + } + + /** + * The hyperlink to access an entity. + * @return href + **/ + @Schema(description = "The hyperlink to access an entity.") + @NotNull + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public EntityRef id(String id) { + this.id = id; + return this; + } + + /** + * The identifier of an entity. + * @return id + **/ + @Schema(description = "The identifier of an entity.") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EntityRef name(String name) { + this.name = name; + return this; + } + + /** + * The name of an entity. + * @return name + **/ + @Schema(description = "The name of an entity.") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public EntityRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntityRef entityRef = (EntityRef) o; + return Objects.equals(this.href, entityRef.href) && + Objects.equals(this.id, entityRef.id) && + Objects.equals(this.name, entityRef.name) && + Objects.equals(this.referredType, entityRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(href, id, name, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntityRef {\n"); + + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/model/Error.java b/src/main/java/org/etsi/osl/tmf/sqm657/model/Error.java new file mode 100644 index 0000000..42c1b70 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/model/Error.java @@ -0,0 +1,252 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Error + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +public class Error { + @JsonProperty("code") + private Integer code = null; + + @JsonProperty("reason") + private Integer reason = null; + + @JsonProperty("message") + private String message = null; + + @JsonProperty("status") + private Integer status = null; + + @JsonProperty("referenceError") + private String referenceError = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + public Error code(Integer code) { + this.code = code; + return this; + } + + /** + * Application related code. + * @return code + **/ + @Schema(description = "Application related code.") + @NotNull + + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public Error reason(Integer reason) { + this.reason = reason; + return this; + } + + /** + * Text that explains the reason for error. + * @return reason + **/ + @Schema(description = "Text that explains the reason for error.") + @NotNull + + + public Integer getReason() { + return reason; + } + + public void setReason(Integer reason) { + this.reason = reason; + } + + public Error message(String message) { + this.message = message; + return this; + } + + /** + * (optional) Text that provide more details and corrective actions related to the error. + * @return message + **/ + @Schema(description = "(optional) Text that provide more details and corrective actions related to the error.") + + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Error status(Integer status) { + this.status = status; + return this; + } + + /** + * (optional) http error code extension like 400-2 + * @return status + **/ + @Schema(description = "(optional) http error code extension like 400-2") + + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Error referenceError(String referenceError) { + this.referenceError = referenceError; + return this; + } + + /** + * (optional) A URL to online documentation that provides more information about the error. + * @return referenceError + **/ + @Schema(description = "(optional) A URL to online documentation that provides more information about the error.") + + + public String getReferenceError() { + return referenceError; + } + + public void setReferenceError(String referenceError) { + this.referenceError = referenceError; + } + + public Error type(String type) { + this.type = type; + return this; + } + + /** + * (optional) The class type of a REST resource. + * @return type + **/ + @Schema(description = "(optional) The class type of a REST resource.") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public Error schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * (optional) A link to the schema describing a REST resource. + * @return schemaLocation + **/ + @Schema(description = "(optional) A link to the schema describing a REST resource.") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Error error = (Error) o; + return Objects.equals(this.code, error.code) && + Objects.equals(this.reason, error.reason) && + Objects.equals(this.message, error.message) && + Objects.equals(this.status, error.status) && + Objects.equals(this.referenceError, error.referenceError) && + Objects.equals(this.type, error.type) && + Objects.equals(this.schemaLocation, error.schemaLocation); + } + + @Override + public int hashCode() { + return Objects.hash(code, reason, message, status, referenceError, type, schemaLocation); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Error {\n"); + + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" referenceError: ").append(toIndentedString(referenceError)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/sqm657/model/EventSubscription.java new file mode 100644 index 0000000..f00766a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/model/EventSubscription.java @@ -0,0 +1,152 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * EventSubscription + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +public class EventSubscription { + @JsonProperty("id") + private String id = null; + + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscription id(String id) { + this.id = id; + return this; + } + + /** + * Id of the listener + * @return id + **/ + @Schema(description = "Id of the listener") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EventSubscription callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscription query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscription eventSubscription = (EventSubscription) o; + return Objects.equals(this.id, eventSubscription.id) && + Objects.equals(this.callback, eventSubscription.callback) && + Objects.equals(this.query, eventSubscription.query); + } + + @Override + public int hashCode() { + return Objects.hash(id, callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscription {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/model/EventSubscriptionInput.java b/src/main/java/org/etsi/osl/tmf/sqm657/model/EventSubscriptionInput.java new file mode 100644 index 0000000..bd87706 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/model/EventSubscriptionInput.java @@ -0,0 +1,126 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * EventSubscriptionInput + */ +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +public class EventSubscriptionInput { + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscriptionInput callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscriptionInput query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscriptionInput eventSubscriptionInput = (EventSubscriptionInput) o; + return Objects.equals(this.callback, eventSubscriptionInput.callback) && + Objects.equals(this.query, eventSubscriptionInput.query); + } + + @Override + public int hashCode() { + return Objects.hash(callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscriptionInput {\n"); + + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelObjective.java b/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelObjective.java new file mode 100644 index 0000000..c748f6d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelObjective.java @@ -0,0 +1,493 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Service level objectives are defined in terms of parameters and metrics, thresholds, and tolerances associated with the parameters. + */ +@Schema(description = "Service level objectives are defined in terms of parameters and metrics, thresholds, and tolerances associated with the parameters.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +public class ServiceLevelObjective { + @JsonProperty("conformanceComparator") + private String conformanceComparator = null; + + @JsonProperty("conformancePeriod") + private TimePeriod conformancePeriod = null; + + @JsonProperty("conformanceTarget") + private String conformanceTarget = null; + + @JsonProperty("graceTimes") + private String graceTimes = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("thresholdTarget") + private String thresholdTarget = null; + + @JsonProperty("tolerancePeriod") + private TimePeriod tolerancePeriod = null; + + @JsonProperty("toleranceTarget") + private String toleranceTarget = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("specParameter") + private ServiceLevelSpecParameter specParameter = null; + + @JsonProperty("specConsequence") + @Valid + private List specConsequence = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@baseType") + private String baseType = null; + + public ServiceLevelObjective conformanceComparator(String conformanceComparator) { + this.conformanceComparator = conformanceComparator; + return this; + } + + /** + * An operator that specifies whether a Service Level Objective is violated above or below the conformanceTarget. + * @return conformanceComparator + **/ + @Schema(description = "An operator that specifies whether a Service Level Objective is violated above or below the conformanceTarget.") + + + public String getConformanceComparator() { + return conformanceComparator; + } + + public void setConformanceComparator(String conformanceComparator) { + this.conformanceComparator = conformanceComparator; + } + + public ServiceLevelObjective conformancePeriod(TimePeriod conformancePeriod) { + this.conformancePeriod = conformancePeriod; + return this; + } + + /** + * An interval of time during which the Conformance Target must be measured. + * @return conformancePeriod + **/ + @Schema(description = "An interval of time during which the Conformance Target must be measured.") + + @Valid + + public TimePeriod getConformancePeriod() { + return conformancePeriod; + } + + public void setConformancePeriod(TimePeriod conformancePeriod) { + this.conformancePeriod = conformancePeriod; + } + + public ServiceLevelObjective conformanceTarget(String conformanceTarget) { + this.conformanceTarget = conformanceTarget; + return this; + } + + /** + * A value used to determine if Service Level Objective is met. The data type should be adjusted case by case. + * @return conformanceTarget + **/ + @Schema(description = "A value used to determine if Service Level Objective is met. The data type should be adjusted case by case.") + + + public String getConformanceTarget() { + return conformanceTarget; + } + + public void setConformanceTarget(String conformanceTarget) { + this.conformanceTarget = conformanceTarget; + } + + public ServiceLevelObjective graceTimes(String graceTimes) { + this.graceTimes = graceTimes; + return this; + } + + /** + * The number of times an objective can remain un-updated without a violation of a Service Level Agreement in reference to a measurement period and/or Service Level Agreement reporting period. + * @return graceTimes + **/ + @Schema(description = "The number of times an objective can remain un-updated without a violation of a Service Level Agreement in reference to a measurement period and/or Service Level Agreement reporting period.") + + + public String getGraceTimes() { + return graceTimes; + } + + public void setGraceTimes(String graceTimes) { + this.graceTimes = graceTimes; + } + + public ServiceLevelObjective href(String href) { + this.href = href; + return this; + } + + /** + * The hyperlink to access a service level objective. + * @return href + **/ + @Schema(description = "The hyperlink to access a service level objective.") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ServiceLevelObjective id(String id) { + this.id = id; + return this; + } + + /** + * The identifier of a service level objectives. + * @return id + **/ + @Schema(description = "The identifier of a service level objectives.") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ServiceLevelObjective name(String name) { + this.name = name; + return this; + } + + /** + * The name of the service level objectives. + * @return name + **/ + @Schema(description = "The name of the service level objectives.") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ServiceLevelObjective thresholdTarget(String thresholdTarget) { + this.thresholdTarget = thresholdTarget; + return this; + } + + /** + * A value that used to specify when a warning should be used that indicates an objective is danger of not being met. Notice, the data type should be adjusted case by case. + * @return thresholdTarget + **/ + @Schema(description = "A value that used to specify when a warning should be used that indicates an objective is danger of not being met. Notice, the data type should be adjusted case by case.") + + + public String getThresholdTarget() { + return thresholdTarget; + } + + public void setThresholdTarget(String thresholdTarget) { + this.thresholdTarget = thresholdTarget; + } + + public ServiceLevelObjective tolerancePeriod(TimePeriod tolerancePeriod) { + this.tolerancePeriod = tolerancePeriod; + return this; + } + + /** + * Get tolerancePeriod + * @return tolerancePeriod + **/ + @Schema(description = "") + + @Valid + + public TimePeriod getTolerancePeriod() { + return tolerancePeriod; + } + + public void setTolerancePeriod(TimePeriod tolerancePeriod) { + this.tolerancePeriod = tolerancePeriod; + } + + public ServiceLevelObjective toleranceTarget(String toleranceTarget) { + this.toleranceTarget = toleranceTarget; + return this; + } + + /** + * A value that specifies the allowable variation of a conformance Target. The data type should be adjusted case by case. + * @return toleranceTarget + **/ + @Schema(description = "A value that specifies the allowable variation of a conformance Target. The data type should be adjusted case by case.") + + + public String getToleranceTarget() { + return toleranceTarget; + } + + public void setToleranceTarget(String toleranceTarget) { + this.toleranceTarget = toleranceTarget; + } + + public ServiceLevelObjective validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * A valid duration of a thing. + * @return validFor + **/ + @Schema(description = "A valid duration of a thing.") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ServiceLevelObjective specParameter(ServiceLevelSpecParameter specParameter) { + this.specParameter = specParameter; + return this; + } + + /** + * Get specParameter + * @return specParameter + **/ + @Schema(description = "") + + @Valid + + public ServiceLevelSpecParameter getSpecParameter() { + return specParameter; + } + + public void setSpecParameter(ServiceLevelSpecParameter specParameter) { + this.specParameter = specParameter; + } + + public ServiceLevelObjective specConsequence(List specConsequence) { + this.specConsequence = specConsequence; + return this; + } + + public ServiceLevelObjective addSpecConsequenceItem(ServiceLevelSpecConsequence specConsequenceItem) { + if (this.specConsequence == null) { + this.specConsequence = new ArrayList<>(); + } + this.specConsequence.add(specConsequenceItem); + return this; + } + + /** + * Get specConsequence + * @return specConsequence + **/ + @Schema(description = "") + + @Valid + + public List getSpecConsequence() { + return specConsequence; + } + + public void setSpecConsequence(List specConsequence) { + this.specConsequence = specConsequence; + } + + public ServiceLevelObjective type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public ServiceLevelObjective schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * @return schemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ServiceLevelObjective baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * @return baseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceLevelObjective serviceLevelObjective = (ServiceLevelObjective) o; + return Objects.equals(this.conformanceComparator, serviceLevelObjective.conformanceComparator) && + Objects.equals(this.conformancePeriod, serviceLevelObjective.conformancePeriod) && + Objects.equals(this.conformanceTarget, serviceLevelObjective.conformanceTarget) && + Objects.equals(this.graceTimes, serviceLevelObjective.graceTimes) && + Objects.equals(this.href, serviceLevelObjective.href) && + Objects.equals(this.id, serviceLevelObjective.id) && + Objects.equals(this.name, serviceLevelObjective.name) && + Objects.equals(this.thresholdTarget, serviceLevelObjective.thresholdTarget) && + Objects.equals(this.tolerancePeriod, serviceLevelObjective.tolerancePeriod) && + Objects.equals(this.toleranceTarget, serviceLevelObjective.toleranceTarget) && + Objects.equals(this.validFor, serviceLevelObjective.validFor) && + Objects.equals(this.specParameter, serviceLevelObjective.specParameter) && + Objects.equals(this.specConsequence, serviceLevelObjective.specConsequence) && + Objects.equals(this.type, serviceLevelObjective.type) && + Objects.equals(this.schemaLocation, serviceLevelObjective.schemaLocation) && + Objects.equals(this.baseType, serviceLevelObjective.baseType); + } + + @Override + public int hashCode() { + return Objects.hash(conformanceComparator, conformancePeriod, conformanceTarget, graceTimes, href, id, name, thresholdTarget, tolerancePeriod, toleranceTarget, validFor, specParameter, specConsequence, type, schemaLocation, baseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceLevelObjective {\n"); + + sb.append(" conformanceComparator: ").append(toIndentedString(conformanceComparator)).append("\n"); + sb.append(" conformancePeriod: ").append(toIndentedString(conformancePeriod)).append("\n"); + sb.append(" conformanceTarget: ").append(toIndentedString(conformanceTarget)).append("\n"); + sb.append(" graceTimes: ").append(toIndentedString(graceTimes)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" thresholdTarget: ").append(toIndentedString(thresholdTarget)).append("\n"); + sb.append(" tolerancePeriod: ").append(toIndentedString(tolerancePeriod)).append("\n"); + sb.append(" toleranceTarget: ").append(toIndentedString(toleranceTarget)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" specParameter: ").append(toIndentedString(specParameter)).append("\n"); + sb.append(" specConsequence: ").append(toIndentedString(specConsequence)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelObjectiveCreate.java b/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelObjectiveCreate.java new file mode 100644 index 0000000..e27475e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelObjectiveCreate.java @@ -0,0 +1,445 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Service level objectives are defined in terms of parameters and metrics, thresholds, and tolerances associated with the parameters. Skipped properties: id,href + */ +@Schema(description = "Service level objectives are defined in terms of parameters and metrics, thresholds, and tolerances associated with the parameters. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +public class ServiceLevelObjectiveCreate { + @JsonProperty("conformanceComparator") + private String conformanceComparator = null; + + @JsonProperty("conformancePeriod") + private TimePeriod conformancePeriod = null; + + @JsonProperty("conformanceTarget") + private String conformanceTarget = null; + + @JsonProperty("graceTimes") + private String graceTimes = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("thresholdTarget") + private String thresholdTarget = null; + + @JsonProperty("tolerancePeriod") + private TimePeriod tolerancePeriod = null; + + @JsonProperty("toleranceTarget") + private String toleranceTarget = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("specParameter") + private ServiceLevelSpecParameter specParameter = null; + + @JsonProperty("specConsequence") + @Valid + private List specConsequence = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@baseType") + private String baseType = null; + + public ServiceLevelObjectiveCreate conformanceComparator(String conformanceComparator) { + this.conformanceComparator = conformanceComparator; + return this; + } + + /** + * An operator that specifies whether a Service Level Objective is violated above or below the conformanceTarget. + * @return conformanceComparator + **/ + @Schema(description = "An operator that specifies whether a Service Level Objective is violated above or below the conformanceTarget.") + @NotNull + + + public String getConformanceComparator() { + return conformanceComparator; + } + + public void setConformanceComparator(String conformanceComparator) { + this.conformanceComparator = conformanceComparator; + } + + public ServiceLevelObjectiveCreate conformancePeriod(TimePeriod conformancePeriod) { + this.conformancePeriod = conformancePeriod; + return this; + } + + /** + * An interval of time during which the Conformance Target must be measured. + * @return conformancePeriod + **/ + @Schema(description = "An interval of time during which the Conformance Target must be measured.") + + @Valid + + public TimePeriod getConformancePeriod() { + return conformancePeriod; + } + + public void setConformancePeriod(TimePeriod conformancePeriod) { + this.conformancePeriod = conformancePeriod; + } + + public ServiceLevelObjectiveCreate conformanceTarget(String conformanceTarget) { + this.conformanceTarget = conformanceTarget; + return this; + } + + /** + * A value used to determine if Service Level Objective is met. The data type should be adjusted case by case. + * @return conformanceTarget + **/ + @Schema(description = "A value used to determine if Service Level Objective is met. The data type should be adjusted case by case.") + @NotNull + + + public String getConformanceTarget() { + return conformanceTarget; + } + + public void setConformanceTarget(String conformanceTarget) { + this.conformanceTarget = conformanceTarget; + } + + public ServiceLevelObjectiveCreate graceTimes(String graceTimes) { + this.graceTimes = graceTimes; + return this; + } + + /** + * The number of times an objective can remain un-updated without a violation of a Service Level Agreement in reference to a measurement period and/or Service Level Agreement reporting period. + * @return graceTimes + **/ + @Schema(description = "The number of times an objective can remain un-updated without a violation of a Service Level Agreement in reference to a measurement period and/or Service Level Agreement reporting period.") + + + public String getGraceTimes() { + return graceTimes; + } + + public void setGraceTimes(String graceTimes) { + this.graceTimes = graceTimes; + } + + public ServiceLevelObjectiveCreate name(String name) { + this.name = name; + return this; + } + + /** + * The name of the service level objectives. + * @return name + **/ + @Schema(description = "The name of the service level objectives.") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ServiceLevelObjectiveCreate thresholdTarget(String thresholdTarget) { + this.thresholdTarget = thresholdTarget; + return this; + } + + /** + * A value that used to specify when a warning should be used that indicates an objective is danger of not being met. Notice, the data type should be adjusted case by case. + * @return thresholdTarget + **/ + @Schema(description = "A value that used to specify when a warning should be used that indicates an objective is danger of not being met. Notice, the data type should be adjusted case by case.") + + + public String getThresholdTarget() { + return thresholdTarget; + } + + public void setThresholdTarget(String thresholdTarget) { + this.thresholdTarget = thresholdTarget; + } + + public ServiceLevelObjectiveCreate tolerancePeriod(TimePeriod tolerancePeriod) { + this.tolerancePeriod = tolerancePeriod; + return this; + } + + /** + * Get tolerancePeriod + * @return tolerancePeriod + **/ + @Schema(description = "") + + @Valid + + public TimePeriod getTolerancePeriod() { + return tolerancePeriod; + } + + public void setTolerancePeriod(TimePeriod tolerancePeriod) { + this.tolerancePeriod = tolerancePeriod; + } + + public ServiceLevelObjectiveCreate toleranceTarget(String toleranceTarget) { + this.toleranceTarget = toleranceTarget; + return this; + } + + /** + * A value that specifies the allowable variation of a conformance Target. The data type should be adjusted case by case. + * @return toleranceTarget + **/ + @Schema(description = "A value that specifies the allowable variation of a conformance Target. The data type should be adjusted case by case.") + + + public String getToleranceTarget() { + return toleranceTarget; + } + + public void setToleranceTarget(String toleranceTarget) { + this.toleranceTarget = toleranceTarget; + } + + public ServiceLevelObjectiveCreate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * A valid duration of a thing. + * @return validFor + **/ + @Schema(description = "A valid duration of a thing.") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ServiceLevelObjectiveCreate specParameter(ServiceLevelSpecParameter specParameter) { + this.specParameter = specParameter; + return this; + } + + /** + * Get specParameter + * @return specParameter + **/ + @Schema(description = "") + @NotNull + + @Valid + + public ServiceLevelSpecParameter getSpecParameter() { + return specParameter; + } + + public void setSpecParameter(ServiceLevelSpecParameter specParameter) { + this.specParameter = specParameter; + } + + public ServiceLevelObjectiveCreate specConsequence(List specConsequence) { + this.specConsequence = specConsequence; + return this; + } + + public ServiceLevelObjectiveCreate addSpecConsequenceItem(ServiceLevelSpecConsequence specConsequenceItem) { + if (this.specConsequence == null) { + this.specConsequence = new ArrayList<>(); + } + this.specConsequence.add(specConsequenceItem); + return this; + } + + /** + * Get specConsequence + * @return specConsequence + **/ + @Schema(description = "") + + @Valid + + public List getSpecConsequence() { + return specConsequence; + } + + public void setSpecConsequence(List specConsequence) { + this.specConsequence = specConsequence; + } + + public ServiceLevelObjectiveCreate type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public ServiceLevelObjectiveCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * @return schemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ServiceLevelObjectiveCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * @return baseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceLevelObjectiveCreate serviceLevelObjectiveCreate = (ServiceLevelObjectiveCreate) o; + return Objects.equals(this.conformanceComparator, serviceLevelObjectiveCreate.conformanceComparator) && + Objects.equals(this.conformancePeriod, serviceLevelObjectiveCreate.conformancePeriod) && + Objects.equals(this.conformanceTarget, serviceLevelObjectiveCreate.conformanceTarget) && + Objects.equals(this.graceTimes, serviceLevelObjectiveCreate.graceTimes) && + Objects.equals(this.name, serviceLevelObjectiveCreate.name) && + Objects.equals(this.thresholdTarget, serviceLevelObjectiveCreate.thresholdTarget) && + Objects.equals(this.tolerancePeriod, serviceLevelObjectiveCreate.tolerancePeriod) && + Objects.equals(this.toleranceTarget, serviceLevelObjectiveCreate.toleranceTarget) && + Objects.equals(this.validFor, serviceLevelObjectiveCreate.validFor) && + Objects.equals(this.specParameter, serviceLevelObjectiveCreate.specParameter) && + Objects.equals(this.specConsequence, serviceLevelObjectiveCreate.specConsequence) && + Objects.equals(this.type, serviceLevelObjectiveCreate.type) && + Objects.equals(this.schemaLocation, serviceLevelObjectiveCreate.schemaLocation) && + Objects.equals(this.baseType, serviceLevelObjectiveCreate.baseType); + } + + @Override + public int hashCode() { + return Objects.hash(conformanceComparator, conformancePeriod, conformanceTarget, graceTimes, name, thresholdTarget, tolerancePeriod, toleranceTarget, validFor, specParameter, specConsequence, type, schemaLocation, baseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceLevelObjectiveCreate {\n"); + + sb.append(" conformanceComparator: ").append(toIndentedString(conformanceComparator)).append("\n"); + sb.append(" conformancePeriod: ").append(toIndentedString(conformancePeriod)).append("\n"); + sb.append(" conformanceTarget: ").append(toIndentedString(conformanceTarget)).append("\n"); + sb.append(" graceTimes: ").append(toIndentedString(graceTimes)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" thresholdTarget: ").append(toIndentedString(thresholdTarget)).append("\n"); + sb.append(" tolerancePeriod: ").append(toIndentedString(tolerancePeriod)).append("\n"); + sb.append(" toleranceTarget: ").append(toIndentedString(toleranceTarget)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" specParameter: ").append(toIndentedString(specParameter)).append("\n"); + sb.append(" specConsequence: ").append(toIndentedString(specConsequence)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelObjectiveRef.java b/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelObjectiveRef.java new file mode 100644 index 0000000..0a2bfd0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelObjectiveRef.java @@ -0,0 +1,153 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * A set of Service Level Objectives that are contained in the Service Level Specification. + */ +@Schema(description = "A set of Service Level Objectives that are contained in the Service Level Specification.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +public class ServiceLevelObjectiveRef { + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("@referredType") + private String referredType = null; + + public ServiceLevelObjectiveRef href(String href) { + this.href = href; + return this; + } + + /** + * The hyperlink to access a service level object. + * @return href + **/ + @Schema(description = "The hyperlink to access a service level object.") + @NotNull + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ServiceLevelObjectiveRef id(String id) { + this.id = id; + return this; + } + + /** + * The identifier of a service level object. + * @return id + **/ + @Schema(description = "The identifier of a service level object.") + @NotNull + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ServiceLevelObjectiveRef referredType(String referredType) { + this.referredType = referredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return referredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + + public String getReferredType() { + return referredType; + } + + public void setReferredType(String referredType) { + this.referredType = referredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceLevelObjectiveRef serviceLevelObjectiveRef = (ServiceLevelObjectiveRef) o; + return Objects.equals(this.href, serviceLevelObjectiveRef.href) && + Objects.equals(this.id, serviceLevelObjectiveRef.id) && + Objects.equals(this.referredType, serviceLevelObjectiveRef.referredType); + } + + @Override + public int hashCode() { + return Objects.hash(href, id, referredType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceLevelObjectiveRef {\n"); + + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" referredType: ").append(toIndentedString(referredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelObjectiveUpdate.java b/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelObjectiveUpdate.java new file mode 100644 index 0000000..4adee80 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelObjectiveUpdate.java @@ -0,0 +1,415 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Service level objectives are defined in terms of parameters and metrics, thresholds, and tolerances associated with the parameters. Skipped properties: id,href,id,href,validFor + */ +@Schema(description = "Service level objectives are defined in terms of parameters and metrics, thresholds, and tolerances associated with the parameters. Skipped properties: id,href,id,href,validFor") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +public class ServiceLevelObjectiveUpdate { + @JsonProperty("conformanceComparator") + private String conformanceComparator = null; + + @JsonProperty("conformancePeriod") + private TimePeriod conformancePeriod = null; + + @JsonProperty("conformanceTarget") + private String conformanceTarget = null; + + @JsonProperty("graceTimes") + private String graceTimes = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("thresholdTarget") + private String thresholdTarget = null; + + @JsonProperty("tolerancePeriod") + private TimePeriod tolerancePeriod = null; + + @JsonProperty("toleranceTarget") + private String toleranceTarget = null; + + @JsonProperty("specParameter") + private ServiceLevelSpecParameter specParameter = null; + + @JsonProperty("specConsequence") + @Valid + private List specConsequence = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@baseType") + private String baseType = null; + + public ServiceLevelObjectiveUpdate conformanceComparator(String conformanceComparator) { + this.conformanceComparator = conformanceComparator; + return this; + } + + /** + * An operator that specifies whether a Service Level Objective is violated above or below the conformanceTarget. + * @return conformanceComparator + **/ + @Schema(description = "An operator that specifies whether a Service Level Objective is violated above or below the conformanceTarget.") + + + public String getConformanceComparator() { + return conformanceComparator; + } + + public void setConformanceComparator(String conformanceComparator) { + this.conformanceComparator = conformanceComparator; + } + + public ServiceLevelObjectiveUpdate conformancePeriod(TimePeriod conformancePeriod) { + this.conformancePeriod = conformancePeriod; + return this; + } + + /** + * An interval of time during which the Conformance Target must be measured. + * @return conformancePeriod + **/ + @Schema(description = "An interval of time during which the Conformance Target must be measured.") + + @Valid + + public TimePeriod getConformancePeriod() { + return conformancePeriod; + } + + public void setConformancePeriod(TimePeriod conformancePeriod) { + this.conformancePeriod = conformancePeriod; + } + + public ServiceLevelObjectiveUpdate conformanceTarget(String conformanceTarget) { + this.conformanceTarget = conformanceTarget; + return this; + } + + /** + * A value used to determine if Service Level Objective is met. The data type should be adjusted case by case. + * @return conformanceTarget + **/ + @Schema(description = "A value used to determine if Service Level Objective is met. The data type should be adjusted case by case.") + + + public String getConformanceTarget() { + return conformanceTarget; + } + + public void setConformanceTarget(String conformanceTarget) { + this.conformanceTarget = conformanceTarget; + } + + public ServiceLevelObjectiveUpdate graceTimes(String graceTimes) { + this.graceTimes = graceTimes; + return this; + } + + /** + * The number of times an objective can remain un-updated without a violation of a Service Level Agreement in reference to a measurement period and/or Service Level Agreement reporting period. + * @return graceTimes + **/ + @Schema(description = "The number of times an objective can remain un-updated without a violation of a Service Level Agreement in reference to a measurement period and/or Service Level Agreement reporting period.") + + + public String getGraceTimes() { + return graceTimes; + } + + public void setGraceTimes(String graceTimes) { + this.graceTimes = graceTimes; + } + + public ServiceLevelObjectiveUpdate name(String name) { + this.name = name; + return this; + } + + /** + * The name of the service level objectives. + * @return name + **/ + @Schema(description = "The name of the service level objectives.") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ServiceLevelObjectiveUpdate thresholdTarget(String thresholdTarget) { + this.thresholdTarget = thresholdTarget; + return this; + } + + /** + * A value that used to specify when a warning should be used that indicates an objective is danger of not being met. Notice, the data type should be adjusted case by case. + * @return thresholdTarget + **/ + @Schema(description = "A value that used to specify when a warning should be used that indicates an objective is danger of not being met. Notice, the data type should be adjusted case by case.") + + + public String getThresholdTarget() { + return thresholdTarget; + } + + public void setThresholdTarget(String thresholdTarget) { + this.thresholdTarget = thresholdTarget; + } + + public ServiceLevelObjectiveUpdate tolerancePeriod(TimePeriod tolerancePeriod) { + this.tolerancePeriod = tolerancePeriod; + return this; + } + + /** + * Get tolerancePeriod + * @return tolerancePeriod + **/ + @Schema(description = "") + + @Valid + + public TimePeriod getTolerancePeriod() { + return tolerancePeriod; + } + + public void setTolerancePeriod(TimePeriod tolerancePeriod) { + this.tolerancePeriod = tolerancePeriod; + } + + public ServiceLevelObjectiveUpdate toleranceTarget(String toleranceTarget) { + this.toleranceTarget = toleranceTarget; + return this; + } + + /** + * A value that specifies the allowable variation of a conformance Target. The data type should be adjusted case by case. + * @return toleranceTarget + **/ + @Schema(description = "A value that specifies the allowable variation of a conformance Target. The data type should be adjusted case by case.") + + + public String getToleranceTarget() { + return toleranceTarget; + } + + public void setToleranceTarget(String toleranceTarget) { + this.toleranceTarget = toleranceTarget; + } + + public ServiceLevelObjectiveUpdate specParameter(ServiceLevelSpecParameter specParameter) { + this.specParameter = specParameter; + return this; + } + + /** + * Get specParameter + * @return specParameter + **/ + @Schema(description = "") + + @Valid + + public ServiceLevelSpecParameter getSpecParameter() { + return specParameter; + } + + public void setSpecParameter(ServiceLevelSpecParameter specParameter) { + this.specParameter = specParameter; + } + + public ServiceLevelObjectiveUpdate specConsequence(List specConsequence) { + this.specConsequence = specConsequence; + return this; + } + + public ServiceLevelObjectiveUpdate addSpecConsequenceItem(ServiceLevelSpecConsequence specConsequenceItem) { + if (this.specConsequence == null) { + this.specConsequence = new ArrayList<>(); + } + this.specConsequence.add(specConsequenceItem); + return this; + } + + /** + * Get specConsequence + * @return specConsequence + **/ + @Schema(description = "") + + @Valid + + public List getSpecConsequence() { + return specConsequence; + } + + public void setSpecConsequence(List specConsequence) { + this.specConsequence = specConsequence; + } + + public ServiceLevelObjectiveUpdate type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public ServiceLevelObjectiveUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * @return schemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ServiceLevelObjectiveUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * @return baseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceLevelObjectiveUpdate serviceLevelObjectiveUpdate = (ServiceLevelObjectiveUpdate) o; + return Objects.equals(this.conformanceComparator, serviceLevelObjectiveUpdate.conformanceComparator) && + Objects.equals(this.conformancePeriod, serviceLevelObjectiveUpdate.conformancePeriod) && + Objects.equals(this.conformanceTarget, serviceLevelObjectiveUpdate.conformanceTarget) && + Objects.equals(this.graceTimes, serviceLevelObjectiveUpdate.graceTimes) && + Objects.equals(this.name, serviceLevelObjectiveUpdate.name) && + Objects.equals(this.thresholdTarget, serviceLevelObjectiveUpdate.thresholdTarget) && + Objects.equals(this.tolerancePeriod, serviceLevelObjectiveUpdate.tolerancePeriod) && + Objects.equals(this.toleranceTarget, serviceLevelObjectiveUpdate.toleranceTarget) && + Objects.equals(this.specParameter, serviceLevelObjectiveUpdate.specParameter) && + Objects.equals(this.specConsequence, serviceLevelObjectiveUpdate.specConsequence) && + Objects.equals(this.type, serviceLevelObjectiveUpdate.type) && + Objects.equals(this.schemaLocation, serviceLevelObjectiveUpdate.schemaLocation) && + Objects.equals(this.baseType, serviceLevelObjectiveUpdate.baseType); + } + + @Override + public int hashCode() { + return Objects.hash(conformanceComparator, conformancePeriod, conformanceTarget, graceTimes, name, thresholdTarget, tolerancePeriod, toleranceTarget, specParameter, specConsequence, type, schemaLocation, baseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceLevelObjectiveUpdate {\n"); + + sb.append(" conformanceComparator: ").append(toIndentedString(conformanceComparator)).append("\n"); + sb.append(" conformancePeriod: ").append(toIndentedString(conformancePeriod)).append("\n"); + sb.append(" conformanceTarget: ").append(toIndentedString(conformanceTarget)).append("\n"); + sb.append(" graceTimes: ").append(toIndentedString(graceTimes)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" thresholdTarget: ").append(toIndentedString(thresholdTarget)).append("\n"); + sb.append(" tolerancePeriod: ").append(toIndentedString(tolerancePeriod)).append("\n"); + sb.append(" toleranceTarget: ").append(toIndentedString(toleranceTarget)).append("\n"); + sb.append(" specParameter: ").append(toIndentedString(specParameter)).append("\n"); + sb.append(" specConsequence: ").append(toIndentedString(specConsequence)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecConsequence.java b/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecConsequence.java new file mode 100644 index 0000000..34955d3 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecConsequence.java @@ -0,0 +1,201 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * Some consequences for the provider of the Service are resulted when the service level objective does not meet. + */ +@Schema(description = "Some consequences for the provider of the Service are resulted when the service level objective does not meet.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +public class ServiceLevelSpecConsequence { + @JsonProperty("prescribedAction") + private String prescribedAction = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@baseType") + private String baseType = null; + + public ServiceLevelSpecConsequence prescribedAction(String prescribedAction) { + this.prescribedAction = prescribedAction; + return this; + } + + /** + * Recommended remedy for a violated Service Level Objective. This could be a hyperlink to the recommended action. + * @return prescribedAction + **/ + @Schema(description = "Recommended remedy for a violated Service Level Objective. This could be a hyperlink to the recommended action.") + + + public String getPrescribedAction() { + return prescribedAction; + } + + public void setPrescribedAction(String prescribedAction) { + this.prescribedAction = prescribedAction; + } + + public ServiceLevelSpecConsequence validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * A valid duration of a thing. + * @return validFor + **/ + @Schema(description = "A valid duration of a thing.") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ServiceLevelSpecConsequence type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public ServiceLevelSpecConsequence schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * @return schemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ServiceLevelSpecConsequence baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * @return baseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceLevelSpecConsequence serviceLevelSpecConsequence = (ServiceLevelSpecConsequence) o; + return Objects.equals(this.prescribedAction, serviceLevelSpecConsequence.prescribedAction) && + Objects.equals(this.validFor, serviceLevelSpecConsequence.validFor) && + Objects.equals(this.type, serviceLevelSpecConsequence.type) && + Objects.equals(this.schemaLocation, serviceLevelSpecConsequence.schemaLocation) && + Objects.equals(this.baseType, serviceLevelSpecConsequence.baseType); + } + + @Override + public int hashCode() { + return Objects.hash(prescribedAction, validFor, type, schemaLocation, baseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceLevelSpecConsequence {\n"); + + sb.append(" prescribedAction: ").append(toIndentedString(prescribedAction)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecParameter.java b/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecParameter.java new file mode 100644 index 0000000..450fee5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecParameter.java @@ -0,0 +1,338 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Service Level Specification parameters can be one of two types. A Key Quality Indicator (KQI) provides a measurement of a specific aspect of the performance of a Product (i.e., Product Specification, Product Offering, or Product) or a Service (i.e., Service Specification or Service). + */ +@Schema(description = "Service Level Specification parameters can be one of two types. A Key Quality Indicator (KQI) provides a measurement of a specific aspect of the performance of a Product (i.e., Product Specification, Product Offering, or Product) or a Service (i.e., Service Specification or Service).") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +public class ServiceLevelSpecParameter { + @JsonProperty("name") + private String name = null; + + @JsonProperty("serviceParmCategory") + private String serviceParmCategory = null; + + @JsonProperty("serviceParmPerspective") + private String serviceParmPerspective = null; + + @JsonProperty("transformationAlgorithmOfKQI") + private String transformationAlgorithmOfKQI = null; + + @JsonProperty("type") + private String paramtype = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("relatedEntity") + @Valid + private List relatedEntity = new ArrayList<>(); + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@baseType") + private String baseType = null; + + public ServiceLevelSpecParameter name(String name) { + this.name = name; + return this; + } + + /** + * The name of parameter. + * @return name + **/ + @Schema(description = "The name of parameter.") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ServiceLevelSpecParameter serviceParmCategory(String serviceParmCategory) { + this.serviceParmCategory = serviceParmCategory; + return this; + } + + /** + * A string that specifies whether the Service Level Specification Parameter is technology specific, service specific, or technology/service independent + * @return serviceParmCategory + **/ + @Schema(description = "A string that specifies whether the Service Level Specification Parameter is technology specific, service specific, or technology/service independent") + + + public String getServiceParmCategory() { + return serviceParmCategory; + } + + public void setServiceParmCategory(String serviceParmCategory) { + this.serviceParmCategory = serviceParmCategory; + } + + public ServiceLevelSpecParameter serviceParmPerspective(String serviceParmPerspective) { + this.serviceParmPerspective = serviceParmPerspective; + return this; + } + + /** + * A string that specifies whether the Service Level Specification Parameter represents a single user instance parameter or a parameter that represents an aggregation. + * @return serviceParmPerspective + **/ + @Schema(description = "A string that specifies whether the Service Level Specification Parameter represents a single user instance parameter or a parameter that represents an aggregation.") + + + public String getServiceParmPerspective() { + return serviceParmPerspective; + } + + public void setServiceParmPerspective(String serviceParmPerspective) { + this.serviceParmPerspective = serviceParmPerspective; + } + + public ServiceLevelSpecParameter transformationAlgorithmOfKQI(String transformationAlgorithmOfKQI) { + this.transformationAlgorithmOfKQI = transformationAlgorithmOfKQI; + return this; + } + + /** + * The description of a logical step-by-step procedure used to calculate the value of a KQI. + * @return transformationAlgorithmOfKQI + **/ + @Schema(description = "The description of a logical step-by-step procedure used to calculate the value of a KQI.") + + + public String getTransformationAlgorithmOfKQI() { + return transformationAlgorithmOfKQI; + } + + public void setTransformationAlgorithmOfKQI(String transformationAlgorithmOfKQI) { + this.transformationAlgorithmOfKQI = transformationAlgorithmOfKQI; + } + + public ServiceLevelSpecParameter paramtype(String type) { + this.paramtype = type; + return this; + } + + /** + * Types of Service Level Specification parameters are KQI or KPI. + * @return type + **/ + @Schema(description = "Types of Service Level Specification parameters are KQI or KPI.") + + + public String getParamtype() { + return paramtype; + } + + public void setParamtype(String type) { + this.paramtype = type; + } + + public ServiceLevelSpecParameter validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * A valid duration of a thing. + * @return validFor + **/ + @Schema(description = "A valid duration of a thing.") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ServiceLevelSpecParameter relatedEntity(List relatedEntity) { + this.relatedEntity = relatedEntity; + return this; + } + + public ServiceLevelSpecParameter addRelatedEntityItem(EntityRef relatedEntityItem) { + this.relatedEntity.add(relatedEntityItem); + return this; + } + + /** + * Get relatedEntity + * @return relatedEntity + **/ + @Schema(description = "") + @NotNull + + @Valid + + public List getRelatedEntity() { + return relatedEntity; + } + + public void setRelatedEntity(List relatedEntity) { + this.relatedEntity = relatedEntity; + } + + public ServiceLevelSpecParameter type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public ServiceLevelSpecParameter schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * @return schemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ServiceLevelSpecParameter baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * @return baseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceLevelSpecParameter serviceLevelSpecParameter = (ServiceLevelSpecParameter) o; + return Objects.equals(this.name, serviceLevelSpecParameter.name) && + Objects.equals(this.serviceParmCategory, serviceLevelSpecParameter.serviceParmCategory) && + Objects.equals(this.serviceParmPerspective, serviceLevelSpecParameter.serviceParmPerspective) && + Objects.equals(this.transformationAlgorithmOfKQI, serviceLevelSpecParameter.transformationAlgorithmOfKQI) && + Objects.equals(this.type, serviceLevelSpecParameter.type) && + Objects.equals(this.validFor, serviceLevelSpecParameter.validFor) && + Objects.equals(this.relatedEntity, serviceLevelSpecParameter.relatedEntity) && + Objects.equals(this.type, serviceLevelSpecParameter.type) && + Objects.equals(this.schemaLocation, serviceLevelSpecParameter.schemaLocation) && + Objects.equals(this.baseType, serviceLevelSpecParameter.baseType); + } + + @Override + public int hashCode() { + return Objects.hash(name, serviceParmCategory, serviceParmPerspective, transformationAlgorithmOfKQI, type, validFor, relatedEntity, type, schemaLocation, baseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceLevelSpecParameter {\n"); + + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" serviceParmCategory: ").append(toIndentedString(serviceParmCategory)).append("\n"); + sb.append(" serviceParmPerspective: ").append(toIndentedString(serviceParmPerspective)).append("\n"); + sb.append(" transformationAlgorithmOfKQI: ").append(toIndentedString(transformationAlgorithmOfKQI)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" relatedEntity: ").append(toIndentedString(relatedEntity)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecification.java b/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecification.java new file mode 100644 index 0000000..5411f36 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecification.java @@ -0,0 +1,313 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * A Service Level Specification represents a pre-defined or negotiated set of Service Level Objectives. In addition, certain consequences are associated with not meeting the Service Level Objectives. Service Level Agreements are expressed in terms of Service Level Specifications. + */ +@Schema(description = "A Service Level Specification represents a pre-defined or negotiated set of Service Level Objectives. In addition, certain consequences are associated with not meeting the Service Level Objectives. Service Level Agreements are expressed in terms of Service Level Specifications.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +public class ServiceLevelSpecification { + @JsonProperty("description") + private String description = null; + + @JsonProperty("href") + private String href = null; + + @JsonProperty("id") + private String id = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("objective") + @Valid + private List objective = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@baseType") + private String baseType = null; + + public ServiceLevelSpecification description(String description) { + this.description = description; + return this; + } + + /** + * A brief introduction of a service level specification. + * @return description + **/ + @Schema(description = "A brief introduction of a service level specification.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceLevelSpecification href(String href) { + this.href = href; + return this; + } + + /** + * The hyperlink to access a service level specification. + * @return href + **/ + @Schema(description = "The hyperlink to access a service level specification.") + + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ServiceLevelSpecification id(String id) { + this.id = id; + return this; + } + + /** + * The identifier to a service level specification. + * @return id + **/ + @Schema(description = "The identifier to a service level specification.") + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ServiceLevelSpecification name(String name) { + this.name = name; + return this; + } + + /** + * The name of Service Level Specification + * @return name + **/ + @Schema(description = "The name of Service Level Specification") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ServiceLevelSpecification validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * A valid duration of a thing. + * @return validFor + **/ + @Schema(description = "A valid duration of a thing.") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ServiceLevelSpecification objective(List objective) { + this.objective = objective; + return this; + } + + public ServiceLevelSpecification addObjectiveItem(ServiceLevelObjectiveRef objectiveItem) { + if (this.objective == null) { + this.objective = new ArrayList<>(); + } + this.objective.add(objectiveItem); + return this; + } + + /** + * Get objective + * @return objective + **/ + @Schema(description = "") + + @Valid + + public List getObjective() { + return objective; + } + + public void setObjective(List objective) { + this.objective = objective; + } + + public ServiceLevelSpecification type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public ServiceLevelSpecification schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * @return schemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ServiceLevelSpecification baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * @return baseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceLevelSpecification serviceLevelSpecification = (ServiceLevelSpecification) o; + return Objects.equals(this.description, serviceLevelSpecification.description) && + Objects.equals(this.href, serviceLevelSpecification.href) && + Objects.equals(this.id, serviceLevelSpecification.id) && + Objects.equals(this.name, serviceLevelSpecification.name) && + Objects.equals(this.validFor, serviceLevelSpecification.validFor) && + Objects.equals(this.objective, serviceLevelSpecification.objective) && + Objects.equals(this.type, serviceLevelSpecification.type) && + Objects.equals(this.schemaLocation, serviceLevelSpecification.schemaLocation) && + Objects.equals(this.baseType, serviceLevelSpecification.baseType); + } + + @Override + public int hashCode() { + return Objects.hash(description, href, id, name, validFor, objective, type, schemaLocation, baseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceLevelSpecification {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" objective: ").append(toIndentedString(objective)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecificationCreate.java b/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecificationCreate.java new file mode 100644 index 0000000..14c11b3 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecificationCreate.java @@ -0,0 +1,263 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * A Service Level Specification represents a pre-defined or negotiated set of Service Level Objectives. In addition, certain consequences are associated with not meeting the Service Level Objectives. Service Level Agreements are expressed in terms of Service Level Specifications. Skipped properties: id,href + */ +@Schema(description = "A Service Level Specification represents a pre-defined or negotiated set of Service Level Objectives. In addition, certain consequences are associated with not meeting the Service Level Objectives. Service Level Agreements are expressed in terms of Service Level Specifications. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +public class ServiceLevelSpecificationCreate { + @JsonProperty("description") + private String description = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("objective") + @Valid + private List objective = new ArrayList<>(); + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@baseType") + private String baseType = null; + + public ServiceLevelSpecificationCreate description(String description) { + this.description = description; + return this; + } + + /** + * A brief introduction of a service level specification. + * @return description + **/ + @Schema(description = "A brief introduction of a service level specification.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceLevelSpecificationCreate name(String name) { + this.name = name; + return this; + } + + /** + * The name of Service Level Specification + * @return name + **/ + @Schema(description = "The name of Service Level Specification") + @NotNull + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ServiceLevelSpecificationCreate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * A valid duration of a thing. + * @return validFor + **/ + @Schema(description = "A valid duration of a thing.") + + @Valid + + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ServiceLevelSpecificationCreate objective(List objective) { + this.objective = objective; + return this; + } + + public ServiceLevelSpecificationCreate addObjectiveItem(ServiceLevelObjectiveRef objectiveItem) { + this.objective.add(objectiveItem); + return this; + } + + /** + * Get objective + * @return objective + **/ + @Schema(description = "") + @NotNull + + @Valid + + public List getObjective() { + return objective; + } + + public void setObjective(List objective) { + this.objective = objective; + } + + public ServiceLevelSpecificationCreate type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public ServiceLevelSpecificationCreate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * @return schemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ServiceLevelSpecificationCreate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * @return baseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceLevelSpecificationCreate serviceLevelSpecificationCreate = (ServiceLevelSpecificationCreate) o; + return Objects.equals(this.description, serviceLevelSpecificationCreate.description) && + Objects.equals(this.name, serviceLevelSpecificationCreate.name) && + Objects.equals(this.validFor, serviceLevelSpecificationCreate.validFor) && + Objects.equals(this.objective, serviceLevelSpecificationCreate.objective) && + Objects.equals(this.type, serviceLevelSpecificationCreate.type) && + Objects.equals(this.schemaLocation, serviceLevelSpecificationCreate.schemaLocation) && + Objects.equals(this.baseType, serviceLevelSpecificationCreate.baseType); + } + + @Override + public int hashCode() { + return Objects.hash(description, name, validFor, objective, type, schemaLocation, baseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceLevelSpecificationCreate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" objective: ").append(toIndentedString(objective)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecificationUpdate.java b/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecificationUpdate.java new file mode 100644 index 0000000..78fb496 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/sqm657/model/ServiceLevelSpecificationUpdate.java @@ -0,0 +1,238 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.sqm657.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * A Service Level Specification represents a pre-defined or negotiated set of Service Level Objectives. In addition, certain consequences are associated with not meeting the Service Level Objectives. Service Level Agreements are expressed in terms of Service Level Specifications. Skipped properties: id,href,id,href,validFor + */ +@Schema(description = "A Service Level Specification represents a pre-defined or negotiated set of Service Level Objectives. In addition, certain consequences are associated with not meeting the Service Level Objectives. Service Level Agreements are expressed in terms of Service Level Specifications. Skipped properties: id,href,id,href,validFor") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2019-10-19T00:14:31.369+03:00") + +public class ServiceLevelSpecificationUpdate { + @JsonProperty("description") + private String description = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("objective") + @Valid + private List objective = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@baseType") + private String baseType = null; + + public ServiceLevelSpecificationUpdate description(String description) { + this.description = description; + return this; + } + + /** + * A brief introduction of a service level specification. + * @return description + **/ + @Schema(description = "A brief introduction of a service level specification.") + + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceLevelSpecificationUpdate name(String name) { + this.name = name; + return this; + } + + /** + * The name of Service Level Specification + * @return name + **/ + @Schema(description = "The name of Service Level Specification") + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ServiceLevelSpecificationUpdate objective(List objective) { + this.objective = objective; + return this; + } + + public ServiceLevelSpecificationUpdate addObjectiveItem(ServiceLevelObjectiveRef objectiveItem) { + if (this.objective == null) { + this.objective = new ArrayList<>(); + } + this.objective.add(objectiveItem); + return this; + } + + /** + * Get objective + * @return objective + **/ + @Schema(description = "") + + @Valid + + public List getObjective() { + return objective; + } + + public void setObjective(List objective) { + this.objective = objective; + } + + public ServiceLevelSpecificationUpdate type(String type) { + this.type = type; + return this; + } + + /** + * The class type of the actual resource (for type extension). + * @return type + **/ + @Schema(description = "The class type of the actual resource (for type extension).") + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public ServiceLevelSpecificationUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A link to the schema describing a resource (for type extension). + * @return schemaLocation + **/ + @Schema(description = "A link to the schema describing a resource (for type extension).") + + + public String getSchemaLocation() { + return schemaLocation; + } + + public void setSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ServiceLevelSpecificationUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * The base type for use in polymorphic collections + * @return baseType + **/ + @Schema(description = "The base type for use in polymorphic collections") + + + public String getBaseType() { + return baseType; + } + + public void setBaseType(String baseType) { + this.baseType = baseType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceLevelSpecificationUpdate serviceLevelSpecificationUpdate = (ServiceLevelSpecificationUpdate) o; + return Objects.equals(this.description, serviceLevelSpecificationUpdate.description) && + Objects.equals(this.name, serviceLevelSpecificationUpdate.name) && + Objects.equals(this.objective, serviceLevelSpecificationUpdate.objective) && + Objects.equals(this.type, serviceLevelSpecificationUpdate.type) && + Objects.equals(this.schemaLocation, serviceLevelSpecificationUpdate.schemaLocation) && + Objects.equals(this.baseType, serviceLevelSpecificationUpdate.baseType); + } + + @Override + public int hashCode() { + return Objects.hash(description, name, objective, type, schemaLocation, baseType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceLevelSpecificationUpdate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" objective: ").append(toIndentedString(objective)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/src/main/java/org/etsi/osl/tmf/stm653/api/ApiException.java b/src/main/java/org/etsi/osl/tmf/stm653/api/ApiException.java new file mode 100644 index 0000000..266fbbd --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/api/ApiException.java @@ -0,0 +1,29 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.api; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/api/ApiOriginFilter.java b/src/main/java/org/etsi/osl/tmf/stm653/api/ApiOriginFilter.java new file mode 100644 index 0000000..603bb9d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/api/ApiOriginFilter.java @@ -0,0 +1,50 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.api; + +import java.io.IOException; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class ApiOriginFilter implements jakarta.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/api/ApiResponseMessage.java b/src/main/java/org/etsi/osl/tmf/stm653/api/ApiResponseMessage.java new file mode 100644 index 0000000..4e02371 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/api/ApiResponseMessage.java @@ -0,0 +1,88 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.api; + +import jakarta.xml.bind.annotation.XmlTransient; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@jakarta.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/stm653/api/HubApi.java new file mode 100644 index 0000000..b5760a8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/api/HubApi.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.stm653.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.stm653.model.EventSubscription; +import org.etsi.osl.tmf.stm653.model.EventSubscriptionInput; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Tag(name = "hub", description = "the hub API") +public interface HubApi { + + Logger log = LoggerFactory.getLogger(HubApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Register a listener", operationId = "registerListener", description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Subscribed" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity registerListener(@Parameter(description = "Data containing the callback endpoint to deliver the information" ,required=true ) @Valid @RequestBody EventSubscriptionInput body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Unregister a listener", operationId = "unregisterListener", description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", tags={ "events subscription", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method not allowed" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/hub/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity unregisterListener(@Parameter(description = "The id of the registered listener",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/stm653/api/HubApiController.java new file mode 100644 index 0000000..57c22b5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/api/HubApiController.java @@ -0,0 +1,55 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Controller("HubApiController653") +@RequestMapping("/serviceTestManagement/v4/") +public class HubApiController implements HubApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public HubApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/api/ListenerApi.java b/src/main/java/org/etsi/osl/tmf/stm653/api/ListenerApi.java new file mode 100644 index 0000000..662793e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/api/ListenerApi.java @@ -0,0 +1,261 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.stm653.api; + +import java.io.IOException; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.stm653.model.EventSubscription; +import org.etsi.osl.tmf.stm653.model.ServiceTestAttributeValueChangeEvent; +import org.etsi.osl.tmf.stm653.model.ServiceTestCreateEvent; +import org.etsi.osl.tmf.stm653.model.ServiceTestDeleteEvent; +import org.etsi.osl.tmf.stm653.model.ServiceTestSpecificationAttributeValueChangeEvent; +import org.etsi.osl.tmf.stm653.model.ServiceTestSpecificationCreateEvent; +import org.etsi.osl.tmf.stm653.model.ServiceTestSpecificationDeleteEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Tag(name = "listener", description = "the listener API") +public interface ListenerApi { + + Logger log = LoggerFactory.getLogger(ListenerApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Client listener for entity ServiceTestAttributeValueChangeEvent", operationId = "listenToServiceTestAttributeValueChangeEvent", description = "Example of a client listener for receiving the notification ServiceTestAttributeValueChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceTestAttributeValueChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceTestAttributeValueChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceTestAttributeValueChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ServiceTestCreateEvent", operationId = "listenToServiceTestCreateEvent", description = "Example of a client listener for receiving the notification ServiceTestCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceTestCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceTestCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceTestCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ServiceTestDeleteEvent", operationId = "listenToServiceTestDeleteEvent", description = "Example of a client listener for receiving the notification ServiceTestDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceTestDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceTestDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceTestDeleteEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ServiceTestSpecificationAttributeValueChangeEvent", operationId = "listenToServiceTestSpecificationAttributeValueChangeEvent", description = "Example of a client listener for receiving the notification ServiceTestSpecificationAttributeValueChangeEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceTestSpecificationAttributeValueChangeEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceTestSpecificationAttributeValueChangeEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceTestSpecificationAttributeValueChangeEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ServiceTestSpecificationCreateEvent", operationId = "listenToServiceTestSpecificationCreateEvent", description = "Example of a client listener for receiving the notification ServiceTestSpecificationCreateEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceTestSpecificationCreateEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceTestSpecificationCreateEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceTestSpecificationCreateEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Client listener for entity ServiceTestSpecificationDeleteEvent", operationId = "listenToServiceTestSpecificationDeleteEvent", description = "Example of a client listener for receiving the notification ServiceTestSpecificationDeleteEvent", tags={ "notification listeners (client side)", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Notified" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/listener/serviceTestSpecificationDeleteEvent", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity listenToServiceTestSpecificationDeleteEvent(@Parameter(description = "The event data" ,required=true ) @Valid @RequestBody ServiceTestSpecificationDeleteEvent body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"query\" : \"query\",\r\n \"callback\" : \"callback\",\r\n \"id\" : \"id\"\r\n}", EventSubscription.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ListenerApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/api/ListenerApiController.java b/src/main/java/org/etsi/osl/tmf/stm653/api/ListenerApiController.java new file mode 100644 index 0000000..72566de --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/api/ListenerApiController.java @@ -0,0 +1,55 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.api; + +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import jakarta.servlet.http.HttpServletRequest; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Controller("ListenerApiController653") +@RequestMapping("/serviceTestManagement/v4/") +public class ListenerApiController implements ListenerApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @org.springframework.beans.factory.annotation.Autowired + public ListenerApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestApi.java b/src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestApi.java new file mode 100644 index 0000000..ce6e2d8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestApi.java @@ -0,0 +1,222 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.stm653.api; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.stm653.model.ServiceTest; +import org.etsi.osl.tmf.stm653.model.ServiceTestCreate; +import org.etsi.osl.tmf.stm653.model.ServiceTestUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Tag(name = "serviceTest", description = "the serviceTest API") +public interface ServiceTestApi { + + Logger log = LoggerFactory.getLogger(ServiceTestApi.class); + + default Optional getObjectMapper(){ + return Optional.empty(); + } + + default Optional getRequest(){ + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a ServiceTest", operationId = "createServiceTest", description = "This operation creates a ServiceTest entity.", tags={ "serviceTest", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceTest", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.POST) + default ResponseEntity createServiceTest(@Parameter(description = "The ServiceTest to be created" ,required=true ) @Valid @RequestBody ServiceTestCreate body +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"testMeasure\" : [ {\r\n \"metricDescription\" : \"metricDescription\",\r\n \"metricName\" : \"metricName\",\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"captureDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"accuracy\" : 0.8008282,\r\n \"captureMethod\" : \"captureMethod\",\r\n \"ruleViolation\" : [ {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n }, {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"metricHref\" : \"metricHref\"\r\n }, {\r\n \"metricDescription\" : \"metricDescription\",\r\n \"metricName\" : \"metricName\",\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"captureDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"accuracy\" : 0.8008282,\r\n \"captureMethod\" : \"captureMethod\",\r\n \"ruleViolation\" : [ {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n }, {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"metricHref\" : \"metricHref\"\r\n } ],\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedService\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"characteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"testSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"mode\" : \"mode\",\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", ServiceTest.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ServiceTestApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Deletes a ServiceTest", operationId = "deleteServiceTest", description = "This operation deletes a ServiceTest entity.", tags={ "serviceTest", }) + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceTest/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.DELETE) + default ResponseEntity deleteServiceTest(@Parameter(description = "Identifier of the ServiceTest",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ServiceTestApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "List or find ServiceTest objects", operationId = "listServiceTest", description = "This operation list or find ServiceTest entities" , tags={ "serviceTest", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceTest", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity> listServiceTest(@Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields +,@Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset +,@Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit, +@Parameter(hidden = true) @Valid @RequestParam Map allParams +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("[ {\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"testMeasure\" : [ {\r\n \"metricDescription\" : \"metricDescription\",\r\n \"metricName\" : \"metricName\",\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"captureDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"accuracy\" : 0.8008282,\r\n \"captureMethod\" : \"captureMethod\",\r\n \"ruleViolation\" : [ {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n }, {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"metricHref\" : \"metricHref\"\r\n }, {\r\n \"metricDescription\" : \"metricDescription\",\r\n \"metricName\" : \"metricName\",\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"captureDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"accuracy\" : 0.8008282,\r\n \"captureMethod\" : \"captureMethod\",\r\n \"ruleViolation\" : [ {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n }, {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"metricHref\" : \"metricHref\"\r\n } ],\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedService\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"characteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"testSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"mode\" : \"mode\",\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}, {\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"testMeasure\" : [ {\r\n \"metricDescription\" : \"metricDescription\",\r\n \"metricName\" : \"metricName\",\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"captureDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"accuracy\" : 0.8008282,\r\n \"captureMethod\" : \"captureMethod\",\r\n \"ruleViolation\" : [ {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n }, {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"metricHref\" : \"metricHref\"\r\n }, {\r\n \"metricDescription\" : \"metricDescription\",\r\n \"metricName\" : \"metricName\",\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"captureDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"accuracy\" : 0.8008282,\r\n \"captureMethod\" : \"captureMethod\",\r\n \"ruleViolation\" : [ {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n }, {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"metricHref\" : \"metricHref\"\r\n } ],\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedService\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"characteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"testSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"mode\" : \"mode\",\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n} ]", List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ServiceTestApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Updates partially a ServiceTest", operationId = "patchServiceTest", description = "This operation updates partially a ServiceTest entity.", tags={ "serviceTest", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceTest/{id}", + produces = { "application/json;charset=utf-8" }, + consumes = { "application/json;charset=utf-8" }, + method = RequestMethod.PATCH) + default ResponseEntity patchServiceTest(@Parameter(description = "The ServiceTest to be updated" ,required=true ) @Valid @RequestBody ServiceTestUpdate body +,@Parameter(description = "Identifier of the ServiceTest",required=true) @PathVariable("id") String id +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"testMeasure\" : [ {\r\n \"metricDescription\" : \"metricDescription\",\r\n \"metricName\" : \"metricName\",\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"captureDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"accuracy\" : 0.8008282,\r\n \"captureMethod\" : \"captureMethod\",\r\n \"ruleViolation\" : [ {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n }, {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"metricHref\" : \"metricHref\"\r\n }, {\r\n \"metricDescription\" : \"metricDescription\",\r\n \"metricName\" : \"metricName\",\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"captureDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"accuracy\" : 0.8008282,\r\n \"captureMethod\" : \"captureMethod\",\r\n \"ruleViolation\" : [ {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n }, {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"metricHref\" : \"metricHref\"\r\n } ],\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedService\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"characteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"testSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"mode\" : \"mode\",\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", ServiceTest.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ServiceTestApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Retrieves a ServiceTest by ID", operationId = "retrieveServiceTest", description = "This operation retrieves a ServiceTest entity. Attribute selection is enabled for all first level attributes.", tags={ "serviceTest", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceTest/{id}", + produces = { "application/json;charset=utf-8" }, + method = RequestMethod.GET) + default ResponseEntity retrieveServiceTest(@Parameter(description = "Identifier of the ServiceTest",required=true) @PathVariable("id") String id +,@Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields +) { + if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue("{\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"testMeasure\" : [ {\r\n \"metricDescription\" : \"metricDescription\",\r\n \"metricName\" : \"metricName\",\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"captureDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"accuracy\" : 0.8008282,\r\n \"captureMethod\" : \"captureMethod\",\r\n \"ruleViolation\" : [ {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n }, {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"metricHref\" : \"metricHref\"\r\n }, {\r\n \"metricDescription\" : \"metricDescription\",\r\n \"metricName\" : \"metricName\",\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"captureDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@type\" : \"@type\",\r\n \"accuracy\" : 0.8008282,\r\n \"captureMethod\" : \"captureMethod\",\r\n \"ruleViolation\" : [ {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n }, {\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"appliedConsequence\" : [ {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"appliedAction\" : \"appliedAction\",\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"tolerancePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"numberOfAllowedCrossing\" : 6,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\",\r\n \"conformanceTargetExact\" : \"conformanceTargetExact\"\r\n } ],\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"metricHref\" : \"metricHref\"\r\n } ],\r\n \"endDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedService\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"characteristic\" : [ {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n }, {\r\n \"characteristicRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"id\" : \"id\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { }\r\n } ],\r\n \"testSpecification\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"id\" : \"id\",\r\n \"href\" : \"href\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n },\r\n \"mode\" : \"mode\",\r\n \"startDateTime\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"state\" : \"state\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", ServiceTest.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn("ObjectMapper or HttpServletRequest not configured in default ServiceTestApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestApiController.java b/src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestApiController.java new file mode 100644 index 0000000..b7fb037 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestApiController.java @@ -0,0 +1,186 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.api; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.centrallog.client.CLevel; +import org.etsi.osl.centrallog.client.CentralLogger; +import org.etsi.osl.tmf.common.model.UserPartRoleType; +import org.etsi.osl.tmf.stm653.model.ServiceTest; +import org.etsi.osl.tmf.stm653.model.ServiceTestCreate; +import org.etsi.osl.tmf.stm653.model.ServiceTestUpdate; +import org.etsi.osl.tmf.stm653.reposervices.ServiceTestRepoService; +import org.etsi.osl.tmf.util.AddUserAsOwnerToRelatedParties; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Parameter; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Controller +@RequestMapping("/serviceTestManagement/v4/") +public class ServiceTestApiController implements ServiceTestApi { + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + + private static final Logger log = LoggerFactory.getLogger(ServiceTestApiController.class); + + + @Autowired + ServiceTestRepoService serviceTestRepoService; + + + @Value("${spring.application.name}") + private String compname; + + @Autowired + private CentralLogger centralLogger; + + @org.springframework.beans.factory.annotation.Autowired + public ServiceTestApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity createServiceTest(@Valid ServiceTestCreate serviceTest) { + try { + + serviceTest.setRelatedParty(AddUserAsOwnerToRelatedParties.addUser( + SecurityContextHolder.getContext().getAuthentication().getName(), + SecurityContextHolder.getContext().getAuthentication().getName(), UserPartRoleType.OWNER, "", + serviceTest.getRelatedParty())); + + ServiceTest c = serviceTestRepoService + .addServiceTest(serviceTest); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity deleteServiceTest(String id) { + try { + + return new ResponseEntity(serviceTestRepoService.deleteByUuid(id), HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity> listServiceTest(@Valid String fields, @Valid Integer offset, + @Valid Integer limit, + @Parameter(hidden = true) @Valid @RequestParam Map allParams) { + + try { + if (allParams != null) { + allParams.remove("fields"); + allParams.remove("offset"); + allParams.remove("limit"); + } else { + allParams = new HashMap<>(); + } + if ((fields == null) && (allParams.size() == 0)) { + + String myfields = "lastUpdate,lifecycleStatus"; + return new ResponseEntity>( + serviceTestRepoService.findAll(myfields, allParams), HttpStatus.OK); + + } else { + + return new ResponseEntity>( + serviceTestRepoService.findAll(fields, allParams), HttpStatus.OK); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')" ) + @Override + public ResponseEntity patchServiceTest(@Valid ServiceTestUpdate serviceSpecification, String id) { + + ServiceTest c = serviceTestRepoService.updateServiceTest(id, serviceSpecification); + + return new ResponseEntity(c, HttpStatus.OK); + } + + @Override + public ResponseEntity retrieveServiceTest(String id, @Valid String fields) { + try { + + Object attr = request.getSession().getAttribute("SPRING_SECURITY_CONTEXT"); + + if ( attr!=null) { + SecurityContextHolder.setContext( (SecurityContext) attr ); + } + if ( SecurityContextHolder.getContext().getAuthentication() != null ) { + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + centralLogger.log( CLevel.INFO, "User " + authentication.getName() + " retrieve spec id: "+ id , compname ); + } else { + centralLogger.log( CLevel.INFO, "Anonymous retrieve spec id: "+ id, compname ); + } + + return new ResponseEntity( serviceTestRepoService.findByUuid(id), + HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestSpecificationApi.java b/src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestSpecificationApi.java new file mode 100644 index 0000000..54f37a1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestSpecificationApi.java @@ -0,0 +1,280 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +/** + * NOTE: This class is auto generated by the swagger code generator program (3.0.19). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.stm653.api; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.common.model.Attachment; +import org.etsi.osl.tmf.stm653.model.ServiceTestSpecification; +import org.etsi.osl.tmf.stm653.model.ServiceTestSpecificationCreate; +import org.etsi.osl.tmf.stm653.model.ServiceTestSpecificationUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Tag(name = "serviceTestSpecification", description = "the serviceTestSpecification API") +public interface ServiceTestSpecificationApi { + + Logger log = LoggerFactory.getLogger(ServiceTestSpecificationApi.class); + + default Optional getObjectMapper() { + return Optional.empty(); + } + + default Optional getRequest() { + return Optional.empty(); + } + + default Optional getAcceptHeader() { + return getRequest().map(r -> r.getHeader("Accept")); + } + + @Operation(summary = "Creates a ServiceTestSpecification", operationId = "createServiceTestSpecification", description = "This operation creates a ServiceTestSpecification entity." , tags = { + "serviceTestSpecification", }) + @ApiResponses(value = { @ApiResponse(responseCode = "400", description = "Created" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceTestSpecification", produces = { "application/json;charset=utf-8" }, consumes = { + "application/json;charset=utf-8" }, method = RequestMethod.POST) + default ResponseEntity createServiceTestSpecification( + @Parameter(description = "The ServiceTestSpecification to be created", required = true) @Valid @RequestBody ServiceTestSpecificationCreate body) { + + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "Deletes a ServiceTestSpecification", operationId = "deleteServiceTestSpecification", description = "This operation deletes a ServiceTestSpecification entity.", tags = { + "serviceTestSpecification", }) + @ApiResponses(value = { @ApiResponse(responseCode = "204", description = "Deleted" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceTestSpecification/{id}", produces = { + "application/json;charset=utf-8" }, method = RequestMethod.DELETE) + default ResponseEntity deleteServiceTestSpecification( + @Parameter(description = "Identifier of the ServiceTestSpecification", required = true) @PathVariable("id") String id) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default ServiceTestSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "List or find ServiceTestSpecification objects", operationId = "listServiceTestSpecification", description = "This operation list or find ServiceTestSpecification entities" , tags = { + "serviceTestSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceTestSpecification", produces = { + "application/json;charset=utf-8" }, method = RequestMethod.GET) + default ResponseEntity> listServiceTestSpecification( + @Parameter(description = "Comma-separated properties to be provided in response") @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(description = "Requested index for start of resources to be provided in response") @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(description = "Requested number of resources to be provided in response") @Valid @RequestParam(value = "limit", required = false) Integer limit, + @Parameter(hidden = true) @Valid @RequestParam Map allParams) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue( + "[ {\r\n \"isBundle\" : true,\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"targetEntitySchema\" : {\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"specCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"charSpecRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"parentSpecificationId\" : \"parentSpecificationId\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"parentSpecificationHref\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"parentSpecificationId\" : \"parentSpecificationId\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"parentSpecificationHref\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"characteristicValueSpecification\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"charSpecRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"parentSpecificationId\" : \"parentSpecificationId\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"parentSpecificationHref\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"parentSpecificationId\" : \"parentSpecificationId\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"parentSpecificationHref\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"characteristicValueSpecification\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n } ],\r\n \"entitySpecRelationship\" : [ {\r\n \"associationSpec\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"associationSpec\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"relatedServiceSpecification\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"video\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"Photograph of the Product\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"href\" : \"http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"video\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"Photograph of the Product\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"href\" : \"http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"testMeasureDefinition\" : [ {\r\n \"metricName\" : \"metricName\",\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@type\" : \"@type\",\r\n \"captureFrequency\" : \"captureFrequency\",\r\n \"metricHref\" : \"metricHref\",\r\n \"metricDescription\" : \"metricDescription\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"captureMethod\" : \"captureMethod\",\r\n \"capturePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"thresholdRule\" : [ {\r\n \"consequence\" : [ {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"@baseType\" : \"@baseType\",\r\n \"numberOfAllowedCrossing\" : 2,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\"\r\n }, {\r\n \"consequence\" : [ {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"@baseType\" : \"@baseType\",\r\n \"numberOfAllowedCrossing\" : 2,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\"\r\n } ]\r\n }, {\r\n \"metricName\" : \"metricName\",\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@type\" : \"@type\",\r\n \"captureFrequency\" : \"captureFrequency\",\r\n \"metricHref\" : \"metricHref\",\r\n \"metricDescription\" : \"metricDescription\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"captureMethod\" : \"captureMethod\",\r\n \"capturePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"thresholdRule\" : [ {\r\n \"consequence\" : [ {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"@baseType\" : \"@baseType\",\r\n \"numberOfAllowedCrossing\" : 2,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\"\r\n }, {\r\n \"consequence\" : [ {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"@baseType\" : \"@baseType\",\r\n \"numberOfAllowedCrossing\" : 2,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\"\r\n } ]\r\n } ],\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"serviceTestSpecRelationship\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}, {\r\n \"isBundle\" : true,\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"targetEntitySchema\" : {\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"specCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"charSpecRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"parentSpecificationId\" : \"parentSpecificationId\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"parentSpecificationHref\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"parentSpecificationId\" : \"parentSpecificationId\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"parentSpecificationHref\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"characteristicValueSpecification\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"charSpecRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"parentSpecificationId\" : \"parentSpecificationId\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"parentSpecificationHref\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"parentSpecificationId\" : \"parentSpecificationId\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"parentSpecificationHref\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"characteristicValueSpecification\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n } ],\r\n \"entitySpecRelationship\" : [ {\r\n \"associationSpec\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"associationSpec\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"relatedServiceSpecification\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"video\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"Photograph of the Product\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"href\" : \"http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"video\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"Photograph of the Product\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"href\" : \"http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"testMeasureDefinition\" : [ {\r\n \"metricName\" : \"metricName\",\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@type\" : \"@type\",\r\n \"captureFrequency\" : \"captureFrequency\",\r\n \"metricHref\" : \"metricHref\",\r\n \"metricDescription\" : \"metricDescription\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"captureMethod\" : \"captureMethod\",\r\n \"capturePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"thresholdRule\" : [ {\r\n \"consequence\" : [ {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"@baseType\" : \"@baseType\",\r\n \"numberOfAllowedCrossing\" : 2,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\"\r\n }, {\r\n \"consequence\" : [ {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"@baseType\" : \"@baseType\",\r\n \"numberOfAllowedCrossing\" : 2,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\"\r\n } ]\r\n }, {\r\n \"metricName\" : \"metricName\",\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@type\" : \"@type\",\r\n \"captureFrequency\" : \"captureFrequency\",\r\n \"metricHref\" : \"metricHref\",\r\n \"metricDescription\" : \"metricDescription\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"captureMethod\" : \"captureMethod\",\r\n \"capturePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"thresholdRule\" : [ {\r\n \"consequence\" : [ {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"@baseType\" : \"@baseType\",\r\n \"numberOfAllowedCrossing\" : 2,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\"\r\n }, {\r\n \"consequence\" : [ {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"@baseType\" : \"@baseType\",\r\n \"numberOfAllowedCrossing\" : 2,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\"\r\n } ]\r\n } ],\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"serviceTestSpecRelationship\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n} ]", + List.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default ServiceTestSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "Updates partially a ServiceTestSpecification", operationId = "patchServiceTestSpecification", description = "This operation updates partially a ServiceTestSpecification entity." , tags = { + "serviceTestSpecification", }) + @ApiResponses(value = { @ApiResponse(responseCode ="200", description = "Updated" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceTestSpecification/{id}", produces = { + "application/json;charset=utf-8" }, consumes = { + "application/json;charset=utf-8" }, method = RequestMethod.PATCH) + default ResponseEntity patchServiceTestSpecification( + @Parameter(description = "The ServiceTestSpecification to be updated", required = true) @Valid @RequestBody ServiceTestSpecificationUpdate body, + @Parameter(description = "Identifier of the ServiceTestSpecification", required = true) @PathVariable("id") String id) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue( + "{\r\n \"isBundle\" : true,\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"targetEntitySchema\" : {\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"specCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"charSpecRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"parentSpecificationId\" : \"parentSpecificationId\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"parentSpecificationHref\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"parentSpecificationId\" : \"parentSpecificationId\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"parentSpecificationHref\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"characteristicValueSpecification\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"charSpecRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"parentSpecificationId\" : \"parentSpecificationId\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"parentSpecificationHref\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"parentSpecificationId\" : \"parentSpecificationId\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"parentSpecificationHref\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"characteristicValueSpecification\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n } ],\r\n \"entitySpecRelationship\" : [ {\r\n \"associationSpec\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"associationSpec\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"relatedServiceSpecification\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"video\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"Photograph of the Product\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"href\" : \"http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"video\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"Photograph of the Product\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"href\" : \"http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"testMeasureDefinition\" : [ {\r\n \"metricName\" : \"metricName\",\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@type\" : \"@type\",\r\n \"captureFrequency\" : \"captureFrequency\",\r\n \"metricHref\" : \"metricHref\",\r\n \"metricDescription\" : \"metricDescription\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"captureMethod\" : \"captureMethod\",\r\n \"capturePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"thresholdRule\" : [ {\r\n \"consequence\" : [ {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"@baseType\" : \"@baseType\",\r\n \"numberOfAllowedCrossing\" : 2,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\"\r\n }, {\r\n \"consequence\" : [ {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"@baseType\" : \"@baseType\",\r\n \"numberOfAllowedCrossing\" : 2,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\"\r\n } ]\r\n }, {\r\n \"metricName\" : \"metricName\",\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@type\" : \"@type\",\r\n \"captureFrequency\" : \"captureFrequency\",\r\n \"metricHref\" : \"metricHref\",\r\n \"metricDescription\" : \"metricDescription\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"captureMethod\" : \"captureMethod\",\r\n \"capturePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"thresholdRule\" : [ {\r\n \"consequence\" : [ {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"@baseType\" : \"@baseType\",\r\n \"numberOfAllowedCrossing\" : 2,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\"\r\n }, {\r\n \"consequence\" : [ {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"@baseType\" : \"@baseType\",\r\n \"numberOfAllowedCrossing\" : 2,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\"\r\n } ]\r\n } ],\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"serviceTestSpecRelationship\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", + ServiceTestSpecification.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default ServiceTestSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Operation(summary = "Retrieves a ServiceTestSpecification by ID", operationId = "retrieveServiceTestSpecification", description = "This operation retrieves a ServiceTestSpecification entity. Attribute selection is enabled for all first level attributes." , tags = { + "serviceTestSpecification", }) + @ApiResponses(value = { @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceTestSpecification/{id}", produces = { + "application/json;charset=utf-8" }, method = RequestMethod.GET) + default ResponseEntity retrieveServiceTestSpecification( + @Parameter(description = "Identifier of the ServiceTestSpecification", required = true) @PathVariable("id") String id, + @Parameter(description = "Comma-separated properties to provide in response") @Valid @RequestParam(value = "fields", required = false) String fields) { + if (getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { + if (getAcceptHeader().get().contains("application/json")) { + try { + return new ResponseEntity<>(getObjectMapper().get().readValue( + "{\r\n \"isBundle\" : true,\r\n \"lifecycleStatus\" : \"lifecycleStatus\",\r\n \"targetEntitySchema\" : {\r\n \"@type\" : \"@type\",\r\n \"@schemaLocation\" : \"@schemaLocation\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"specCharacteristic\" : [ {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"charSpecRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"parentSpecificationId\" : \"parentSpecificationId\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"parentSpecificationHref\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"parentSpecificationId\" : \"parentSpecificationId\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"parentSpecificationHref\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"characteristicValueSpecification\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n }, {\r\n \"@type\" : \"@type\",\r\n \"@valueSchemaLocation\" : \"@valueSchemaLocation\",\r\n \"isUnique\" : true,\r\n \"description\" : \"description\",\r\n \"maxCardinality\" : 6,\r\n \"minCardinality\" : 1,\r\n \"regex\" : \"regex\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"charSpecRelationship\" : [ {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"parentSpecificationId\" : \"parentSpecificationId\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"parentSpecificationHref\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"relationshipType\" : \"relationshipType\",\r\n \"parentSpecificationId\" : \"parentSpecificationId\",\r\n \"name\" : \"name\",\r\n \"characteristicSpecificationId\" : \"characteristicSpecificationId\",\r\n \"parentSpecificationHref\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"characteristicValueSpecification\" : [ {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n }, {\r\n \"rangeInterval\" : \"rangeInterval\",\r\n \"isDefault\" : true,\r\n \"regex\" : \"regex\",\r\n \"valueTo\" : 5,\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"valueType\" : \"valueType\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"value\" : { },\r\n \"valueFrom\" : 5\r\n } ],\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"extensible\" : true,\r\n \"configurable\" : true\r\n } ],\r\n \"entitySpecRelationship\" : [ {\r\n \"associationSpec\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"associationSpec\" : {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n },\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"relatedParty\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"version\" : \"version\",\r\n \"relatedServiceSpecification\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"attachment\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"video\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"Photograph of the Product\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"href\" : \"http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"attachmentType\" : \"video\",\r\n \"validFor\" : {\r\n \"startDateTime\" : \"1985-04-12T23:20:50.52Z\",\r\n \"endDateTime\" : \"1985-04-12T23:20:50.52Z\"\r\n },\r\n \"@type\" : \"@type\",\r\n \"description\" : \"Photograph of the Product\",\r\n \"mimeType\" : \"mimeType\",\r\n \"content\" : \"content\",\r\n \"url\" : \"http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"size\" : {\r\n \"amount\" : 0.8008282,\r\n \"units\" : \"units\"\r\n },\r\n \"@baseType\" : \"@baseType\",\r\n \"name\" : \"name\",\r\n \"id\" : \"4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"href\" : \"http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"@baseType\" : \"@baseType\",\r\n \"testMeasureDefinition\" : [ {\r\n \"metricName\" : \"metricName\",\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@type\" : \"@type\",\r\n \"captureFrequency\" : \"captureFrequency\",\r\n \"metricHref\" : \"metricHref\",\r\n \"metricDescription\" : \"metricDescription\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"captureMethod\" : \"captureMethod\",\r\n \"capturePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"thresholdRule\" : [ {\r\n \"consequence\" : [ {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"@baseType\" : \"@baseType\",\r\n \"numberOfAllowedCrossing\" : 2,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\"\r\n }, {\r\n \"consequence\" : [ {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"@baseType\" : \"@baseType\",\r\n \"numberOfAllowedCrossing\" : 2,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\"\r\n } ]\r\n }, {\r\n \"metricName\" : \"metricName\",\r\n \"unitOfMeasure\" : \"unitOfMeasure\",\r\n \"@type\" : \"@type\",\r\n \"captureFrequency\" : \"captureFrequency\",\r\n \"metricHref\" : \"metricHref\",\r\n \"metricDescription\" : \"metricDescription\",\r\n \"@baseType\" : \"@baseType\",\r\n \"valueType\" : \"valueType\",\r\n \"name\" : \"name\",\r\n \"captureMethod\" : \"captureMethod\",\r\n \"capturePeriod\" : {\r\n \"amount\" : 1,\r\n \"units\" : \"units\"\r\n },\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"thresholdRule\" : [ {\r\n \"consequence\" : [ {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"@baseType\" : \"@baseType\",\r\n \"numberOfAllowedCrossing\" : 2,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\"\r\n }, {\r\n \"consequence\" : [ {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"repeatAction\" : true,\r\n \"@baseType\" : \"@baseType\",\r\n \"prescribeAction\" : \"prescribeAction\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"description\" : \"description\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"conformanceComparatorLower\" : \"conformanceComparatorLower\",\r\n \"conformanceComparatorUpper\" : \"conformanceComparatorUpper\",\r\n \"@type\" : \"@type\",\r\n \"description\" : \"description\",\r\n \"thresholdRuleSeverity\" : \"thresholdRuleSeverity\",\r\n \"@baseType\" : \"@baseType\",\r\n \"numberOfAllowedCrossing\" : 2,\r\n \"conformanceTargetUpper\" : \"conformanceTargetUpper\",\r\n \"name\" : \"name\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"conformanceTargetLower\" : \"conformanceTargetLower\"\r\n } ]\r\n } ],\r\n \"lastUpdate\" : \"2000-01-23T04:56:07.000+00:00\",\r\n \"name\" : \"name\",\r\n \"serviceTestSpecRelationship\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"role\" : \"role\",\r\n \"relationshipType\" : \"relationshipType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n } ],\r\n \"constraint\" : [ {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n }, {\r\n \"@referredType\" : \"@referredType\",\r\n \"@baseType\" : \"@baseType\",\r\n \"@type\" : \"@type\",\r\n \"name\" : \"name\",\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\",\r\n \"version\" : \"version\"\r\n } ],\r\n \"id\" : \"id\",\r\n \"href\" : \"http://example.com/aeiou\",\r\n \"@schemaLocation\" : \"http://example.com/aeiou\"\r\n}", + ServiceTestSpecification.class), HttpStatus.NOT_IMPLEMENTED); + } catch (IOException e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + } else { + log.warn( + "ObjectMapper or HttpServletRequest not configured in default ServiceTestSpecificationApi interface so no example is generated"); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + + @Operation(summary = "Adds an attachment to a ServiceTestSpecification", operationId = "addAttachmentToServiceTestSpecification", + description = "This operation adds an attachment to a ServiceTestSpecification and updates partially a ServiceTestSpecification entity", tags={ "serviceTestSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceTestSpecification/{id}/attachment", + produces = { "application/json;charset=utf-8" }, + consumes = { "multipart/form-data" }, + method = RequestMethod.POST) + ResponseEntity addAttachmentToServiceTestSpecification( + @Parameter(description = "Identifier of the ServiceTestSpecification",required=true) @PathVariable("id") String id, + //@Parameter(description = "The Attachment object to be added" ,required=false ) @Valid @ModelAttribute("attachment") Attachment attachment, + @Parameter(description = "The Attachment file to be added" ,required=false, name = "afile" ) @Valid MultipartFile file, + HttpServletRequest request); + + @Operation(summary = "Get an attachment", operationId = "getAttachment", + description = "This operation gets an attachment", tags={ "serviceTestSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceTestSpecification/{id}/attachment/{attid}", + produces = MediaType.ALL_VALUE, + method = RequestMethod.GET) + ResponseEntity getAttachment( + @Parameter(description = "Identifier of the serviceTestSpecification",required=true) @PathVariable("id") String id, + @Parameter(description = "Identifier of the Attachment",required=true) @PathVariable("attid") String attid); + + + + @Operation(summary = "Get an attachment with filename", operationId = "getAttachmentWithFilename", + description = "This operation gets an attachment", tags={ "serviceTestSpecification", }) + @ApiResponses(value = { + @ApiResponse(responseCode ="200", description = "Success" ), + @ApiResponse(responseCode = "400", description = "Bad Request" ), + @ApiResponse(responseCode = "401", description = "Unauthorized" ), + @ApiResponse(responseCode = "403", description = "Forbidden" ), + @ApiResponse(responseCode = "404", description = "Not Found" ), + @ApiResponse(responseCode = "405", description = "Method Not allowed" ), + @ApiResponse(responseCode = "409", description = "Conflict" ), + @ApiResponse(responseCode = "500", description = "Internal Server Error" ) }) + @RequestMapping(value = "/serviceTestSpecification/{id}/attachment/{attid}/{afilename}", + produces = MediaType.ALL_VALUE , + method = RequestMethod.GET) + ResponseEntity getAttachmentWithFilename( + @Parameter(description = "Identifier of the serviceTestSpecification",required=true) @PathVariable("id") String id, + @Parameter(description = "Identifier of the Attachment",required=true) @PathVariable("attid") String attid, + @Parameter(description = "Identifier of the Filename",required=true) @PathVariable("afilename") String afilename); + + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestSpecificationApiController.java b/src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestSpecificationApiController.java new file mode 100644 index 0000000..03c58f5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestSpecificationApiController.java @@ -0,0 +1,276 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.api; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.commons.io.IOUtils; +import org.etsi.osl.centrallog.client.CLevel; +import org.etsi.osl.centrallog.client.CentralLogger; +import org.etsi.osl.tmf.common.model.Attachment; +import org.etsi.osl.tmf.common.model.UserPartRoleType; +import org.etsi.osl.tmf.stm653.model.ServiceTestSpecification; +import org.etsi.osl.tmf.stm653.model.ServiceTestSpecificationCreate; +import org.etsi.osl.tmf.stm653.model.ServiceTestSpecificationUpdate; +import org.etsi.osl.tmf.stm653.reposervices.ServiceTestSpecificationRepoService; +import org.etsi.osl.tmf.util.AddUserAsOwnerToRelatedParties; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.CacheControl; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; +import io.swagger.v3.oas.annotations.Parameter; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; + +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Controller +@RequestMapping("/serviceTestManagement/v4/") +public class ServiceTestSpecificationApiController implements ServiceTestSpecificationApi { + + private static final Logger log = LoggerFactory.getLogger(ServiceTestSpecificationApiController.class); + + private final ObjectMapper objectMapper; + + private final HttpServletRequest request; + + @Autowired + ServiceTestSpecificationRepoService serviceTestSpecificationRepoService; + + @Value("${spring.application.name}") + private String compname; + + @Autowired + private CentralLogger centralLogger; + + @org.springframework.beans.factory.annotation.Autowired + public ServiceTestSpecificationApiController(ObjectMapper objectMapper, HttpServletRequest request) { + this.objectMapper = objectMapper; + this.request = request; + } + + @Override + public Optional getObjectMapper() { + return Optional.ofNullable(objectMapper); + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity createServiceTestSpecification( + @Valid ServiceTestSpecificationCreate serviceSpecification) { + + try { + + serviceSpecification.setRelatedParty(AddUserAsOwnerToRelatedParties.addUser( + SecurityContextHolder.getContext().getAuthentication().getName(), + SecurityContextHolder.getContext().getAuthentication().getName(), UserPartRoleType.OWNER, "", + serviceSpecification.getRelatedParty())); + + ServiceTestSpecification c = serviceTestSpecificationRepoService + .addServiceTestSpecification(serviceSpecification); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity deleteServiceTestSpecification(String id) { + + try { + + return new ResponseEntity(serviceTestSpecificationRepoService.deleteByUuid(id), HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @Override + public ResponseEntity> listServiceTestSpecification(@Valid String fields, + @Valid Integer offset, @Valid Integer limit, + @Parameter(hidden = true) @Valid @RequestParam Map allParams) { + + try { + if (allParams != null) { + allParams.remove("fields"); + allParams.remove("offset"); + allParams.remove("limit"); + } else { + allParams = new HashMap<>(); + } + if ((fields == null) && (allParams.size() == 0)) { + + String myfields = "lastUpdate,lifecycleStatus"; + return new ResponseEntity>( + serviceTestSpecificationRepoService.findAll(myfields, allParams), HttpStatus.OK); + + } else { + + return new ResponseEntity>( + serviceTestSpecificationRepoService.findAll(fields, allParams), HttpStatus.OK); + } + + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity>(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity patchServiceTestSpecification( + @Valid ServiceTestSpecificationUpdate serviceSpecification, String id) { + ServiceTestSpecification c = serviceTestSpecificationRepoService.updateServiceTestSpecification(id, serviceSpecification); + + return new ResponseEntity(c, HttpStatus.OK); + } + + + @Override + public ResponseEntity retrieveServiceTestSpecification(String id, @Valid String fields) { + + try { + + Object attr = request.getSession().getAttribute("SPRING_SECURITY_CONTEXT"); + + if ( attr!=null) { + SecurityContextHolder.setContext( (SecurityContext) attr ); + } + if ( SecurityContextHolder.getContext().getAuthentication() != null ) { + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + centralLogger.log( CLevel.INFO, "User " + authentication.getName() + " retrieve spec id: "+ id , compname ); + } else { + centralLogger.log( CLevel.INFO, "Anonymous retrieve spec id: "+ id, compname ); + } + + return new ResponseEntity( serviceTestSpecificationRepoService.findByUuid(id), + HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity addAttachmentToServiceTestSpecification(String specid, + //@Valid @ModelAttribute("attachment") Attachment att, + @RequestParam(name = "afile") @Valid MultipartFile file, + HttpServletRequest request) { + try { + + //log.info("addAttachmentToServiceSpecification attachment=" + att.toString()); + log.info("addAttachmentToServiceTestSpecification file=" + file); + + //Attachment att = objectMapper.readValue(attachment, Attachment.class); + //log.info("addAttachmentToServiceSpecification att=" + att); + +// return new ResponseEntity( serviceSpecificationRepoService.findByUuid( id ), HttpStatus.OK); + Attachment c = serviceTestSpecificationRepoService.addAttachmentToServiceTest(specid, file, request.getRequestURI()); + + return new ResponseEntity(c, HttpStatus.OK); + } catch (Exception e) { + log.error("Couldn't serialize response for content type application/json", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity getAttachment(String id, String attid) { + try { + Attachment att; + + att = serviceTestSpecificationRepoService.getAttachment( attid ); + + if ( att == null ) { + return new ResponseEntity(HttpStatus.NOT_FOUND); + } + if ( att.getContent() == null ) { + return new ResponseEntity(HttpStatus.NOT_FOUND); + } + File file = new File( att.getContent() ); + Path path = Paths.get(file.getAbsolutePath()); + //ByteArrayResource resource = new ByteArrayResource(Files.readAllBytes(path)); + HttpHeaders headers = new HttpHeaders(); + InputStream in = new FileInputStream( file ); + + byte[] media = IOUtils.toByteArray(in); + headers.setCacheControl(CacheControl.noCache().getHeaderValue()); + headers.setContentType( MediaType. parseMediaType( att.getMimeType()) ); + + if ( att.getMimeType().contains("zip") || att.getMimeType().contains("gz")) { + headers.add( "Content-Disposition", "attachment; filename=" + file.getName());//remove this returns directly the object + } + + ResponseEntity responseEntity = new ResponseEntity<>(media, headers, HttpStatus.OK); + return responseEntity; + + + + + } catch (Exception e) { + log.error("Couldn't serialize response ByteArrayResource", e); + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @PreAuthorize("hasAnyAuthority('ROLE_USER')" ) + @Override + public ResponseEntity getAttachmentWithFilename(String id, String attid, String afilename) { + + return getAttachment(id, attid); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestSpecificationApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestSpecificationApiRouteBuilder.java new file mode 100644 index 0000000..f209cba --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/api/ServiceTestSpecificationApiRouteBuilder.java @@ -0,0 +1,119 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.api; + +import java.io.IOException; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.camel.LoggingLevel; +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.model.dataformat.JsonLibrary; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.stm653.model.ServiceTestCreate; +import org.etsi.osl.tmf.stm653.model.ServiceTestUpdate; +import org.etsi.osl.tmf.stm653.reposervices.ServiceTestRepoService; +import org.etsi.osl.tmf.stm653.reposervices.ServiceTestSpecificationRepoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +@Configuration +//@RefreshScope +@Component +public class ServiceTestSpecificationApiRouteBuilder extends RouteBuilder { + + private static final transient Log logger = LogFactory.getLog(ServiceTestSpecificationApiRouteBuilder.class.getName()); + + @Value("${CATALOG_GET_SERVICETESTSPEC_BY_ID}") + private String CATALOG_GET_SERVICETESTSPEC_BY_ID = ""; + + + + @Value("${CATALOG_ADD_SERVICETEST}") + private String CATALOG_ADD_SERVICETEST = ""; + + + @Value("${CATALOG_UPD_SERVICETEST}") + private String CATALOG_UPD_SERVICETEST = ""; + + + @Value("${CATALOG_GET_SERVICETEST_BY_ID}") + private String CATALOG_GET_SERVICETEST_BY_ID = ""; + + + + @Autowired + ServiceTestSpecificationRepoService serviceTestSpecificationRepoService; + + + @Autowired + ServiceTestRepoService serviceTestRepoService; + + @Autowired + private ProducerTemplate template; + + @Override + public void configure() throws Exception { + + from( CATALOG_GET_SERVICETESTSPEC_BY_ID ) + .log(LoggingLevel.INFO, log, CATALOG_GET_SERVICETESTSPEC_BY_ID + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean( serviceTestSpecificationRepoService, "findByUuidEager") + .marshal().json( JsonLibrary.Jackson, String.class) + .convertBodyTo( String.class ); + + + from( CATALOG_ADD_SERVICETEST ) + .log(LoggingLevel.INFO, log, CATALOG_ADD_SERVICETEST + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, ServiceTestCreate.class, true) + .bean( serviceTestRepoService, "addServiceTest(${body})") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + + from( CATALOG_GET_SERVICETEST_BY_ID ) + .log(LoggingLevel.INFO, log, CATALOG_GET_SERVICETEST_BY_ID + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean( serviceTestRepoService, "getServiceTestEagerAsString") + .convertBodyTo( String.class ); + + from(CATALOG_UPD_SERVICETEST) + .log(LoggingLevel.INFO, log, CATALOG_UPD_SERVICETEST + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .unmarshal().json( JsonLibrary.Jackson, ServiceTestUpdate.class, true) + .bean( serviceTestRepoService, "updateServiceTest(${header.serviceid}, ${body} )") + .marshal().json( JsonLibrary.Jackson) + .convertBodyTo( String.class ); + } + + + + static T toJsonObj(String content, Class valueType) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.readValue( content, valueType); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/Addressable.java b/src/main/java/org/etsi/osl/tmf/stm653/model/Addressable.java new file mode 100644 index 0000000..63329b1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/Addressable.java @@ -0,0 +1,121 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Base schema for adressable entities + */ +@Schema(description = "Base schema for adressable entities") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class Addressable { + @JsonProperty("id") + private String id = null; + + @JsonProperty("href") + private String href = null; + + public Addressable id(String id) { + this.id = id; + return this; + } + + /** + * unique identifier + * @return id + **/ + @Schema(description = "unique identifier") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Addressable href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink reference + * @return href + **/ + @Schema(description = "Hyperlink reference") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Addressable addressable = (Addressable) o; + return Objects.equals(this.id, addressable.id) && + Objects.equals(this.href, addressable.href); + } + + @Override + public int hashCode() { + return Objects.hash(id, href); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Addressable {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/AppliedConsequence.java b/src/main/java/org/etsi/osl/tmf/stm653/model/AppliedConsequence.java new file mode 100644 index 0000000..10b5316 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/AppliedConsequence.java @@ -0,0 +1,195 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Lob; +import jakarta.persistence.Table; + +/** + * An Applied Consequence defines the action (prescribed action or notification) + * to take when a MeasureThresholdRuleViolation occurs. + */ +@Schema(description = "An Applied Consequence defines the action (prescribed action or notification) to take when a MeasureThresholdRuleViolation occurs.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") + +@Entity(name = "STMAppliedConsequence") +@Table(name = "STMAppliedConsequence") +public class AppliedConsequence extends BaseRootNamedEntity { + @JsonProperty("appliedAction") + private String appliedAction = null; + + @Lob + @Column(name = "LDESCRIPTION", columnDefinition = "LONGTEXT") + @JsonProperty("description") + private String description = null; + + + @JsonProperty("repeatAction") + private Boolean repeatAction = null; + + + public AppliedConsequence appliedAction(String appliedAction) { + this.appliedAction = appliedAction; + return this; + } + + /** + * The action for a violated threshold. This could be a hyperlink to the action. + * + * @return appliedAction + **/ + @Schema(description = "The action for a violated threshold. This could be a hyperlink to the action.") + + public String getAppliedAction() { + return appliedAction; + } + + public void setAppliedAction(String appliedAction) { + this.appliedAction = appliedAction; + } + + public AppliedConsequence description(String description) { + this.description = description; + return this; + } + + /** + * A narrative that explains in detail what the consequence is. + * + * @return description + **/ + @Schema(description = "A narrative that explains in detail what the consequence is.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public AppliedConsequence name(String name) { + this.name = name; + return this; + } + + /** + * A word, term, or phrase by which Consequence is known and distinguished from + * other MetricDefMeasureConsequences. + * + * @return name + **/ + @Schema(description = "A word, term, or phrase by which Consequence is known and distinguished from other MetricDefMeasureConsequences.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public AppliedConsequence repeatAction(Boolean repeatAction) { + this.repeatAction = repeatAction; + return this; + } + + /** + * An indicator used to specify that a consequence should cease being applied if + * a value is in the same range as the previous value or continue being applied + * if a value is in the same range as the previous value. If the repeatAction is + * True, if the consequence is always applied as soon as the MetricMeasure value + * is in the range of values and if the repeatAction is False, the consequence + * is applied only if the previous MetricMeasure value was not in the same + * range. + * + * @return repeatAction + **/ + @Schema(description = "An indicator used to specify that a consequence should cease being applied if a value is in the same range as the previous value or continue being applied if a value is in the same range as the previous value. If the repeatAction is True, if the consequence is always applied as soon as the MetricMeasure value is in the range of values and if the repeatAction is False, the consequence is applied only if the previous MetricMeasure value was not in the same range.") + + public Boolean isRepeatAction() { + return repeatAction; + } + + public void setRepeatAction(Boolean repeatAction) { + this.repeatAction = repeatAction; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AppliedConsequence appliedConsequence = (AppliedConsequence) o; + return Objects.equals(this.appliedAction, appliedConsequence.appliedAction) + && Objects.equals(this.description, appliedConsequence.description) + && Objects.equals(this.name, appliedConsequence.name) + && Objects.equals(this.repeatAction, appliedConsequence.repeatAction) + && Objects.equals(this.baseType, appliedConsequence.baseType) + && Objects.equals(this.schemaLocation, appliedConsequence.schemaLocation) + && Objects.equals(this.type, appliedConsequence.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(appliedAction, description, name, repeatAction, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AppliedConsequence {\n"); + + sb.append(" appliedAction: ").append(toIndentedString(appliedAction)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" repeatAction: ").append(toIndentedString(repeatAction)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/AssociationSpecificationRef.java b/src/main/java/org/etsi/osl/tmf/stm653/model/AssociationSpecificationRef.java new file mode 100644 index 0000000..09633f9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/AssociationSpecificationRef.java @@ -0,0 +1,178 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; +import jakarta.validation.constraints.NotNull; + +/** + * reference to an AssociationSpecification object + */ +@Schema(description = "reference to an AssociationSpecification object") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Entity(name = "STMAssociationSpecificationRef") +@Table(name = "STMAssociationSpecificationRef") +public class AssociationSpecificationRef extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public AssociationSpecificationRef id(String id) { + this.id = id; + return this; + } + + /** + * unique identifier + * @return id + **/ + @Schema(description = "unique identifier") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AssociationSpecificationRef href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink reference + * @return href + **/ + @Schema(description = "Hyperlink reference") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public AssociationSpecificationRef name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + + + public AssociationSpecificationRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AssociationSpecificationRef associationSpecificationRef = (AssociationSpecificationRef) o; + return Objects.equals(this.id, associationSpecificationRef.id) && + Objects.equals(this.href, associationSpecificationRef.href) && + Objects.equals(this.name, associationSpecificationRef.name) && + Objects.equals(this.baseType, associationSpecificationRef.baseType) && + Objects.equals(this.schemaLocation, associationSpecificationRef.schemaLocation) && + Objects.equals(this.type, associationSpecificationRef.type) && + Objects.equals(this._atReferredType, associationSpecificationRef._atReferredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, baseType, schemaLocation, type, _atReferredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AssociationSpecificationRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/Characteristic.java b/src/main/java/org/etsi/osl/tmf/stm653/model/Characteristic.java new file mode 100644 index 0000000..340d2c7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/Characteristic.java @@ -0,0 +1,274 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * Describes a given characteristic of an object or entity through a name/value + * pair. + */ +@Schema(description = "Describes a given characteristic of an object or entity through a name/value pair.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Entity(name = "STMCharacteristic") +@Table(name = "STMCharacteristic") +public class Characteristic extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("characteristicRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set characteristicRelationship = null; + + @JsonProperty("value") + private Any value = null; + + public Characteristic() { + } + + + public Characteristic(Characteristic src) { + name = src.name; + valueType = src.valueType; + } + + /** + * @return the id + */ + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + public Characteristic name(String name) { + this.name = name; + return this; + } + + /** + * Name of the characteristic + * + * @return name + **/ + @Schema(description = "Name of the characteristic") + @NotNull + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Characteristic valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * Data type of the value of the characteristic + * + * @return valueType + **/ + @Schema(description = "Data type of the value of the characteristic") + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public Characteristic characteristicRelationship(Set characteristicRelationship) { + this.characteristicRelationship = characteristicRelationship; + return this; + } + + public Characteristic addCharacteristicRelationshipItem(CharacteristicRelationship characteristicRelationshipItem) { + if (this.characteristicRelationship == null) { + this.characteristicRelationship = new HashSet<>(); + } + this.characteristicRelationship.add(characteristicRelationshipItem); + return this; + } + + /** + * Get characteristicRelationship + * + * @return characteristicRelationship + **/ + @Schema(description = "") + @Valid + public Set getCharacteristicRelationship() { + return characteristicRelationship; + } + + public void setCharacteristicRelationship(Set characteristicRelationship) { + this.characteristicRelationship = characteristicRelationship; + } + + public Characteristic value(Any value) { + this.value = value; + return this; + } + + /** + * Get value + * + * @return value + **/ + @Schema(description = "") + @NotNull + + @Valid + public Any getValue() { + return value; + } + + public void setValue(Any value) { + this.value = value; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Characteristic characteristic = (Characteristic) o; + return Objects.equals(this.id, characteristic.id) && Objects.equals(this.name, characteristic.name) + && Objects.equals(this.valueType, characteristic.valueType) + && Objects.equals(this.characteristicRelationship, characteristic.characteristicRelationship) + && Objects.equals(this.value, characteristic.value) + && Objects.equals(this.baseType, characteristic.baseType) + && Objects.equals(this.schemaLocation, characteristic.schemaLocation) + && Objects.equals(this.type, characteristic.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, name, valueType, characteristicRelationship, value, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Characteristic {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" characteristicRelationship: ").append(toIndentedString(characteristicRelationship)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +// public void updateWith(Characteristic src) { +// this.name = src.getName(); +// this.valueType = src.valueType; +// +// this.updateServiceCharacteristicRel(src.getCharacteristicRelationship() ); +// +// } +// +// private void updateServiceCharacteristicRel(@Valid Set srcSet) { +// +// if ( srcSet == null ) { +// return; +// } +// Map< String, Boolean> idAddedUpdated = new HashMap<>(); +// /** +// * update, add the incomings +// */ +// for (CharacteristicRelationship r : srcSet) { +// +// boolean valueExists = false; +// for (CharacteristicRelationship thisCharVal : this.characteristicRelationship ) { +// if ( (thisCharVal.getId() !=null) && (thisCharVal.getId().equals(r.getId() ) )) { +// valueExists = true; +// idAddedUpdated.put( thisCharVal.getId() , true); +// break; +// } +// } +// +// if (!valueExists) { +// this.characteristicRelationship.add( new CharacteristicRelationship( r )); +// idAddedUpdated.put( r.getId(), true); +// } +// +// } +// +// /** +// * remove those that don't exist anymore +// */ +// +// List toRemove = new ArrayList<>(); +// for (CharacteristicRelationship ss : this.characteristicRelationship) { +// if ( idAddedUpdated.get( ss.getId() ) == null ) { +// toRemove.add(ss); +// } +// } +// +// for (CharacteristicRelationship r : toRemove) { +// this.characteristicRelationship.remove(r); +// } +// +// } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicRelationship.java b/src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicRelationship.java new file mode 100644 index 0000000..986a192 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicRelationship.java @@ -0,0 +1,127 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; + +/** + * Another Characteristic that is related to the current Characteristic; + */ +@Schema(description = "Another Characteristic that is related to the current Characteristic;") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") + +@Entity(name = "STMCharacteristicRelationship") +@Table(name = "STMCharacteristicRelationship") +public class CharacteristicRelationship extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("relationshipType") + private String relationshipType = null; + + /** + * @return the id + */ + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + public CharacteristicRelationship() { + + } + + + public CharacteristicRelationship( CharacteristicRelationship src) { + + relationshipType = src.relationshipType; + } + + + public CharacteristicRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * The type of relationship + * + * @return relationshipType + **/ + @Schema(description = "The type of relationship") + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CharacteristicRelationship characteristicRelationship = (CharacteristicRelationship) o; + return Objects.equals(this.id, characteristicRelationship.id) + && Objects.equals(this.relationshipType, characteristicRelationship.relationshipType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, relationshipType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CharacteristicRelationship {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicSpecification.java b/src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicSpecification.java new file mode 100644 index 0000000..7f64397 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicSpecification.java @@ -0,0 +1,635 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * This class defines a characteristic specification. + */ +@Schema(description = "This class defines a characteristic specification.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Entity(name = "STMCharactSpec") +@Table(name = "STMCharactSpec") +public class CharacteristicSpecification extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("configurable") + private Boolean configurable = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("extensible") + private Boolean extensible = null; + + @JsonProperty("isUnique") + private Boolean isUnique = null; + + @JsonProperty("maxCardinality") + private Integer maxCardinality = null; + + @JsonProperty("minCardinality") + private Integer minCardinality = null; + + @JsonProperty("regex") + private String regex = null; + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("charSpecRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set charSpecRelationship = new HashSet<>(); + + @JsonProperty("characteristicValueSpecification") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set characteristicValueSpecification = new HashSet<>(); + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@valueSchemaLocation") + private String _atValueSchemaLocation = null; + + public CharacteristicSpecification() { + this.baseType = "BaseRootEntity"; + this.type = this.getClass().getName(); + } + + + public CharacteristicSpecification(CharacteristicSpecification src) { + this(); + configurable = src.configurable; + description = src.description; + extensible = src.extensible; + isUnique = src.isUnique; + maxCardinality = src.maxCardinality; + minCardinality = src.minCardinality; + name = src.name; + regex = src.regex; + valueType = src.valueType; + validFor = new TimePeriod( src.validFor ) ; + + for (CharacteristicSpecificationRelationship r : src.charSpecRelationship) { + this.addServiceSpecCharRelationshipItem( new CharacteristicSpecificationRelationship( r )); + } + + for (CharacteristicValueSpecification r : src.characteristicValueSpecification) { + this.addServiceSpecCharacteristicValueItem( new CharacteristicValueSpecification(r) ); + } + } + + + private CharacteristicSpecification addServiceSpecCharRelationshipItem( + CharacteristicSpecificationRelationship characteristicSpecificationRelationship) { + + if (this.charSpecRelationship == null) { + this.charSpecRelationship = new HashSet(); + } + this.charSpecRelationship.add( characteristicSpecificationRelationship ); + return this; + + } + + + /** + * Unique ID for the characteristic + * + * @return id + **/ + @Schema(description = "Unique ID for the characteristic") + /** + * @return the id + */ + public String getId() { + id = uuid; + return uuid; + } + + public CharacteristicSpecification configurable(Boolean configurable) { + this.configurable = configurable; + return this; + } + + /** + * If true, the Boolean indicates that the target Characteristic is configurable + * + * @return configurable + **/ + @Schema(description = "If true, the Boolean indicates that the target Characteristic is configurable") + + public Boolean isConfigurable() { + return configurable; + } + + public void setConfigurable(Boolean configurable) { + this.configurable = configurable; + } + + public CharacteristicSpecification description(String description) { + this.description = description; + return this; + } + + /** + * A narrative that explains the CharacteristicSpecification. + * + * @return description + **/ + @Schema(description = "A narrative that explains the CharacteristicSpecification.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CharacteristicSpecification extensible(Boolean extensible) { + this.extensible = extensible; + return this; + } + + /** + * An indicator that specifies that the values for the characteristic can be + * extended by adding new values when instantiating a characteristic for a + * resource. + * + * @return extensible + **/ + @Schema(description = "An indicator that specifies that the values for the characteristic can be extended by adding new values when instantiating a characteristic for a resource.") + + public Boolean isExtensible() { + return extensible; + } + + public void setExtensible(Boolean extensible) { + this.extensible = extensible; + } + + public CharacteristicSpecification isUnique(Boolean isUnique) { + this.isUnique = isUnique; + return this; + } + + /** + * An indicator that specifies if a value is unique for the specification. + * Possible values are; \"unique while value is in effect\" and \"unique whether + * value is in effect or not\" + * + * @return isUnique + **/ + @Schema(description = "An indicator that specifies if a value is unique for the specification. Possible values are; \"unique while value is in effect\" and \"unique whether value is in effect or not\"") + + public Boolean isIsUnique() { + return isUnique; + } + + public void setIsUnique(Boolean isUnique) { + this.isUnique = isUnique; + } + + public CharacteristicSpecification maxCardinality(Integer maxCardinality) { + this.maxCardinality = maxCardinality; + return this; + } + + /** + * The maximum number of instances a CharacteristicValue can take on. For + * example, zero to five phone numbers in a group calling plan, where five is + * the value for the maxCardinality. + * + * @return maxCardinality + **/ + @Schema(description = "The maximum number of instances a CharacteristicValue can take on. For example, zero to five phone numbers in a group calling plan, where five is the value for the maxCardinality.") + + public Integer getMaxCardinality() { + return maxCardinality; + } + + public void setMaxCardinality(Integer maxCardinality) { + this.maxCardinality = maxCardinality; + } + + public CharacteristicSpecification minCardinality(Integer minCardinality) { + this.minCardinality = minCardinality; + return this; + } + + /** + * The minimum number of instances a CharacteristicValue can take on. For + * example, zero to five phone numbers in a group calling plan, where zero is + * the value for the minCardinality. + * + * @return minCardinality + **/ + @Schema(description = "The minimum number of instances a CharacteristicValue can take on. For example, zero to five phone numbers in a group calling plan, where zero is the value for the minCardinality.") + + public Integer getMinCardinality() { + return minCardinality; + } + + public void setMinCardinality(Integer minCardinality) { + this.minCardinality = minCardinality; + } + + public CharacteristicSpecification name(String name) { + this.name = name; + return this; + } + + /** + * A word, term, or phrase by which this characteristic specification is known + * and distinguished from other characteristic specifications. + * + * @return name + **/ + @Schema(description = "A word, term, or phrase by which this characteristic specification is known and distinguished from other characteristic specifications.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public CharacteristicSpecification regex(String regex) { + this.regex = regex; + return this; + } + + /** + * A rule or principle represented in regular expression used to derive the + * value of a characteristic value. + * + * @return regex + **/ + @Schema(description = "A rule or principle represented in regular expression used to derive the value of a characteristic value.") + + public String getRegex() { + return regex; + } + + public void setRegex(String regex) { + this.regex = regex; + } + + public CharacteristicSpecification valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * A kind of value that the characteristic can take on, such as numeric, text + * and so forth + * + * @return valueType + **/ + @Schema(description = "A kind of value that the characteristic can take on, such as numeric, text and so forth") + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public CharacteristicSpecification charSpecRelationship( + Set charSpecRelationship) { + this.charSpecRelationship = charSpecRelationship; + return this; + } + + public CharacteristicSpecification addCharSpecRelationshipItem( + CharacteristicSpecificationRelationship charSpecRelationshipItem) { + if (this.charSpecRelationship == null) { + this.charSpecRelationship = new HashSet<>(); + } + this.charSpecRelationship.add(charSpecRelationshipItem); + return this; + } + + /** + * An aggregation, migration, substitution, dependency or exclusivity + * relationship between/among Specification Characteristics. + * + * @return charSpecRelationship + **/ + @Schema(description = "An aggregation, migration, substitution, dependency or exclusivity relationship between/among Specification Characteristics.") + @Valid + public Set getCharSpecRelationship() { + return charSpecRelationship; + } + + public void setCharSpecRelationship(Set charSpecRelationship) { + this.charSpecRelationship = charSpecRelationship; + } + + public CharacteristicSpecification characteristicValueSpecification( + Set characteristicValueSpecification) { + this.characteristicValueSpecification = characteristicValueSpecification; + return this; + } + + public CharacteristicSpecification addCharacteristicValueSpecificationItem( + CharacteristicValueSpecification characteristicValueSpecificationItem) { + if (this.characteristicValueSpecification == null) { + this.characteristicValueSpecification = new HashSet<>(); + } + this.characteristicValueSpecification.add(characteristicValueSpecificationItem); + return this; + } + + /** + * A CharacteristicValueSpecification object is used to define a set of + * attributes, each of which can be assigned to a corresponding set of + * attributes in a CharacteristicSpecification object. The values of the + * attributes in the CharacteristicValueSpecification object describe the values + * of the attributes that a corresponding Characteristic object can take on. + * + * @return characteristicValueSpecification + **/ + @Schema(description = "A CharacteristicValueSpecification object is used to define a set of attributes, each of which can be assigned to a corresponding set of attributes in a CharacteristicSpecification object. The values of the attributes in the CharacteristicValueSpecification object describe the values of the attributes that a corresponding Characteristic object can take on.") + @Valid + public Set getCharacteristicValueSpecification() { + return characteristicValueSpecification; + } + + public void setCharacteristicValueSpecification( + Set characteristicValueSpecification) { + this.characteristicValueSpecification = characteristicValueSpecification; + } + + public CharacteristicSpecification validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public CharacteristicSpecification _atValueSchemaLocation(String _atValueSchemaLocation) { + this._atValueSchemaLocation = _atValueSchemaLocation; + return this; + } + + /** + * This (optional) field provides a link to the schema describing the value + * type. + * + * @return _atValueSchemaLocation + **/ + @Schema(description = "This (optional) field provides a link to the schema describing the value type.") + + public String getAtValueSchemaLocation() { + return _atValueSchemaLocation; + } + + public void setAtValueSchemaLocation(String _atValueSchemaLocation) { + this._atValueSchemaLocation = _atValueSchemaLocation; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CharacteristicSpecification characteristicSpecification = (CharacteristicSpecification) o; + return Objects.equals(this.id, characteristicSpecification.id) + && Objects.equals(this.configurable, characteristicSpecification.configurable) + && Objects.equals(this.description, characteristicSpecification.description) + && Objects.equals(this.extensible, characteristicSpecification.extensible) + && Objects.equals(this.isUnique, characteristicSpecification.isUnique) + && Objects.equals(this.maxCardinality, characteristicSpecification.maxCardinality) + && Objects.equals(this.minCardinality, characteristicSpecification.minCardinality) + && Objects.equals(this.name, characteristicSpecification.name) + && Objects.equals(this.regex, characteristicSpecification.regex) + && Objects.equals(this.valueType, characteristicSpecification.valueType) + && Objects.equals(this.charSpecRelationship, characteristicSpecification.charSpecRelationship) + && Objects.equals(this.characteristicValueSpecification, + characteristicSpecification.characteristicValueSpecification) + && Objects.equals(this.validFor, characteristicSpecification.validFor) + && Objects.equals(this.baseType, characteristicSpecification.baseType) + && Objects.equals(this.schemaLocation, characteristicSpecification.baseType) + && Objects.equals(this.type, characteristicSpecification.type) + && Objects.equals(this._atValueSchemaLocation, characteristicSpecification._atValueSchemaLocation); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, configurable, description, extensible, isUnique, maxCardinality, minCardinality, name, regex, valueType, charSpecRelationship, characteristicValueSpecification, validFor, baseType, schemaLocation, type, _atValueSchemaLocation); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CharacteristicSpecification {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" configurable: ").append(toIndentedString(configurable)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" extensible: ").append(toIndentedString(extensible)).append("\n"); + sb.append(" isUnique: ").append(toIndentedString(isUnique)).append("\n"); + sb.append(" maxCardinality: ").append(toIndentedString(maxCardinality)).append("\n"); + sb.append(" minCardinality: ").append(toIndentedString(minCardinality)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" regex: ").append(toIndentedString(regex)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" charSpecRelationship: ").append(toIndentedString(charSpecRelationship)).append("\n"); + sb.append(" characteristicValueSpecification: ").append(toIndentedString(characteristicValueSpecification)) + .append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atValueSchemaLocation: ").append(toIndentedString(_atValueSchemaLocation)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public void updateWith(CharacteristicSpecification src) { + this.name = src.getName(); + this.description = src.getDescription(); + this.maxCardinality = src.getMaxCardinality(); + this.minCardinality = src.getMinCardinality(); + this.regex = src.getRegex(); + this.isUnique = src.isUnique; + this.configurable = src.isConfigurable(); + this.extensible = src.isExtensible(); + this.valueType = src.valueType; + + this.updateServiceSpecCharacteristicValues(src.getCharacteristicValueSpecification()); + this.updateServiceSpecCharRelationships(src.getCharSpecRelationship()); + + } + + + private void updateServiceSpecCharacteristicValues( + @Valid Set srcSet) { + + + Map idAddedUpdated = new HashMap<>(); + /** + * update, add the incomings + */ + for (CharacteristicValueSpecification r : srcSet) { + + boolean valueExists = false; + for (CharacteristicValueSpecification thisCharVal : this.characteristicValueSpecification ) { + if ( thisCharVal.hashCode() == r.hashCode() ) { + valueExists = true; + idAddedUpdated.put(thisCharVal.hashCode(), true); + break; + } + } + + if (!valueExists) { + CharacteristicValueSpecification nr = new CharacteristicValueSpecification( r ); + this.addServiceSpecCharacteristicValueItem( nr ); + idAddedUpdated.put( nr.hashCode(), true); + } + + } + + /** + * remove those that don't exist anymore + */ + + List toRemove = new ArrayList<>(); + for (CharacteristicValueSpecification ss : this.characteristicValueSpecification) { + if ( idAddedUpdated.get( ss.hashCode() ) == null ) { + toRemove.add(ss); + } + } + + for (CharacteristicValueSpecification r : toRemove) { + this.characteristicValueSpecification.remove(r); + } + + } + + private CharacteristicSpecification addServiceSpecCharacteristicValueItem(CharacteristicValueSpecification nr) { + if (this.characteristicValueSpecification == null) { + this.characteristicValueSpecification = new HashSet(); + } + this.characteristicValueSpecification.add(nr); + return this; + + } + + + + + private void updateServiceSpecCharRelationships( + @Valid Set srcSet) { + + + Map< String, Boolean> idAddedUpdated = new HashMap<>(); + /** + * update, add the incomings + */ + for (CharacteristicSpecificationRelationship r : srcSet) { + + boolean valueExists = false; + for (CharacteristicSpecificationRelationship thisCharVal : this.charSpecRelationship ) { + if ( (thisCharVal.getCharacteristicSpecificationId()!=null) && (thisCharVal.getCharacteristicSpecificationId().equals(r.getCharacteristicSpecificationId() ) )) { + valueExists = true; + idAddedUpdated.put( thisCharVal.getCharacteristicSpecificationId() , true); + break; + } + } + + if (!valueExists) { + this.charSpecRelationship.add( new CharacteristicSpecificationRelationship( r )); + idAddedUpdated.put( r.getCharacteristicSpecificationId(), true); + } + + } + + /** + * remove those that don't exist anymore + */ + + List toRemove = new ArrayList<>(); + for (CharacteristicSpecificationRelationship ss : this.charSpecRelationship) { + if ( idAddedUpdated.get( ss.getCharacteristicSpecificationId() ) == null ) { + toRemove.add(ss); + } + } + + for (CharacteristicSpecificationRelationship r : toRemove) { + this.charSpecRelationship.remove(r); + } + + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicSpecificationBase.java b/src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicSpecificationBase.java new file mode 100644 index 0000000..fcfd5ad --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicSpecificationBase.java @@ -0,0 +1,434 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * This class defines a characteristic specification. + */ +@Schema(description = "This class defines a characteristic specification.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class CharacteristicSpecificationBase { + @JsonProperty("id") + private String id = null; + + @JsonProperty("configurable") + private Boolean configurable = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("extensible") + private Boolean extensible = null; + + @JsonProperty("isUnique") + private Boolean isUnique = null; + + @JsonProperty("maxCardinality") + private Integer maxCardinality = null; + + @JsonProperty("minCardinality") + private Integer minCardinality = null; + + @JsonProperty("name") + private String name = null; + + @JsonProperty("regex") + private String regex = null; + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + @JsonProperty("@valueSchemaLocation") + private String _atValueSchemaLocation = null; + + public CharacteristicSpecificationBase id(String id) { + this.id = id; + return this; + } + + /** + * Unique ID for the characteristic + * @return id + **/ + @Schema(description = "Unique ID for the characteristic") + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CharacteristicSpecificationBase configurable(Boolean configurable) { + this.configurable = configurable; + return this; + } + + /** + * If true, the Boolean indicates that the target Characteristic is configurable + * @return configurable + **/ + @Schema(description = "If true, the Boolean indicates that the target Characteristic is configurable") + + public Boolean isConfigurable() { + return configurable; + } + + public void setConfigurable(Boolean configurable) { + this.configurable = configurable; + } + + public CharacteristicSpecificationBase description(String description) { + this.description = description; + return this; + } + + /** + * A narrative that explains the CharacteristicSpecification. + * @return description + **/ + @Schema(description = "A narrative that explains the CharacteristicSpecification.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CharacteristicSpecificationBase extensible(Boolean extensible) { + this.extensible = extensible; + return this; + } + + /** + * An indicator that specifies that the values for the characteristic can be extended by adding new values when instantiating a characteristic for a resource. + * @return extensible + **/ + @Schema(description = "An indicator that specifies that the values for the characteristic can be extended by adding new values when instantiating a characteristic for a resource.") + + public Boolean isExtensible() { + return extensible; + } + + public void setExtensible(Boolean extensible) { + this.extensible = extensible; + } + + public CharacteristicSpecificationBase isUnique(Boolean isUnique) { + this.isUnique = isUnique; + return this; + } + + /** + * An indicator that specifies if a value is unique for the specification. Possible values are; \"unique while value is in effect\" and \"unique whether value is in effect or not\" + * @return isUnique + **/ + @Schema(description = "An indicator that specifies if a value is unique for the specification. Possible values are; \"unique while value is in effect\" and \"unique whether value is in effect or not\"") + + public Boolean isIsUnique() { + return isUnique; + } + + public void setIsUnique(Boolean isUnique) { + this.isUnique = isUnique; + } + + public CharacteristicSpecificationBase maxCardinality(Integer maxCardinality) { + this.maxCardinality = maxCardinality; + return this; + } + + /** + * The maximum number of instances a CharacteristicValue can take on. For example, zero to five phone numbers in a group calling plan, where five is the value for the maxCardinality. + * @return maxCardinality + **/ + @Schema(description = "The maximum number of instances a CharacteristicValue can take on. For example, zero to five phone numbers in a group calling plan, where five is the value for the maxCardinality.") + + public Integer getMaxCardinality() { + return maxCardinality; + } + + public void setMaxCardinality(Integer maxCardinality) { + this.maxCardinality = maxCardinality; + } + + public CharacteristicSpecificationBase minCardinality(Integer minCardinality) { + this.minCardinality = minCardinality; + return this; + } + + /** + * The minimum number of instances a CharacteristicValue can take on. For example, zero to five phone numbers in a group calling plan, where zero is the value for the minCardinality. + * @return minCardinality + **/ + @Schema(description = "The minimum number of instances a CharacteristicValue can take on. For example, zero to five phone numbers in a group calling plan, where zero is the value for the minCardinality.") + + public Integer getMinCardinality() { + return minCardinality; + } + + public void setMinCardinality(Integer minCardinality) { + this.minCardinality = minCardinality; + } + + public CharacteristicSpecificationBase name(String name) { + this.name = name; + return this; + } + + /** + * A word, term, or phrase by which this characteristic specification is known and distinguished from other characteristic specifications. + * @return name + **/ + @Schema(description = "A word, term, or phrase by which this characteristic specification is known and distinguished from other characteristic specifications.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public CharacteristicSpecificationBase regex(String regex) { + this.regex = regex; + return this; + } + + /** + * A rule or principle represented in regular expression used to derive the value of a characteristic value. + * @return regex + **/ + @Schema(description = "A rule or principle represented in regular expression used to derive the value of a characteristic value.") + + public String getRegex() { + return regex; + } + + public void setRegex(String regex) { + this.regex = regex; + } + + public CharacteristicSpecificationBase valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * A kind of value that the characteristic can take on, such as numeric, text and so forth + * @return valueType + **/ + @Schema(description = "A kind of value that the characteristic can take on, such as numeric, text and so forth") + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public CharacteristicSpecificationBase validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public CharacteristicSpecificationBase baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public CharacteristicSpecificationBase schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public CharacteristicSpecificationBase type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class Extensible name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class Extensible name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + public CharacteristicSpecificationBase _atValueSchemaLocation(String _atValueSchemaLocation) { + this._atValueSchemaLocation = _atValueSchemaLocation; + return this; + } + + /** + * This (optional) field provides a link to the schema describing the value type. + * @return _atValueSchemaLocation + **/ + @Schema(description = "This (optional) field provides a link to the schema describing the value type.") + + public String getAtValueSchemaLocation() { + return _atValueSchemaLocation; + } + + public void setAtValueSchemaLocation(String _atValueSchemaLocation) { + this._atValueSchemaLocation = _atValueSchemaLocation; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CharacteristicSpecificationBase characteristicSpecificationBase = (CharacteristicSpecificationBase) o; + return Objects.equals(this.id, characteristicSpecificationBase.id) && + Objects.equals(this.configurable, characteristicSpecificationBase.configurable) && + Objects.equals(this.description, characteristicSpecificationBase.description) && + Objects.equals(this.extensible, characteristicSpecificationBase.extensible) && + Objects.equals(this.isUnique, characteristicSpecificationBase.isUnique) && + Objects.equals(this.maxCardinality, characteristicSpecificationBase.maxCardinality) && + Objects.equals(this.minCardinality, characteristicSpecificationBase.minCardinality) && + Objects.equals(this.name, characteristicSpecificationBase.name) && + Objects.equals(this.regex, characteristicSpecificationBase.regex) && + Objects.equals(this.valueType, characteristicSpecificationBase.valueType) && + Objects.equals(this.validFor, characteristicSpecificationBase.validFor) && + Objects.equals(this.baseType, characteristicSpecificationBase.baseType) && + Objects.equals(this.schemaLocation, characteristicSpecificationBase.schemaLocation) && + Objects.equals(this.type, characteristicSpecificationBase.type) && + Objects.equals(this._atValueSchemaLocation, characteristicSpecificationBase._atValueSchemaLocation); + } + + @Override + public int hashCode() { + return Objects.hash(id, configurable, description, extensible, isUnique, maxCardinality, minCardinality, name, regex, valueType, validFor, baseType, schemaLocation, type, _atValueSchemaLocation); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CharacteristicSpecificationBase {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" configurable: ").append(toIndentedString(configurable)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" extensible: ").append(toIndentedString(extensible)).append("\n"); + sb.append(" isUnique: ").append(toIndentedString(isUnique)).append("\n"); + sb.append(" maxCardinality: ").append(toIndentedString(maxCardinality)).append("\n"); + sb.append(" minCardinality: ").append(toIndentedString(minCardinality)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" regex: ").append(toIndentedString(regex)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atValueSchemaLocation: ").append(toIndentedString(_atValueSchemaLocation)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicSpecificationRelationship.java b/src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicSpecificationRelationship.java new file mode 100644 index 0000000..982fc4b --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicSpecificationRelationship.java @@ -0,0 +1,228 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * An aggregation, migration, substitution, dependency or exclusivity + * relationship between/among Characteristic specifications. The specification + * characteristic is embedded within the specification whose ID and href are in + * this entity, and identified by its ID. + */ +@Schema(description = "An aggregation, migration, substitution, dependency or exclusivity relationship between/among Characteristic specifications. The specification characteristic is embedded within the specification whose ID and href are in this entity, and identified by its ID.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Entity(name = "STMCharacSpecRel") +@Table(name = "STMCharacSpecRel") +public class CharacteristicSpecificationRelationship extends BaseRootNamedEntity { + @JsonProperty("characteristicSpecificationId") + private String characteristicSpecificationId = null; + + @JsonProperty("parentSpecificationHref") + private String parentSpecificationHref = null; + + @JsonProperty("parentSpecificationId") + private String parentSpecificationId = null; + + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + public CharacteristicSpecificationRelationship() { + + } + + + public CharacteristicSpecificationRelationship(CharacteristicSpecificationRelationship src) { + name = src.name; + relationshipType = src.relationshipType; + validFor = new TimePeriod(src.validFor); + characteristicSpecificationId = src.characteristicSpecificationId; + } + + public CharacteristicSpecificationRelationship characteristicSpecificationId(String characteristicSpecificationId) { + this.characteristicSpecificationId = characteristicSpecificationId; + return this; + } + + /** + * Unique identifier of the characteristic within the specification + * + * @return characteristicSpecificationId + **/ + @Schema(description = "Unique identifier of the characteristic within the specification") + + public String getCharacteristicSpecificationId() { + return characteristicSpecificationId; + } + + public void setCharacteristicSpecificationId(String characteristicSpecificationId) { + this.characteristicSpecificationId = characteristicSpecificationId; + } + + public CharacteristicSpecificationRelationship parentSpecificationHref(String parentSpecificationHref) { + this.parentSpecificationHref = parentSpecificationHref; + return this; + } + + /** + * Hyperlink reference to the parent specification containing the target + * characteristic + * + * @return parentSpecificationHref + **/ + @Schema(description = "Hyperlink reference to the parent specification containing the target characteristic") + + public String getParentSpecificationHref() { + return parentSpecificationHref; + } + + public void setParentSpecificationHref(String parentSpecificationHref) { + this.parentSpecificationHref = parentSpecificationHref; + } + + public CharacteristicSpecificationRelationship parentSpecificationId(String parentSpecificationId) { + this.parentSpecificationId = parentSpecificationId; + return this; + } + + /** + * Unique identifier of the parent specification containing the target + * characteristic + * + * @return parentSpecificationId + **/ + @Schema(description = "Unique identifier of the parent specification containing the target characteristic") + + public String getParentSpecificationId() { + return parentSpecificationId; + } + + public void setParentSpecificationId(String parentSpecificationId) { + this.parentSpecificationId = parentSpecificationId; + } + + public CharacteristicSpecificationRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * Type of relationship such as aggregation, migration, substitution, + * dependency, exclusivity + * + * @return relationshipType + **/ + @Schema(description = "Type of relationship such as aggregation, migration, substitution, dependency, exclusivity") + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public CharacteristicSpecificationRelationship validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CharacteristicSpecificationRelationship characteristicSpecificationRelationship = (CharacteristicSpecificationRelationship) o; + return Objects.equals(this.characteristicSpecificationId, + characteristicSpecificationRelationship.characteristicSpecificationId) + && Objects.equals(this.name, characteristicSpecificationRelationship.name) + && Objects.equals(this.parentSpecificationHref, + characteristicSpecificationRelationship.parentSpecificationHref) + && Objects.equals(this.parentSpecificationId, + characteristicSpecificationRelationship.parentSpecificationId) + && Objects.equals(this.relationshipType, characteristicSpecificationRelationship.relationshipType) + && Objects.equals(this.validFor, characteristicSpecificationRelationship.validFor); + } + + @Override + public int hashCode() { + return Objects.hash(characteristicSpecificationId, name, parentSpecificationHref, parentSpecificationId, + relationshipType, validFor); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CharacteristicSpecificationRelationship {\n"); + + sb.append(" characteristicSpecificationId: ").append(toIndentedString(characteristicSpecificationId)) + .append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" parentSpecificationHref: ").append(toIndentedString(parentSpecificationHref)).append("\n"); + sb.append(" parentSpecificationId: ").append(toIndentedString(parentSpecificationId)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicValueSpecification.java b/src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicValueSpecification.java new file mode 100644 index 0000000..1df4533 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/CharacteristicValueSpecification.java @@ -0,0 +1,327 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * specification of a value (number or text or an object) that can be assigned to a Characteristic. + */ +@Schema(description = "specification of a value (number or text or an object) that can be assigned to a Characteristic.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Entity(name = "STMCharacValSpec") +@Table(name = "STMCharacValSpec") +public class CharacteristicValueSpecification extends BaseRootEntity { + @JsonProperty("isDefault") + private Boolean isDefault = null; + + @JsonProperty("rangeInterval") + private String rangeInterval = null; + + @JsonProperty("regex") + private String regex = null; + + @JsonProperty("unitOfMeasure") + private String unitOfMeasure = null; + + @JsonProperty("valueFrom") + private Integer valueFrom = null; + + @JsonProperty("valueTo") + private Integer valueTo = null; + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + @JsonProperty("value") + private Any value = null; + + + public CharacteristicValueSpecification() { + + } + + + public CharacteristicValueSpecification( CharacteristicValueSpecification r) { + this(); + isDefault = r.isDefault; + rangeInterval = r.rangeInterval; + regex = r.regex; + unitOfMeasure = r.unitOfMeasure; + valueFrom = r.valueFrom; + valueTo = r.valueTo; + valueType = r.valueType; + validFor = new TimePeriod( r.validFor ); + value = new Any( r.value ) ; +// type = r.type; + baseType = r.baseType; + + } + + public CharacteristicValueSpecification isDefault(Boolean isDefault) { + this.isDefault = isDefault; + return this; + } + + /** + * If true, the Boolean Indicates if the value is the default value for a characteristic + * @return isDefault + **/ + @Schema(description = "If true, the Boolean Indicates if the value is the default value for a characteristic") + + public Boolean isIsDefault() { + return isDefault; + } + + public void setIsDefault(Boolean isDefault) { + this.isDefault = isDefault; + } + + public CharacteristicValueSpecification rangeInterval(String rangeInterval) { + this.rangeInterval = rangeInterval; + return this; + } + + /** + * An indicator that specifies the inclusion or exclusion of the valueFrom and valueTo attributes. If applicable, possible values are \"open\", \"closed\", \"closedBottom\" and \"closedTop\". + * @return rangeInterval + **/ + @Schema(description = "An indicator that specifies the inclusion or exclusion of the valueFrom and valueTo attributes. If applicable, possible values are \"open\", \"closed\", \"closedBottom\" and \"closedTop\".") + + public String getRangeInterval() { + return rangeInterval; + } + + public void setRangeInterval(String rangeInterval) { + this.rangeInterval = rangeInterval; + } + + public CharacteristicValueSpecification regex(String regex) { + this.regex = regex; + return this; + } + + /** + * A regular expression constraint for given value + * @return regex + **/ + @Schema(description = "A regular expression constraint for given value") + + public String getRegex() { + return regex; + } + + public void setRegex(String regex) { + this.regex = regex; + } + + public CharacteristicValueSpecification unitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + return this; + } + + /** + * A length, surface, volume, dry measure, liquid measure, money, weight, time, and the like. In general, a determinate quantity or magnitude of the kind designated, taken as a standard of comparison for others of the same kind, in assigning to them numerical values, as 1 foot, 1 yard, 1 mile, 1 square foot. + * @return unitOfMeasure + **/ + @Schema(description = "A length, surface, volume, dry measure, liquid measure, money, weight, time, and the like. In general, a determinate quantity or magnitude of the kind designated, taken as a standard of comparison for others of the same kind, in assigning to them numerical values, as 1 foot, 1 yard, 1 mile, 1 square foot.") + + public String getUnitOfMeasure() { + return unitOfMeasure; + } + + public void setUnitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + } + + public CharacteristicValueSpecification valueFrom(Integer valueFrom) { + this.valueFrom = valueFrom; + return this; + } + + /** + * The low range value that a characteristic can take on + * @return valueFrom + **/ + @Schema(description = "The low range value that a characteristic can take on") + + public Integer getValueFrom() { + return valueFrom; + } + + public void setValueFrom(Integer valueFrom) { + this.valueFrom = valueFrom; + } + + public CharacteristicValueSpecification valueTo(Integer valueTo) { + this.valueTo = valueTo; + return this; + } + + /** + * The upper range value that a characteristic can take on + * @return valueTo + **/ + @Schema(description = "The upper range value that a characteristic can take on") + + public Integer getValueTo() { + return valueTo; + } + + public void setValueTo(Integer valueTo) { + this.valueTo = valueTo; + } + + public CharacteristicValueSpecification valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * A kind of value that the characteristic value can take on, such as numeric, text and so forth + * @return valueType + **/ + @Schema(description = "A kind of value that the characteristic value can take on, such as numeric, text and so forth") + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public CharacteristicValueSpecification validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public CharacteristicValueSpecification value(Any value) { + this.value = value; + return this; + } + + /** + * Get value + * @return value + **/ + @Schema(description = "") + + @Valid + public Any getValue() { + return value; + } + + public void setValue(Any value) { + this.value = value; + } + + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CharacteristicValueSpecification characteristicValueSpecification = (CharacteristicValueSpecification) o; + return Objects.equals(this.isDefault, characteristicValueSpecification.isDefault) && + Objects.equals(this.rangeInterval, characteristicValueSpecification.rangeInterval) && + Objects.equals(this.regex, characteristicValueSpecification.regex) && + Objects.equals(this.unitOfMeasure, characteristicValueSpecification.unitOfMeasure) && + Objects.equals(this.valueFrom, characteristicValueSpecification.valueFrom) && + Objects.equals(this.valueTo, characteristicValueSpecification.valueTo) && + Objects.equals(this.valueType, characteristicValueSpecification.valueType) && + Objects.equals(this.validFor, characteristicValueSpecification.validFor) && + Objects.equals(this.value, characteristicValueSpecification.value) && + Objects.equals(this.baseType, characteristicValueSpecification.baseType) && + Objects.equals(this.schemaLocation, characteristicValueSpecification.schemaLocation) && + Objects.equals(this.type, characteristicValueSpecification.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(isDefault, rangeInterval, regex, unitOfMeasure, valueFrom, valueTo, valueType, validFor, value, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CharacteristicValueSpecification {\n"); + + sb.append(" isDefault: ").append(toIndentedString(isDefault)).append("\n"); + sb.append(" rangeInterval: ").append(toIndentedString(rangeInterval)).append("\n"); + sb.append(" regex: ").append(toIndentedString(regex)).append("\n"); + sb.append(" unitOfMeasure: ").append(toIndentedString(unitOfMeasure)).append("\n"); + sb.append(" valueFrom: ").append(toIndentedString(valueFrom)).append("\n"); + sb.append(" valueTo: ").append(toIndentedString(valueTo)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ConstraintRef.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ConstraintRef.java new file mode 100644 index 0000000..7aea328 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ConstraintRef.java @@ -0,0 +1,201 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; +import jakarta.validation.constraints.NotNull; + +/** + * Constraint reference. The Constraint resource represents a policy/rule applied to an entity or entity spec. + */ +@Schema(description = "Constraint reference. The Constraint resource represents a policy/rule applied to an entity or entity spec.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Entity(name = "STMConstraintRef") +@Table(name = "STMConstraintRef") +public class ConstraintRef extends BaseRootNamedEntity { + @JsonProperty("id") + private String id = null; + + + + @JsonProperty("@referredType") + private String _atReferredType = null; + + + + @JsonProperty("version") + private String version = null; + + + +/** + * reference id to the target constraint + * @return id + **/ + @Schema(description = "reference id to the target constraint") + @NotNull + /** + * @return the id + */ + public String getId() { + if ( uuid != null ) { + id = uuid; + } + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ConstraintRef href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink reference to the target constraint + * @return href + **/ + @Schema(description = "Hyperlink reference to the target constraint") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ConstraintRef name(String name) { + this.name = name; + return this; + } + + /** + * Name given to the constraint + * @return name + **/ + @Schema(description = "Name given to the constraint") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + + + public ConstraintRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The (class) type of the referred constraint + * @return _atReferredType + **/ + @Schema(description = "The (class) type of the referred constraint") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + /** + * @return the version + */ +public String getVersion() { + return version; +} + +/** + * @param version the version to set + */ +public void setVersion(String version) { + this.version = version; +} + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ConstraintRef constraintRef = (ConstraintRef) o; + return Objects.equals(this.id, constraintRef.id) && + Objects.equals(this.href, constraintRef.href) && + Objects.equals(this.name, constraintRef.name) && + Objects.equals(this.version, constraintRef.version) && + Objects.equals(this.baseType, constraintRef.baseType) && + Objects.equals(this.schemaLocation, constraintRef.schemaLocation) && + Objects.equals(this.type, constraintRef.type) && + Objects.equals(this._atReferredType, constraintRef._atReferredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, version, baseType, schemaLocation, type, _atReferredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ConstraintRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/Duration.java b/src/main/java/org/etsi/osl/tmf/stm653/model/Duration.java new file mode 100644 index 0000000..f5e3c13 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/Duration.java @@ -0,0 +1,123 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Embeddable; + +/** + * A time interval in a given unit of time + */ +@Schema(description = "A time interval in a given unit of time") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") + +@Embeddable +public class Duration extends BaseRootEntity { + @JsonProperty("amount") + private Integer amount = null; + + @JsonProperty("units") + private String units = null; + + public Duration amount(Integer amount) { + this.amount = amount; + return this; + } + + /** + * Time interval (number of seconds, minutes, hours, etc.) + * @return amount + **/ + @Schema(description = "Time interval (number of seconds, minutes, hours, etc.)") + + public Integer getAmount() { + return amount; + } + + public void setAmount(Integer amount) { + this.amount = amount; + } + + public Duration units(String units) { + this.units = units; + return this; + } + + /** + * Unit of time (seconds, minutes, hours, etc.) + * @return units + **/ + @Schema(description = "Unit of time (seconds, minutes, hours, etc.)") + + public String getUnits() { + return units; + } + + public void setUnits(String units) { + this.units = units; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Duration duration = (Duration) o; + return Objects.equals(this.amount, duration.amount) && + Objects.equals(this.units, duration.units); + } + + @Override + public int hashCode() { + return Objects.hash(amount, units); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Duration {\n"); + + sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append(" units: ").append(toIndentedString(units)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/EntityRef.java b/src/main/java/org/etsi/osl/tmf/stm653/model/EntityRef.java new file mode 100644 index 0000000..467d5a1 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/EntityRef.java @@ -0,0 +1,124 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; + +/** + * Entity reference schema to be use for all entityRef class. + */ +@Schema(description = "Entity reference schema to be use for all entityRef class.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Entity(name = "STMEntityRef") +@Table(name = "STMEntityRef") +public class EntityRef extends BaseEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + /** + * @return the id + */ + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + public EntityRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntityRef entityRef = (EntityRef) o; + return Objects.equals(this.id, entityRef.id) && Objects.equals(this.href, entityRef.href) + && Objects.equals(this.name, entityRef.name) + && Objects.equals(this.baseType, entityRef.baseType) + && Objects.equals(this.schemaLocation, entityRef.schemaLocation) + && Objects.equals(this.type, entityRef.type) + && Objects.equals(this._atReferredType, entityRef._atReferredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, baseType, schemaLocation, type, _atReferredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntityRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/EntitySpecification.java b/src/main/java/org/etsi/osl/tmf/stm653/model/EntitySpecification.java new file mode 100644 index 0000000..f67a4df --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/EntitySpecification.java @@ -0,0 +1,482 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * EntitySpecification is a class that offers characteristics to describe a type + * of entity. Entities are generic constructs that may be used to describe + * bespoke business entities that are not effectively covered by the existing + * SID model. Functionally, the entity specification acts as a template by which + * entities may be instantiated and described. By sharing the same + * specification, these entities would therefore share the same set of + * characteristics. Note: The ‘configurable’ attribute on the + * specCharacteristics determines if an entity instantiated from the entity + * specification can override the value of the attribute. When set to false, the + * entity instance may not define a value that differs from the value in the + * specification. + */ +@Schema(description = "EntitySpecification is a class that offers characteristics to describe a type of entity. Entities are generic constructs that may be used to describe bespoke business entities that are not effectively covered by the existing SID model. Functionally, the entity specification acts as a template by which entities may be instantiated and described. By sharing the same specification, these entities would therefore share the same set of characteristics. Note: The ‘configurable’ attribute on the specCharacteristics determines if an entity instantiated from the entity specification can override the value of the attribute. When set to false, the entity instance may not define a value that differs from the value in the specification.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") + +@Entity(name = "STMEntitySpecification") +@Table(name = "STMEntitySpecification") +public class EntitySpecification extends BaseEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("isBundle") + private Boolean isBundle = null; + + @JsonProperty("attachment") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set attachment = new HashSet<>(); + + @JsonProperty("constraint") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set constraint = new HashSet<>(); + + @JsonProperty("entitySpecRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set entitySpecRelationship = new HashSet<>(); + + @JsonProperty("relatedParty") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set relatedParty = new HashSet<>(); + + @JsonProperty("specCharacteristic") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set specCharacteristic = new HashSet<>(); + + @JsonProperty("targetEntitySchema") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private TargetEntitySchema targetEntitySchema = null; + + /** + * @return the id + */ + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + public EntitySpecification href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink reference + * + * @return href + **/ + @Schema(description = "Hyperlink reference") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public EntitySpecification description(String description) { + this.description = description; + return this; + } + + /** + * Description of this REST resource + * + * @return description + **/ + @Schema(description = "Description of this REST resource") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public EntitySpecification isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * isBundle determines whether an EntitySpecification represents a single + * EntitySpecification (false), or a bundle of EntitySpecifications (true). + * + * @return isBundle + **/ + @Schema(description = "isBundle determines whether an EntitySpecification represents a single EntitySpecification (false), or a bundle of EntitySpecifications (true).") + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + public EntitySpecification lastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + /** + * Date and time of the last update of this REST resource + * + * @return lastUpdate + **/ + @Schema(description = "Date and time of the last update of this REST resource") + + @Valid + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + public EntitySpecification lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Used to indicate the current lifecycle status of this catalog item + * + * @return lifecycleStatus + **/ + @Schema(description = "Used to indicate the current lifecycle status of this catalog item") + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public EntitySpecification name(String name) { + this.name = name; + return this; + } + + /** + * Name given to this REST resource + * + * @return name + **/ + @Schema(description = "Name given to this REST resource") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public EntitySpecification version(String version) { + this.version = version; + return this; + } + + /** + * Entity specification version + * + * @return version + **/ + @Schema(description = "Entity specification version") + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public EntitySpecification attachment(Set attachment) { + this.attachment = attachment; + return this; + } + + public EntitySpecification addAttachmentItem(AttachmentRefOrValue attachmentItem) { + if (this.attachment == null) { + this.attachment = new HashSet<>(); + } + this.attachment.add(attachmentItem); + return this; + } + + /** + * Attachments that may be of relevance to this specification, such as picture, + * document, media + * + * @return attachment + **/ + @Schema(description = "Attachments that may be of relevance to this specification, such as picture, document, media") + @Valid + public Set getAttachment() { + return attachment; + } + + public void setAttachment(Set attachment) { + this.attachment = attachment; + } + + public EntitySpecification constraint(Set constraint) { + this.constraint = constraint; + return this; + } + + public EntitySpecification addConstraintItem(ConstraintRef constraintItem) { + if (this.constraint == null) { + this.constraint = new HashSet<>(); + } + this.constraint.add(constraintItem); + return this; + } + + /** + * This is a list of constraint references applied to this specification + * + * @return constraint + **/ + @Schema(description = "This is a list of constraint references applied to this specification") + @Valid + public Set getConstraint() { + return constraint; + } + + public void setConstraint(Set constraint) { + this.constraint = constraint; + } + + public EntitySpecification entitySpecRelationship(Set entitySpecRelationship) { + this.entitySpecRelationship = entitySpecRelationship; + return this; + } + + public EntitySpecification addEntitySpecRelationshipItem( + EntitySpecificationRelationship entitySpecRelationshipItem) { + if (this.entitySpecRelationship == null) { + this.entitySpecRelationship = new HashSet<>(); + } + this.entitySpecRelationship.add(entitySpecRelationshipItem); + return this; + } + + /** + * Relationship to another entity specification, might be dependency, + * substitution, etc. + * + * @return entitySpecRelationship + **/ + @Schema(description = "Relationship to another entity specification, might be dependency, substitution, etc.") + @Valid + public Set getEntitySpecRelationship() { + return entitySpecRelationship; + } + + public void setEntitySpecRelationship(Set entitySpecRelationship) { + this.entitySpecRelationship = entitySpecRelationship; + } + + public EntitySpecification relatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public EntitySpecification addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new HashSet<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Parties who manage or otherwise have an interest in this entity specification + * + * @return relatedParty + **/ + @Schema(description = "Parties who manage or otherwise have an interest in this entity specification") + @Valid + public Set getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + } + + public EntitySpecification specCharacteristic(Set specCharacteristic) { + this.specCharacteristic = specCharacteristic; + return this; + } + + public EntitySpecification addSpecCharacteristicItem(CharacteristicSpecification specCharacteristicItem) { + if (this.specCharacteristic == null) { + this.specCharacteristic = new HashSet<>(); + } + this.specCharacteristic.add(specCharacteristicItem); + return this; + } + + /** + * List of characteristics that the entity can take + * + * @return specCharacteristic + **/ + @Schema(description = "List of characteristics that the entity can take") + @Valid + public Set getSpecCharacteristic() { + return specCharacteristic; + } + + public void setSpecCharacteristic(Set specCharacteristic) { + this.specCharacteristic = specCharacteristic; + } + + public EntitySpecification targetEntitySchema(TargetEntitySchema targetEntitySchema) { + this.targetEntitySchema = targetEntitySchema; + return this; + } + + /** + * Get targetEntitySchema + * + * @return targetEntitySchema + **/ + @Schema(description = "") + + @Valid + public TargetEntitySchema getTargetEntitySchema() { + return targetEntitySchema; + } + + public void setTargetEntitySchema(TargetEntitySchema targetEntitySchema) { + this.targetEntitySchema = targetEntitySchema; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntitySpecification entitySpecification = (EntitySpecification) o; + return Objects.equals(this.id, entitySpecification.id) && Objects.equals(this.href, entitySpecification.href) + && Objects.equals(this.description, entitySpecification.description) + && Objects.equals(this.isBundle, entitySpecification.isBundle) + && Objects.equals(this.lastUpdate, entitySpecification.lastUpdate) + && Objects.equals(this.lifecycleStatus, entitySpecification.lifecycleStatus) + && Objects.equals(this.name, entitySpecification.name) + && Objects.equals(this.version, entitySpecification.version) + && Objects.equals(this.attachment, entitySpecification.attachment) + && Objects.equals(this.constraint, entitySpecification.constraint) + && Objects.equals(this.entitySpecRelationship, entitySpecification.entitySpecRelationship) + && Objects.equals(this.relatedParty, entitySpecification.relatedParty) + && Objects.equals(this.specCharacteristic, entitySpecification.specCharacteristic) + && Objects.equals(this.targetEntitySchema, entitySpecification.targetEntitySchema) + && Objects.equals(this.validFor, entitySpecification.validFor) + && Objects.equals(this.baseType, entitySpecification.baseType) + && Objects.equals(this.schemaLocation, entitySpecification.schemaLocation) + && Objects.equals(this.type, entitySpecification.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, description, isBundle, lastUpdate, lifecycleStatus, name, version, attachment, constraint, entitySpecRelationship, relatedParty, specCharacteristic, targetEntitySchema, validFor, _atBaseType, _atSchemaLocation, _atType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntitySpecification {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" constraint: ").append(toIndentedString(constraint)).append("\n"); + sb.append(" entitySpecRelationship: ").append(toIndentedString(entitySpecRelationship)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" specCharacteristic: ").append(toIndentedString(specCharacteristic)).append("\n"); + sb.append(" targetEntitySchema: ").append(toIndentedString(targetEntitySchema)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" _atBaseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" _atSchemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" _atType: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/EntitySpecificationRelationship.java b/src/main/java/org/etsi/osl/tmf/stm653/model/EntitySpecificationRelationship.java new file mode 100644 index 0000000..2aa1a48 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/EntitySpecificationRelationship.java @@ -0,0 +1,265 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * A migration, substitution, dependency or exclusivity relationship + * between/among entity specifications. + */ +@Schema(description = "A migration, substitution, dependency or exclusivity relationship between/among entity specifications.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Entity(name = "STMEntitySpecRel") +@Table(name = "STMEntitySpecRel") +public class EntitySpecificationRelationship extends BaseEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("role") + private String role = null; + + @JsonProperty("associationSpec") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private AssociationSpecificationRef associationSpec = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + public EntitySpecificationRelationship id(String id) { + this.id = id; + return this; + } + + /** + * unique identifier + * + * @return id + **/ + @Schema(description = "unique identifier") + /** + * @return the id + */ + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + public EntitySpecificationRelationship href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink reference + * + * @return href + **/ + @Schema(description = "Hyperlink reference") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public EntitySpecificationRelationship name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public EntitySpecificationRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * Type of relationship such as migration, substitution, dependency, exclusivity + * + * @return relationshipType + **/ + @Schema(description = "Type of relationship such as migration, substitution, dependency, exclusivity") + @NotNull + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public EntitySpecificationRelationship role(String role) { + this.role = role; + return this; + } + + /** + * The association role for this entity specification + * + * @return role + **/ + @Schema(description = "The association role for this entity specification") + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public EntitySpecificationRelationship associationSpec(AssociationSpecificationRef associationSpec) { + this.associationSpec = associationSpec; + return this; + } + + /** + * Get associationSpec + * + * @return associationSpec + **/ + @Schema(description = "") + + @Valid + public AssociationSpecificationRef getAssociationSpec() { + return associationSpec; + } + + public void setAssociationSpec(AssociationSpecificationRef associationSpec) { + this.associationSpec = associationSpec; + } + + + + + public EntitySpecificationRelationship _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntitySpecificationRelationship entitySpecificationRelationship = (EntitySpecificationRelationship) o; + return Objects.equals(this.id, entitySpecificationRelationship.id) + && Objects.equals(this.href, entitySpecificationRelationship.href) + && Objects.equals(this.name, entitySpecificationRelationship.name) + && Objects.equals(this.relationshipType, entitySpecificationRelationship.relationshipType) + && Objects.equals(this.role, entitySpecificationRelationship.role) + && Objects.equals(this.associationSpec, entitySpecificationRelationship.associationSpec) + && Objects.equals(this.validFor, entitySpecificationRelationship.validFor) + && Objects.equals(this.baseType, entitySpecificationRelationship.baseType) + && Objects.equals(this.schemaLocation, entitySpecificationRelationship.schemaLocation) + && Objects.equals(this.type, entitySpecificationRelationship.type) + && Objects.equals(this._atReferredType, entitySpecificationRelationship._atReferredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, relationshipType, role, associationSpec, validFor, baseType, +// schemaLocation, type, _atReferredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntitySpecificationRelationship {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" associationSpec: ").append(toIndentedString(associationSpec)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/Error.java b/src/main/java/org/etsi/osl/tmf/stm653/model/Error.java new file mode 100644 index 0000000..73d56a5 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/Error.java @@ -0,0 +1,268 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx) + */ +@Schema(description = "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class Error { + @JsonProperty("code") + private String code = null; + + @JsonProperty("reason") + private String reason = null; + + @JsonProperty("message") + private String message = null; + + @JsonProperty("status") + private String status = null; + + @JsonProperty("referenceError") + private String referenceError = null; + + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Error code(String code) { + this.code = code; + return this; + } + + /** + * Application relevant detail, defined in the API or a common list. + * @return code + **/ + @Schema(description = "Application relevant detail, defined in the API or a common list.") + @NotNull + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public Error reason(String reason) { + this.reason = reason; + return this; + } + + /** + * Explanation of the reason for the error which can be shown to a client user. + * @return reason + **/ + @Schema(description = "Explanation of the reason for the error which can be shown to a client user.") + @NotNull + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public Error message(String message) { + this.message = message; + return this; + } + + /** + * More details and corrective actions related to the error which can be shown to a client user. + * @return message + **/ + @Schema(description = "More details and corrective actions related to the error which can be shown to a client user.") + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Error status(String status) { + this.status = status; + return this; + } + + /** + * HTTP Error code extension + * @return status + **/ + @Schema(description = "HTTP Error code extension") + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Error referenceError(String referenceError) { + this.referenceError = referenceError; + return this; + } + + /** + * URI of documentation describing the error. + * @return referenceError + **/ + @Schema(description = "URI of documentation describing the error.") + + public String getReferenceError() { + return referenceError; + } + + public void setReferenceError(String referenceError) { + this.referenceError = referenceError; + } + + public Error baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class. + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class.") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public Error schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Error type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class entity name. + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class entity name.") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Error error = (Error) o; + return Objects.equals(this.code, error.code) && + Objects.equals(this.reason, error.reason) && + Objects.equals(this.message, error.message) && + Objects.equals(this.status, error.status) && + Objects.equals(this.referenceError, error.referenceError) && + Objects.equals(this.baseType, error.baseType) && + Objects.equals(this.schemaLocation, error.schemaLocation) && + Objects.equals(this.type, error.type); + } + + @Override + public int hashCode() { + return Objects.hash(code, reason, message, status, referenceError, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Error {\n"); + + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" referenceError: ").append(toIndentedString(referenceError)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/EventSubscription.java b/src/main/java/org/etsi/osl/tmf/stm653/model/EventSubscription.java new file mode 100644 index 0000000..fcf954f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/EventSubscription.java @@ -0,0 +1,148 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class EventSubscription { + @JsonProperty("id") + private String id = null; + + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscription id(String id) { + this.id = id; + return this; + } + + /** + * Id of the listener + * @return id + **/ + @Schema(description = "Id of the listener") + @NotNull + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EventSubscription callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscription query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscription eventSubscription = (EventSubscription) o; + return Objects.equals(this.id, eventSubscription.id) && + Objects.equals(this.callback, eventSubscription.callback) && + Objects.equals(this.query, eventSubscription.query); + } + + @Override + public int hashCode() { + return Objects.hash(id, callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscription {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/EventSubscriptionInput.java b/src/main/java/org/etsi/osl/tmf/stm653/model/EventSubscriptionInput.java new file mode 100644 index 0000000..06f788e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/EventSubscriptionInput.java @@ -0,0 +1,123 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +/** + * Sets the communication endpoint address the service instance must use to deliver notification information + */ +@Schema(description = "Sets the communication endpoint address the service instance must use to deliver notification information") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class EventSubscriptionInput { + @JsonProperty("callback") + private String callback = null; + + @JsonProperty("query") + private String query = null; + + public EventSubscriptionInput callback(String callback) { + this.callback = callback; + return this; + } + + /** + * The callback being registered. + * @return callback + **/ + @Schema(description = "The callback being registered.") + @NotNull + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public EventSubscriptionInput query(String query) { + this.query = query; + return this; + } + + /** + * additional data to be passed + * @return query + **/ + @Schema(description = "additional data to be passed") + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSubscriptionInput eventSubscriptionInput = (EventSubscriptionInput) o; + return Objects.equals(this.callback, eventSubscriptionInput.callback) && + Objects.equals(this.query, eventSubscriptionInput.query); + } + + @Override + public int hashCode() { + return Objects.hash(callback, query); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventSubscriptionInput {\n"); + + sb.append(" callback: ").append(toIndentedString(callback)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/Extensible.java b/src/main/java/org/etsi/osl/tmf/stm653/model/Extensible.java new file mode 100644 index 0000000..9e4d5ed --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/Extensible.java @@ -0,0 +1,145 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Base Extensible schema for use in TMForum Open-APIs + */ +@Schema(description = "Base Extensible schema for use in TMForum Open-APIs") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class Extensible { + @JsonProperty("@baseType") + private String baseType = null; + + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public Extensible baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public Extensible schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and relationships + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public Extensible type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class Extensible name + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class Extensible name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Extensible extensible = (Extensible) o; + return Objects.equals(this.baseType, extensible.baseType) && + Objects.equals(this.schemaLocation, extensible.schemaLocation) && + Objects.equals(this.type, extensible.type); + } + + @Override + public int hashCode() { + return Objects.hash(baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Extensible {\n"); + + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/MeasureThresholdRuleViolation.java b/src/main/java/org/etsi/osl/tmf/stm653/model/MeasureThresholdRuleViolation.java new file mode 100644 index 0000000..b74c02c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/MeasureThresholdRuleViolation.java @@ -0,0 +1,396 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Lob; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * A measureThresholdRuleViolation is a violation of a rule that defines the in + * the MericDefMeasureThresholdRule. + */ +@Schema(description = "A measureThresholdRuleViolation is a violation of a rule that defines the in the MericDefMeasureThresholdRule.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Entity(name = "STMMeasureThresholdRuleViolation") +@Table(name = "STMMeasureThresholdRuleViolation") +public class MeasureThresholdRuleViolation extends BaseRootNamedEntity { + + @JsonProperty("conformanceComparatorLower") + private String conformanceComparatorLower = null; + + @JsonProperty("conformanceComparatorUpper") + private String conformanceComparatorUpper = null; + + @JsonProperty("conformanceTargetExact") + private String conformanceTargetExact = null; + + @JsonProperty("conformanceTargetLower") + private String conformanceTargetLower = null; + + @JsonProperty("conformanceTargetUpper") + private String conformanceTargetUpper = null; + + @Lob + @Column(name = "LDESCRIPTION", columnDefinition = "LONGTEXT") + @JsonProperty("description") + private String description = null; + + @JsonProperty("numberOfAllowedCrossing") + private Integer numberOfAllowedCrossing = null; + + @JsonProperty("thresholdRuleSeverity") + private String thresholdRuleSeverity = null; + + @JsonProperty("appliedConsequence") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set appliedConsequence = new HashSet<>(); + + @JsonProperty("tolerancePeriod") + private Duration tolerancePeriod = null; + + public MeasureThresholdRuleViolation conformanceComparatorLower(String conformanceComparatorLower) { + this.conformanceComparatorLower = conformanceComparatorLower; + return this; + } + + /** + * An operator that when applied on a value specifies whether a threshold is + * crossed or ceased to be crossed. This operator is used to compare with the + * conformanceTargetLower. + * + * @return conformanceComparatorLower + **/ + @Schema(description = "An operator that when applied on a value specifies whether a threshold is crossed or ceased to be crossed. This operator is used to compare with the conformanceTargetLower.") + + public String getConformanceComparatorLower() { + return conformanceComparatorLower; + } + + public void setConformanceComparatorLower(String conformanceComparatorLower) { + this.conformanceComparatorLower = conformanceComparatorLower; + } + + public MeasureThresholdRuleViolation conformanceComparatorUpper(String conformanceComparatorUpper) { + this.conformanceComparatorUpper = conformanceComparatorUpper; + return this; + } + + /** + * An operator that when applied on a value specifies whether a threshold is + * crossed or ceased to be crossed. This operator is used to compare with the + * conformanceTargetUpper. + * + * @return conformanceComparatorUpper + **/ + @Schema(description = "An operator that when applied on a value specifies whether a threshold is crossed or ceased to be crossed. This operator is used to compare with the conformanceTargetUpper.") + + public String getConformanceComparatorUpper() { + return conformanceComparatorUpper; + } + + public void setConformanceComparatorUpper(String conformanceComparatorUpper) { + this.conformanceComparatorUpper = conformanceComparatorUpper; + } + + public MeasureThresholdRuleViolation conformanceTargetExact(String conformanceTargetExact) { + this.conformanceTargetExact = conformanceTargetExact; + return this; + } + + /** + * to cater for values that are not numerical test metrics (e.g. a DSL line can + * be Synchronised or Unsynchronised. If the latter, the test should result in a + * rule violation).The allowed value can contain a REGEX string. + * + * @return conformanceTargetExact + **/ + @Schema(description = "to cater for values that are not numerical test metrics (e.g. a DSL line can be Synchronised or Unsynchronised. If the latter, the test should result in a rule violation).The allowed value can contain a REGEX string.") + + public String getConformanceTargetExact() { + return conformanceTargetExact; + } + + public void setConformanceTargetExact(String conformanceTargetExact) { + this.conformanceTargetExact = conformanceTargetExact; + } + + public MeasureThresholdRuleViolation conformanceTargetLower(String conformanceTargetLower) { + this.conformanceTargetLower = conformanceTargetLower; + return this; + } + + /** + * A value used to determine if the threshold is crossed or ceases to be + * crossed. It represents the lower limit. The value should be less than the + * conformanceTargetUpper. The conformance comparators should also be logically + * defined so as to not lead to a logically impossible condition. + * + * @return conformanceTargetLower + **/ + @Schema(description = "A value used to determine if the threshold is crossed or ceases to be crossed. It represents the lower limit. The value should be less than the conformanceTargetUpper. The conformance comparators should also be logically defined so as to not lead to a logically impossible condition.") + + public String getConformanceTargetLower() { + return conformanceTargetLower; + } + + public void setConformanceTargetLower(String conformanceTargetLower) { + this.conformanceTargetLower = conformanceTargetLower; + } + + public MeasureThresholdRuleViolation conformanceTargetUpper(String conformanceTargetUpper) { + this.conformanceTargetUpper = conformanceTargetUpper; + return this; + } + + /** + * A value used to determine if the threshold is crossed or ceases to be + * crossed. It represents the Upper limit. The value should be greater than the + * conformanceTargetLower. The conformance comparators should also be logically + * defined so as to not lead to a logically impossible condition. + * + * @return conformanceTargetUpper + **/ + @Schema(description = "A value used to determine if the threshold is crossed or ceases to be crossed. It represents the Upper limit. The value should be greater than the conformanceTargetLower. The conformance comparators should also be logically defined so as to not lead to a logically impossible condition.") + + public String getConformanceTargetUpper() { + return conformanceTargetUpper; + } + + public void setConformanceTargetUpper(String conformanceTargetUpper) { + this.conformanceTargetUpper = conformanceTargetUpper; + } + + public MeasureThresholdRuleViolation description(String description) { + this.description = description; + return this; + } + + /** + * Description for the MetricDefMeasureThresholdRule . + * + * @return description + **/ + @Schema(description = "Description for the MetricDefMeasureThresholdRule .") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public MeasureThresholdRuleViolation name(String name) { + this.name = name; + return this; + } + + /** + * Name for the MetricDefMeasureThresholdRule . + * + * @return name + **/ + @Schema(description = "Name for the MetricDefMeasureThresholdRule .") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public MeasureThresholdRuleViolation numberOfAllowedCrossing(Integer numberOfAllowedCrossing) { + this.numberOfAllowedCrossing = numberOfAllowedCrossing; + return this; + } + + /** + * The number of allowed crossing occurrences in reference to the + * tolerancePeriod without a consequence being initiated. + * + * @return numberOfAllowedCrossing + **/ + @Schema(description = "The number of allowed crossing occurrences in reference to the tolerancePeriod without a consequence being initiated.") + + public Integer getNumberOfAllowedCrossing() { + return numberOfAllowedCrossing; + } + + public void setNumberOfAllowedCrossing(Integer numberOfAllowedCrossing) { + this.numberOfAllowedCrossing = numberOfAllowedCrossing; + } + + public MeasureThresholdRuleViolation thresholdRuleSeverity(String thresholdRuleSeverity) { + this.thresholdRuleSeverity = thresholdRuleSeverity; + return this; + } + + /** + * A threshold can be generated in different severity levels. A crossing for + * each level may require a different condition and possibly trigger a different + * consequence. + * + * @return thresholdRuleSeverity + **/ + @Schema(description = "A threshold can be generated in different severity levels. A crossing for each level may require a different condition and possibly trigger a different consequence.") + + public String getThresholdRuleSeverity() { + return thresholdRuleSeverity; + } + + public void setThresholdRuleSeverity(String thresholdRuleSeverity) { + this.thresholdRuleSeverity = thresholdRuleSeverity; + } + + public MeasureThresholdRuleViolation appliedConsequence( Set appliedConsequence) { + this.appliedConsequence = appliedConsequence; + return this; + } + + public MeasureThresholdRuleViolation addAppliedConsequenceItem(AppliedConsequence appliedConsequenceItem) { + if (this.appliedConsequence == null) { + this.appliedConsequence = new HashSet<>(); + } + this.appliedConsequence.add(appliedConsequenceItem); + return this; + } + + /** + * An Applied Consequence defines the action (prescribed action or notification) + * to take when a MeasureThresholdRuleViolation occurs. + * + * @return appliedConsequence + **/ + @Schema(description = "An Applied Consequence defines the action (prescribed action or notification) to take when a MeasureThresholdRuleViolation occurs.") + @Valid + public Set getAppliedConsequence() { + return appliedConsequence; + } + + public void setAppliedConsequence(Set appliedConsequence) { + this.appliedConsequence = appliedConsequence; + } + + public MeasureThresholdRuleViolation tolerancePeriod(Duration tolerancePeriod) { + this.tolerancePeriod = tolerancePeriod; + return this; + } + + /** + * Get tolerancePeriod + * + * @return tolerancePeriod + **/ + @Schema(description = "") + + @Valid + public Duration getTolerancePeriod() { + return tolerancePeriod; + } + + public void setTolerancePeriod(Duration tolerancePeriod) { + this.tolerancePeriod = tolerancePeriod; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MeasureThresholdRuleViolation measureThresholdRuleViolation = (MeasureThresholdRuleViolation) o; + return Objects.equals(this.conformanceComparatorLower, measureThresholdRuleViolation.conformanceComparatorLower) + && Objects.equals(this.conformanceComparatorUpper, + measureThresholdRuleViolation.conformanceComparatorUpper) + && Objects.equals(this.conformanceTargetExact, measureThresholdRuleViolation.conformanceTargetExact) + && Objects.equals(this.conformanceTargetLower, measureThresholdRuleViolation.conformanceTargetLower) + && Objects.equals(this.conformanceTargetUpper, measureThresholdRuleViolation.conformanceTargetUpper) + && Objects.equals(this.description, measureThresholdRuleViolation.description) + && Objects.equals(this.name, measureThresholdRuleViolation.name) + && Objects.equals(this.numberOfAllowedCrossing, measureThresholdRuleViolation.numberOfAllowedCrossing) + && Objects.equals(this.thresholdRuleSeverity, measureThresholdRuleViolation.thresholdRuleSeverity) + && Objects.equals(this.appliedConsequence, measureThresholdRuleViolation.appliedConsequence) + && Objects.equals(this.tolerancePeriod, measureThresholdRuleViolation.tolerancePeriod) + && Objects.equals(this.baseType, measureThresholdRuleViolation.baseType) + && Objects.equals(this.schemaLocation, measureThresholdRuleViolation.schemaLocation) + && Objects.equals(this.type, measureThresholdRuleViolation.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(conformanceComparatorLower, conformanceComparatorUpper, conformanceTargetExact, +// conformanceTargetLower, conformanceTargetUpper, description, name, numberOfAllowedCrossing, +// thresholdRuleSeverity, appliedConsequence, tolerancePeriod, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MeasureThresholdRuleViolation {\n"); + + sb.append(" conformanceComparatorLower: ").append(toIndentedString(conformanceComparatorLower)).append("\n"); + sb.append(" conformanceComparatorUpper: ").append(toIndentedString(conformanceComparatorUpper)).append("\n"); + sb.append(" conformanceTargetExact: ").append(toIndentedString(conformanceTargetExact)).append("\n"); + sb.append(" conformanceTargetLower: ").append(toIndentedString(conformanceTargetLower)).append("\n"); + sb.append(" conformanceTargetUpper: ").append(toIndentedString(conformanceTargetUpper)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" numberOfAllowedCrossing: ").append(toIndentedString(numberOfAllowedCrossing)).append("\n"); + sb.append(" thresholdRuleSeverity: ").append(toIndentedString(thresholdRuleSeverity)).append("\n"); + sb.append(" appliedConsequence: ").append(toIndentedString(appliedConsequence)).append("\n"); + sb.append(" tolerancePeriod: ").append(toIndentedString(tolerancePeriod)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/MetricDefMeasureConsequence.java b/src/main/java/org/etsi/osl/tmf/stm653/model/MetricDefMeasureConsequence.java new file mode 100644 index 0000000..8a316de --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/MetricDefMeasureConsequence.java @@ -0,0 +1,207 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * A MetricDefMeasureConsequence defines the action (prescribed action or notification) to take when a MetricDefMeasureThresholdRule is crossed. + */ +@Schema(description = "A MetricDefMeasureConsequence defines the action (prescribed action or notification) to take when a MetricDefMeasureThresholdRule is crossed.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") + +@Entity(name = "STMMetricDefMeasrConseq") +@Table(name = "STMMetricDefMeasrConseq") +public class MetricDefMeasureConsequence extends BaseRootNamedEntity { + @JsonProperty("description") + private String description = null; + + + @JsonProperty("prescribeAction") + private String prescribeAction = null; + + @JsonProperty("repeatAction") + private Boolean repeatAction = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + + + public MetricDefMeasureConsequence description(String description) { + this.description = description; + return this; + } + + /** + * A narrative that explains in detail what the consequence is. + * @return description + **/ + @Schema(description = "A narrative that explains in detail what the consequence is.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public MetricDefMeasureConsequence name(String name) { + this.name = name; + return this; + } + + /** + * A word, term, or phrase by which a MetricDefMeasureConsequence is known and distinguished from other MetricDefMeasureConsequences. + * @return name + **/ + @Schema(description = "A word, term, or phrase by which a MetricDefMeasureConsequence is known and distinguished from other MetricDefMeasureConsequences.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public MetricDefMeasureConsequence prescribeAction(String prescribeAction) { + this.prescribeAction = prescribeAction; + return this; + } + + /** + * Recommended remedy for a violated threshold. This could be the hyperlink to the action. + * @return prescribeAction + **/ + @Schema(description = "Recommended remedy for a violated threshold. This could be the hyperlink to the action.") + + public String getPrescribeAction() { + return prescribeAction; + } + + public void setPrescribeAction(String prescribeAction) { + this.prescribeAction = prescribeAction; + } + + public MetricDefMeasureConsequence repeatAction(Boolean repeatAction) { + this.repeatAction = repeatAction; + return this; + } + + /** + * An indicator used to specify that a consequence should cease being applied if a value is in the same range as the previous value or continue being applied if a value is in the same range as the previous value. If the repeatAction is True, if the consequence is always applied as soon as the MetricMeasure value is in the range of values and if the repeatAction is False, the consequence is applied only if the previous MetricMeasure value was not in the same range. + * @return repeatAction + **/ + @Schema(description = "An indicator used to specify that a consequence should cease being applied if a value is in the same range as the previous value or continue being applied if a value is in the same range as the previous value. If the repeatAction is True, if the consequence is always applied as soon as the MetricMeasure value is in the range of values and if the repeatAction is False, the consequence is applied only if the previous MetricMeasure value was not in the same range.") + + public Boolean isRepeatAction() { + return repeatAction; + } + + public void setRepeatAction(Boolean repeatAction) { + this.repeatAction = repeatAction; + } + + public MetricDefMeasureConsequence validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetricDefMeasureConsequence metricDefMeasureConsequence = (MetricDefMeasureConsequence) o; + return Objects.equals(this.description, metricDefMeasureConsequence.description) && + Objects.equals(this.name, metricDefMeasureConsequence.name) && + Objects.equals(this.prescribeAction, metricDefMeasureConsequence.prescribeAction) && + Objects.equals(this.repeatAction, metricDefMeasureConsequence.repeatAction) && + Objects.equals(this.validFor, metricDefMeasureConsequence.validFor) && + Objects.equals(this.baseType, metricDefMeasureConsequence.baseType) && + Objects.equals(this.schemaLocation, metricDefMeasureConsequence.schemaLocation) && + Objects.equals(this.type, metricDefMeasureConsequence.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(description, name, prescribeAction, repeatAction, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MetricDefMeasureConsequence {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" prescribeAction: ").append(toIndentedString(prescribeAction)).append("\n"); + sb.append(" repeatAction: ").append(toIndentedString(repeatAction)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/MetricDefMeasureThresholdRule.java b/src/main/java/org/etsi/osl/tmf/stm653/model/MetricDefMeasureThresholdRule.java new file mode 100644 index 0000000..a69ed29 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/MetricDefMeasureThresholdRule.java @@ -0,0 +1,363 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * A MetricDefMeasureThresholdRule is a rule that defines the condition (raise + * or clear) to achieve to apply consequences when a threshold is crossed or + * ceased to be crossed. It also defines the severity of the raise or clear of + * the threshold. + */ +@Schema(description = "A MetricDefMeasureThresholdRule is a rule that defines the condition (raise or clear) to achieve to apply consequences when a threshold is crossed or ceased to be crossed. It also defines the severity of the raise or clear of the threshold.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") + +@Entity(name = "STMMetrcDefMeasrThreshRule") +@Table(name = "STMMetrcDefMeasrThreshRule") +public class MetricDefMeasureThresholdRule extends BaseRootNamedEntity { + @JsonProperty("conformanceComparatorLower") + private String conformanceComparatorLower = null; + + @JsonProperty("conformanceComparatorUpper") + private String conformanceComparatorUpper = null; + + @JsonProperty("conformanceTargetLower") + private String conformanceTargetLower = null; + + @JsonProperty("conformanceTargetUpper") + private String conformanceTargetUpper = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("numberOfAllowedCrossing") + private Integer numberOfAllowedCrossing = null; + + @JsonProperty("thresholdRuleSeverity") + private String thresholdRuleSeverity = null; + + @JsonProperty("consequence") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set consequence = new HashSet<>(); + + @JsonProperty("tolerancePeriod") + private Duration tolerancePeriod = null; + + public MetricDefMeasureThresholdRule conformanceComparatorLower(String conformanceComparatorLower) { + this.conformanceComparatorLower = conformanceComparatorLower; + return this; + } + + /** + * An operator that when applied on a value specifies whether a threshold is + * crossed or ceased to be crossed. This operator is used to Service Test + * Management API REST Specification compare with the conformanceTargetLower. + * + * @return conformanceComparatorLower + **/ + @Schema(description = "An operator that when applied on a value specifies whether a threshold is crossed or ceased to be crossed. This operator is used to Service Test Management API REST Specification compare with the conformanceTargetLower.") + + public String getConformanceComparatorLower() { + return conformanceComparatorLower; + } + + public void setConformanceComparatorLower(String conformanceComparatorLower) { + this.conformanceComparatorLower = conformanceComparatorLower; + } + + public MetricDefMeasureThresholdRule conformanceComparatorUpper(String conformanceComparatorUpper) { + this.conformanceComparatorUpper = conformanceComparatorUpper; + return this; + } + + /** + * An operator that when applied on a value specifies whether a threshold is + * crossed or ceased to be crossed. This operator is used to compare with the + * conformanceTargetUpper. + * + * @return conformanceComparatorUpper + **/ + @Schema(description = "An operator that when applied on a value specifies whether a threshold is crossed or ceased to be crossed. This operator is used to compare with the conformanceTargetUpper.") + + public String getConformanceComparatorUpper() { + return conformanceComparatorUpper; + } + + public void setConformanceComparatorUpper(String conformanceComparatorUpper) { + this.conformanceComparatorUpper = conformanceComparatorUpper; + } + + public MetricDefMeasureThresholdRule conformanceTargetLower(String conformanceTargetLower) { + this.conformanceTargetLower = conformanceTargetLower; + return this; + } + + /** + * A value used to determine if the threshold is crossed or ceases to be + * crossed. It represents the lower limit. The value should be less than the + * conformanceTargetUpper. The conformance comparators should also be logically + * defined so as to not lead to a logically impossible condition. + * + * @return conformanceTargetLower + **/ + @Schema(description = "A value used to determine if the threshold is crossed or ceases to be crossed. It represents the lower limit. The value should be less than the conformanceTargetUpper. The conformance comparators should also be logically defined so as to not lead to a logically impossible condition.") + + public String getConformanceTargetLower() { + return conformanceTargetLower; + } + + public void setConformanceTargetLower(String conformanceTargetLower) { + this.conformanceTargetLower = conformanceTargetLower; + } + + public MetricDefMeasureThresholdRule conformanceTargetUpper(String conformanceTargetUpper) { + this.conformanceTargetUpper = conformanceTargetUpper; + return this; + } + + /** + * A value used to determine if the threshold is crossed or ceases to be + * crossed. It represents the Upper limit. The value should be greater than the + * conformanceTargetLower. The conformance comparators should also be logically + * defined so as to not lead to a logically impossible condition. + * + * @return conformanceTargetUpper + **/ + @Schema(description = "A value used to determine if the threshold is crossed or ceases to be crossed. It represents the Upper limit. The value should be greater than the conformanceTargetLower. The conformance comparators should also be logically defined so as to not lead to a logically impossible condition.") + + public String getConformanceTargetUpper() { + return conformanceTargetUpper; + } + + public void setConformanceTargetUpper(String conformanceTargetUpper) { + this.conformanceTargetUpper = conformanceTargetUpper; + } + + public MetricDefMeasureThresholdRule description(String description) { + this.description = description; + return this; + } + + /** + * Description for the MetricDefMeasureThresholdRule . + * + * @return description + **/ + @Schema(description = "Description for the MetricDefMeasureThresholdRule .") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public MetricDefMeasureThresholdRule name(String name) { + this.name = name; + return this; + } + + /** + * Name for the MetricDefMeasureThresholdRule . + * + * @return name + **/ + @Schema(description = "Name for the MetricDefMeasureThresholdRule .") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public MetricDefMeasureThresholdRule numberOfAllowedCrossing(Integer numberOfAllowedCrossing) { + this.numberOfAllowedCrossing = numberOfAllowedCrossing; + return this; + } + + /** + * The number of allowed crossing occurrences in reference to the + * tolerancePeriod without a consequence being initiated. + * + * @return numberOfAllowedCrossing + **/ + @Schema(description = "The number of allowed crossing occurrences in reference to the tolerancePeriod without a consequence being initiated.") + + public Integer getNumberOfAllowedCrossing() { + return numberOfAllowedCrossing; + } + + public void setNumberOfAllowedCrossing(Integer numberOfAllowedCrossing) { + this.numberOfAllowedCrossing = numberOfAllowedCrossing; + } + + public MetricDefMeasureThresholdRule thresholdRuleSeverity(String thresholdRuleSeverity) { + this.thresholdRuleSeverity = thresholdRuleSeverity; + return this; + } + + /** + * A threshold can be generated in different severity levels. A crossing for + * each level may require a different condition and possibly trigger a different + * consequence. + * + * @return thresholdRuleSeverity + **/ + @Schema(description = "A threshold can be generated in different severity levels. A crossing for each level may require a different condition and possibly trigger a different consequence.") + + public String getThresholdRuleSeverity() { + return thresholdRuleSeverity; + } + + public void setThresholdRuleSeverity(String thresholdRuleSeverity) { + this.thresholdRuleSeverity = thresholdRuleSeverity; + } + + public MetricDefMeasureThresholdRule consequence(Set consequence) { + this.consequence = consequence; + return this; + } + + public MetricDefMeasureThresholdRule addConsequenceItem(MetricDefMeasureConsequence consequenceItem) { + if (this.consequence == null) { + this.consequence = new HashSet<>(); + } + this.consequence.add(consequenceItem); + return this; + } + + /** + * A list of consequences (actions, notifications) that will arise if the + * threshold is crossed + * + * @return consequence + **/ + @Schema(description = "A list of consequences (actions, notifications) that will arise if the threshold is crossed") + @Valid + public Set getConsequence() { + return consequence; + } + + public void setConsequence(Set consequence) { + this.consequence = consequence; + } + + public MetricDefMeasureThresholdRule tolerancePeriod(Duration tolerancePeriod) { + this.tolerancePeriod = tolerancePeriod; + return this; + } + + /** + * Get tolerancePeriod + * + * @return tolerancePeriod + **/ + @Schema(description = "") + + @Valid + public Duration getTolerancePeriod() { + return tolerancePeriod; + } + + public void setTolerancePeriod(Duration tolerancePeriod) { + this.tolerancePeriod = tolerancePeriod; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetricDefMeasureThresholdRule metricDefMeasureThresholdRule = (MetricDefMeasureThresholdRule) o; + return Objects.equals(this.conformanceComparatorLower, metricDefMeasureThresholdRule.conformanceComparatorLower) + && Objects.equals(this.conformanceComparatorUpper, + metricDefMeasureThresholdRule.conformanceComparatorUpper) + && Objects.equals(this.conformanceTargetLower, metricDefMeasureThresholdRule.conformanceTargetLower) + && Objects.equals(this.conformanceTargetUpper, metricDefMeasureThresholdRule.conformanceTargetUpper) + && Objects.equals(this.description, metricDefMeasureThresholdRule.description) + && Objects.equals(this.name, metricDefMeasureThresholdRule.name) + && Objects.equals(this.numberOfAllowedCrossing, metricDefMeasureThresholdRule.numberOfAllowedCrossing) + && Objects.equals(this.thresholdRuleSeverity, metricDefMeasureThresholdRule.thresholdRuleSeverity) + && Objects.equals(this.consequence, metricDefMeasureThresholdRule.consequence) + && Objects.equals(this.tolerancePeriod, metricDefMeasureThresholdRule.tolerancePeriod) + && Objects.equals(this.baseType, metricDefMeasureThresholdRule.baseType) + && Objects.equals(this.schemaLocation, metricDefMeasureThresholdRule.schemaLocation) + && Objects.equals(this.type, metricDefMeasureThresholdRule.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(conformanceComparatorLower, conformanceComparatorUpper, conformanceTargetLower, conformanceTargetUpper, description, name, numberOfAllowedCrossing, thresholdRuleSeverity, consequence, tolerancePeriod, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MetricDefMeasureThresholdRule {\n"); + + sb.append(" conformanceComparatorLower: ").append(toIndentedString(conformanceComparatorLower)).append("\n"); + sb.append(" conformanceComparatorUpper: ").append(toIndentedString(conformanceComparatorUpper)).append("\n"); + sb.append(" conformanceTargetLower: ").append(toIndentedString(conformanceTargetLower)).append("\n"); + sb.append(" conformanceTargetUpper: ").append(toIndentedString(conformanceTargetUpper)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" numberOfAllowedCrossing: ").append(toIndentedString(numberOfAllowedCrossing)).append("\n"); + sb.append(" thresholdRuleSeverity: ").append(toIndentedString(thresholdRuleSeverity)).append("\n"); + sb.append(" consequence: ").append(toIndentedString(consequence)).append("\n"); + sb.append(" tolerancePeriod: ").append(toIndentedString(tolerancePeriod)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTest.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTest.java new file mode 100644 index 0000000..41ed3f7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTest.java @@ -0,0 +1,466 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.etsi.osl.tmf.common.model.service.ServiceRef; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + * A service test is an entity that exists for a controlled test invocation on a + * service. The service test is executed according to a schedule and contains + * service test configuration parameters that are to be applied at execution + * time, and service test measures that result. + */ +@Schema(description = "A service test is an entity that exists for a controlled test invocation on a service. The service test is executed according to a schedule and contains service test configuration parameters that are to be applied at execution time, and service test measures that result.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Entity(name = "STMServiceTest") +@Table(name = "STMServiceTest") +public class ServiceTest extends BaseEntity { + @JsonProperty("id") + private String id = null; + + @Column( name = "st_end_date_time" ) + private OffsetDateTime endDateTime = null; + + @JsonProperty("mode") + private String mode = null; + + @Column( name = "st_start_date_time" ) + private OffsetDateTime startDateTime = null; + + @JsonProperty("state") + private String state = null; + + @JsonProperty("characteristic") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set characteristic = new HashSet<>(); + + @JsonProperty("relatedParty") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set relatedParty = new HashSet<>(); + + @JsonProperty("relatedService") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private ServiceRef relatedService = null; + + @JsonProperty("testMeasure") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set testMeasure = new HashSet<>(); + + @JsonProperty("testSpecification") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private ServiceTestSpecificationRef testSpecification = null; + + /** + * @return the id + */ + public String getId() { + if (uuid != null) { + id = uuid; + } + return id; + } + + public ServiceTest href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink reference + * + * @return href + **/ + @Schema(description = "Hyperlink reference") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ServiceTest description(String description) { + this.description = description; + return this; + } + + /** + * Description of the service test + * + * @return description + **/ + @Schema(description = "Description of the service test") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceTest endDateTime(OffsetDateTime endDateTime) { + this.endDateTime = endDateTime; + return this; + } + + @JsonProperty("endDateTime") + public String getEndDateStr() { + if (this.endDateTime != null) { + return this.endDateTime.toString(); + } else { + return null; + } + } + + /** + * The end date and time of the service test + * + * @return endDateTime + **/ + @Schema(description = "The end date and time of the service test") + + @Valid + public OffsetDateTime getEndDateTime() { + return endDateTime; + } + + public void setEndDateTime(OffsetDateTime endDateTime) { + this.endDateTime = endDateTime; + } + + public ServiceTest mode(String mode) { + this.mode = mode; + return this; + } + + /** + * An indication of whether the service test is running in \"PROACTIVE\" or + * \"ONDEMAND\" mode + * + * @return mode + **/ + @Schema(description = "An indication of whether the service test is running in \"PROACTIVE\" or \"ONDEMAND\" mode") + + public String getMode() { + return mode; + } + + public void setMode(String mode) { + this.mode = mode; + } + + public ServiceTest name(String name) { + this.name = name; + return this; + } + + /** + * The name of the service test + * + * @return name + **/ + @Schema(description = "The name of the service test") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ServiceTest startDateTime(OffsetDateTime startDateTime) { + this.startDateTime = startDateTime; + return this; + } + + /** + * The start date and time of the service test. + * + * @return startDateTime + **/ + @Schema(description = "The start date and time of the service test.") + + @Valid + public OffsetDateTime getStartDateTime() { + return startDateTime; + } + + @JsonProperty("startDateTime") + public String getStartDateStr() { + if (this.startDateTime != null) { + return this.startDateTime.toString(); + } else { + return null; + } + } + + public void setStartDateTime(OffsetDateTime startDateTime) { + this.startDateTime = startDateTime; + } + + public ServiceTest state(String state) { + this.state = state; + return this; + } + + /** + * The actual state the service test is in + * + * @return state + **/ + @Schema(description = "The actual state the service test is in") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public ServiceTest characteristic(Set characteristic) { + this.characteristic = characteristic; + return this; + } + + public ServiceTest addCharacteristicItem(Characteristic characteristicItem) { + if (this.characteristic == null) { + this.characteristic = new HashSet<>(); + } + this.characteristic.add(characteristicItem); + return this; + } + + /** + * List of characteristics with values that define the test run + * + * @return characteristic + **/ + @Schema(description = "List of characteristics with values that define the test run") + @Valid + public Set getCharacteristic() { + return characteristic; + } + + public void setCharacteristic(Set characteristic) { + this.characteristic = characteristic; + } + + public ServiceTest relatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ServiceTest addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new HashSet<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Party related to the test + * + * @return relatedParty + **/ + @Schema(description = "Party related to the test") + @Valid + public Set getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(Set relatedParty) { + this.relatedParty = relatedParty; + } + + public ServiceTest relatedService(ServiceRef relatedService) { + this.relatedService = relatedService; + return this; + } + + /** + * Get relatedService + * + * @return relatedService + **/ + @Schema(description = "") + + @Valid + public ServiceRef getRelatedService() { + return relatedService; + } + + public void setRelatedService(ServiceRef relatedService) { + this.relatedService = relatedService; + } + + public ServiceTest testMeasure(Set testMeasure) { + this.testMeasure = testMeasure; + return this; + } + + public ServiceTest addTestMeasureItem(TestMeasure testMeasureItem) { + if (this.testMeasure == null) { + this.testMeasure = new HashSet<>(); + } + this.testMeasure.add(testMeasureItem); + return this; + } + + /** + * The results of the test in terms of the measured metrics + * + * @return testMeasure + **/ + @Schema(description = "The results of the test in terms of the measured metrics") + @Valid + public Set getTestMeasure() { + return testMeasure; + } + + public void setTestMeasure(Set testMeasure) { + this.testMeasure = testMeasure; + } + + public ServiceTest testSpecification(ServiceTestSpecificationRef testSpecification) { + this.testSpecification = testSpecification; + return this; + } + + /** + * Get testSpecification + * + * @return testSpecification + **/ + @Schema(description = "") + + @Valid + public ServiceTestSpecificationRef getTestSpecification() { + return testSpecification; + } + + public void setTestSpecification(ServiceTestSpecificationRef testSpecification) { + this.testSpecification = testSpecification; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTest serviceTest = (ServiceTest) o; + return Objects.equals(this.id, serviceTest.id) && Objects.equals(this.href, serviceTest.href) + && Objects.equals(this.description, serviceTest.description) + && Objects.equals(this.endDateTime, serviceTest.endDateTime) + && Objects.equals(this.mode, serviceTest.mode) && Objects.equals(this.name, serviceTest.name) + && Objects.equals(this.startDateTime, serviceTest.startDateTime) + && Objects.equals(this.state, serviceTest.state) + && Objects.equals(this.characteristic, serviceTest.characteristic) + && Objects.equals(this.relatedParty, serviceTest.relatedParty) + && Objects.equals(this.relatedService, serviceTest.relatedService) + && Objects.equals(this.testMeasure, serviceTest.testMeasure) + && Objects.equals(this.testSpecification, serviceTest.testSpecification) + && Objects.equals(this.validFor, serviceTest.validFor) + && Objects.equals(this.baseType, serviceTest.baseType) + && Objects.equals(this.schemaLocation, serviceTest.schemaLocation) + && Objects.equals(this.type, serviceTest.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, description, endDateTime, mode, name, startDateTime, state, characteristic, relatedParty, relatedService, testMeasure, testSpecification, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTest {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" endDateTime: ").append(toIndentedString(endDateTime)).append("\n"); + sb.append(" mode: ").append(toIndentedString(mode)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" startDateTime: ").append(toIndentedString(startDateTime)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" characteristic: ").append(toIndentedString(characteristic)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" relatedService: ").append(toIndentedString(relatedService)).append("\n"); + sb.append(" testMeasure: ").append(toIndentedString(testMeasure)).append("\n"); + sb.append(" testSpecification: ").append(toIndentedString(testSpecification)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public Characteristic getCharacteristicByName(@NotNull String name) { + for (Characteristic c : this.characteristic) { + if ( c.getName().equals(name)) { + return c; + } + } + return null; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestAttributeValueChangeEvent.java new file mode 100644 index 0000000..c2b60cc --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestAttributeValueChangeEvent.java @@ -0,0 +1,342 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class ServiceTestAttributeValueChangeEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("event") + private ServiceTestAttributeValueChangeEventPayload event = null; + + public ServiceTestAttributeValueChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceTestAttributeValueChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceTestAttributeValueChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceTestAttributeValueChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ServiceTestAttributeValueChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ServiceTestAttributeValueChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ServiceTestAttributeValueChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceTestAttributeValueChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ServiceTestAttributeValueChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ServiceTestAttributeValueChangeEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ServiceTestAttributeValueChangeEvent event(ServiceTestAttributeValueChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ServiceTestAttributeValueChangeEventPayload getEvent() { + return event; + } + + public void setEvent(ServiceTestAttributeValueChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestAttributeValueChangeEvent serviceTestAttributeValueChangeEvent = (ServiceTestAttributeValueChangeEvent) o; + return Objects.equals(this.eventId, serviceTestAttributeValueChangeEvent.eventId) && + Objects.equals(this.eventTime, serviceTestAttributeValueChangeEvent.eventTime) && + Objects.equals(this.eventType, serviceTestAttributeValueChangeEvent.eventType) && + Objects.equals(this.correlationId, serviceTestAttributeValueChangeEvent.correlationId) && + Objects.equals(this.domain, serviceTestAttributeValueChangeEvent.domain) && + Objects.equals(this.title, serviceTestAttributeValueChangeEvent.title) && + Objects.equals(this.description, serviceTestAttributeValueChangeEvent.description) && + Objects.equals(this.priority, serviceTestAttributeValueChangeEvent.priority) && + Objects.equals(this.timeOcurred, serviceTestAttributeValueChangeEvent.timeOcurred) && + Objects.equals(this.fieldPath, serviceTestAttributeValueChangeEvent.fieldPath) && + Objects.equals(this.event, serviceTestAttributeValueChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, fieldPath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestAttributeValueChangeEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestAttributeValueChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestAttributeValueChangeEventPayload.java new file mode 100644 index 0000000..e56a036 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestAttributeValueChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class ServiceTestAttributeValueChangeEventPayload { + @JsonProperty("serviceTest") + private ServiceTest serviceTest = null; + + public ServiceTestAttributeValueChangeEventPayload serviceTest(ServiceTest serviceTest) { + this.serviceTest = serviceTest; + return this; + } + + /** + * Get serviceTest + * @return serviceTest + **/ + @Schema(description = "") + + @Valid + public ServiceTest getServiceTest() { + return serviceTest; + } + + public void setServiceTest(ServiceTest serviceTest) { + this.serviceTest = serviceTest; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestAttributeValueChangeEventPayload serviceTestAttributeValueChangeEventPayload = (ServiceTestAttributeValueChangeEventPayload) o; + return Objects.equals(this.serviceTest, serviceTestAttributeValueChangeEventPayload.serviceTest); + } + + @Override + public int hashCode() { + return Objects.hash(serviceTest); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestAttributeValueChangeEventPayload {\n"); + + sb.append(" serviceTest: ").append(toIndentedString(serviceTest)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestCreate.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestCreate.java new file mode 100644 index 0000000..0fe990f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestCreate.java @@ -0,0 +1,103 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * A service test is an entity that exists for a controlled test invocation on a service. The service test is executed according to a schedule and contains service test configuration parameters that are to be applied at execution time, and service test measures that result. Skipped properties: id,href + */ +@Schema(description = "A service test is an entity that exists for a controlled test invocation on a service. The service test is executed according to a schedule and contains service test configuration parameters that are to be applied at execution time, and service test measures that result. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class ServiceTestCreate extends ServiceTestUpdate { + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestCreate serviceTestCreate = (ServiceTestCreate) o; + return Objects.equals(this.description, serviceTestCreate.description) && + Objects.equals(this.endDateTime, serviceTestCreate.endDateTime) && + Objects.equals(this.mode, serviceTestCreate.mode) && + Objects.equals(this.name, serviceTestCreate.name) && + Objects.equals(this.startDateTime, serviceTestCreate.startDateTime) && + Objects.equals(this.state, serviceTestCreate.state) && + Objects.equals(this.characteristic, serviceTestCreate.characteristic) && + Objects.equals(this.relatedParty, serviceTestCreate.relatedParty) && + Objects.equals(this.relatedService, serviceTestCreate.relatedService) && + Objects.equals(this.testMeasure, serviceTestCreate.testMeasure) && + Objects.equals(this.testSpecification, serviceTestCreate.testSpecification) && + Objects.equals(this.validFor, serviceTestCreate.validFor) && + Objects.equals(this.baseType, serviceTestCreate.baseType) && + Objects.equals(this.schemaLocation, serviceTestCreate.schemaLocation) && + Objects.equals(this.type, serviceTestCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, endDateTime, mode, name, startDateTime, state, characteristic, relatedParty, relatedService, testMeasure, testSpecification, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestCreate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" endDateTime: ").append(toIndentedString(endDateTime)).append("\n"); + sb.append(" mode: ").append(toIndentedString(mode)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" startDateTime: ").append(toIndentedString(startDateTime)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" characteristic: ").append(toIndentedString(characteristic)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" relatedService: ").append(toIndentedString(relatedService)).append("\n"); + sb.append(" testMeasure: ").append(toIndentedString(testMeasure)).append("\n"); + sb.append(" testSpecification: ").append(toIndentedString(testSpecification)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestCreateEvent.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestCreateEvent.java new file mode 100644 index 0000000..0fd510e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestCreateEvent.java @@ -0,0 +1,318 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class ServiceTestCreateEvent { + @JsonProperty("event") + private ServiceTestCreateEventPayload event = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + public ServiceTestCreateEvent event(ServiceTestCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ServiceTestCreateEventPayload getEvent() { + return event; + } + + public void setEvent(ServiceTestCreateEventPayload event) { + this.event = event; + } + + public ServiceTestCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceTestCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceTestCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceTestCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ServiceTestCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ServiceTestCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ServiceTestCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceTestCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ServiceTestCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestCreateEvent serviceTestCreateEvent = (ServiceTestCreateEvent) o; + return Objects.equals(this.event, serviceTestCreateEvent.event) && + Objects.equals(this.eventId, serviceTestCreateEvent.eventId) && + Objects.equals(this.eventTime, serviceTestCreateEvent.eventTime) && + Objects.equals(this.eventType, serviceTestCreateEvent.eventType) && + Objects.equals(this.correlationId, serviceTestCreateEvent.correlationId) && + Objects.equals(this.domain, serviceTestCreateEvent.domain) && + Objects.equals(this.title, serviceTestCreateEvent.title) && + Objects.equals(this.description, serviceTestCreateEvent.description) && + Objects.equals(this.priority, serviceTestCreateEvent.priority) && + Objects.equals(this.timeOcurred, serviceTestCreateEvent.timeOcurred); + } + + @Override + public int hashCode() { + return Objects.hash(event, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestCreateEvent {\n"); + + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestCreateEventPayload.java new file mode 100644 index 0000000..76265a9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestCreateEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class ServiceTestCreateEventPayload { + @JsonProperty("serviceTest") + private ServiceTest serviceTest = null; + + public ServiceTestCreateEventPayload serviceTest(ServiceTest serviceTest) { + this.serviceTest = serviceTest; + return this; + } + + /** + * Get serviceTest + * @return serviceTest + **/ + @Schema(description = "") + + @Valid + public ServiceTest getServiceTest() { + return serviceTest; + } + + public void setServiceTest(ServiceTest serviceTest) { + this.serviceTest = serviceTest; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestCreateEventPayload serviceTestCreateEventPayload = (ServiceTestCreateEventPayload) o; + return Objects.equals(this.serviceTest, serviceTestCreateEventPayload.serviceTest); + } + + @Override + public int hashCode() { + return Objects.hash(serviceTest); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestCreateEventPayload {\n"); + + sb.append(" serviceTest: ").append(toIndentedString(serviceTest)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestDeleteEvent.java new file mode 100644 index 0000000..c687051 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestDeleteEvent.java @@ -0,0 +1,318 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class ServiceTestDeleteEvent { + @JsonProperty("event") + private ServiceTestDeleteEventPayload event = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + public ServiceTestDeleteEvent event(ServiceTestDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ServiceTestDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(ServiceTestDeleteEventPayload event) { + this.event = event; + } + + public ServiceTestDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceTestDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceTestDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceTestDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ServiceTestDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ServiceTestDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ServiceTestDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceTestDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ServiceTestDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestDeleteEvent serviceTestDeleteEvent = (ServiceTestDeleteEvent) o; + return Objects.equals(this.event, serviceTestDeleteEvent.event) && + Objects.equals(this.eventId, serviceTestDeleteEvent.eventId) && + Objects.equals(this.eventTime, serviceTestDeleteEvent.eventTime) && + Objects.equals(this.eventType, serviceTestDeleteEvent.eventType) && + Objects.equals(this.correlationId, serviceTestDeleteEvent.correlationId) && + Objects.equals(this.domain, serviceTestDeleteEvent.domain) && + Objects.equals(this.title, serviceTestDeleteEvent.title) && + Objects.equals(this.description, serviceTestDeleteEvent.description) && + Objects.equals(this.priority, serviceTestDeleteEvent.priority) && + Objects.equals(this.timeOcurred, serviceTestDeleteEvent.timeOcurred); + } + + @Override + public int hashCode() { + return Objects.hash(event, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestDeleteEvent {\n"); + + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestDeleteEventPayload.java new file mode 100644 index 0000000..bcf2e15 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestDeleteEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class ServiceTestDeleteEventPayload { + @JsonProperty("serviceTest") + private ServiceTest serviceTest = null; + + public ServiceTestDeleteEventPayload serviceTest(ServiceTest serviceTest) { + this.serviceTest = serviceTest; + return this; + } + + /** + * Get serviceTest + * @return serviceTest + **/ + @Schema(description = "") + + @Valid + public ServiceTest getServiceTest() { + return serviceTest; + } + + public void setServiceTest(ServiceTest serviceTest) { + this.serviceTest = serviceTest; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestDeleteEventPayload serviceTestDeleteEventPayload = (ServiceTestDeleteEventPayload) o; + return Objects.equals(this.serviceTest, serviceTestDeleteEventPayload.serviceTest); + } + + @Override + public int hashCode() { + return Objects.hash(serviceTest); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestDeleteEventPayload {\n"); + + sb.append(" serviceTest: ").append(toIndentedString(serviceTest)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecRelationship.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecRelationship.java new file mode 100644 index 0000000..e69c3b3 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecRelationship.java @@ -0,0 +1,213 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; +import jakarta.validation.constraints.NotNull; + +/** + * A substitution, dependency or exclusivity relationship between/among service specifications. + */ +@Schema(description = "A substitution, dependency or exclusivity relationship between/among service specifications.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +@Entity(name = "STMServiceTestSpecRelationship") +@Table(name = "STMServiceTestSpecRelationship") +public class ServiceTestSpecRelationship extends BaseEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("relationshipType") + private String relationshipType = null; + + @JsonProperty("role") + private String role = null; + + + + @JsonProperty("@referredType") + private String _atReferredType = null; + + /** + * @return the id + */ + public String getId() { + id = uuid; + return uuid; + } + + public ServiceTestSpecRelationship href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink reference + * @return href + **/ + @Schema(description = "Hyperlink reference") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ServiceTestSpecRelationship name(String name) { + this.name = name; + return this; + } + + /** + * Name of the related entity. + * @return name + **/ + @Schema(description = "Name of the related entity.") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ServiceTestSpecRelationship relationshipType(String relationshipType) { + this.relationshipType = relationshipType; + return this; + } + + /** + * Type of relationship such as substitution, dependency, exclusivity + * @return relationshipType + **/ + @Schema(description = "Type of relationship such as substitution, dependency, exclusivity") + @NotNull + + public String getRelationshipType() { + return relationshipType; + } + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public ServiceTestSpecRelationship role(String role) { + this.role = role; + return this; + } + + /** + * The association role for this service test specification + * @return role + **/ + @Schema(description = "The association role for this service test specification") + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + + + + /** + * The actual type of the target instance when needed for disambiguation. + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestSpecRelationship serviceTestSpecRelationship = (ServiceTestSpecRelationship) o; + return Objects.equals(this.id, serviceTestSpecRelationship.id) && + Objects.equals(this.href, serviceTestSpecRelationship.href) && + Objects.equals(this.name, serviceTestSpecRelationship.name) && + Objects.equals(this.relationshipType, serviceTestSpecRelationship.relationshipType) && + Objects.equals(this.role, serviceTestSpecRelationship.role) && + Objects.equals(this.validFor, serviceTestSpecRelationship.validFor) && + Objects.equals(this.baseType, serviceTestSpecRelationship.baseType) && + Objects.equals(this.schemaLocation, serviceTestSpecRelationship.schemaLocation) && + Objects.equals(this.type, serviceTestSpecRelationship.type) && + Objects.equals(this._atReferredType, serviceTestSpecRelationship._atReferredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, name, relationshipType, role, validFor, baseType, schemaLocation, type, _atReferredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestSpecRelationship {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" relationshipType: ").append(toIndentedString(relationshipType)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecification.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecification.java new file mode 100644 index 0000000..9a665e7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecification.java @@ -0,0 +1,498 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.BaseEntity; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * The service test specification describes the service test in terms of + * parameters to be configured and measures to be taken. + */ +@Schema(description = "The service test specification describes the service test in terms of parameters to be configured and measures to be taken.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") + +@Entity(name = "STMServiceTestSpec") +@Table(name = "STMServiceTestSpec") +public class ServiceTestSpecification extends BaseEntity { + + @JsonProperty("id") + private String id = null; + + @JsonProperty("isBundle") + private Boolean isBundle = null; + + + @JsonProperty("version") + private String version = null; + + @JsonProperty("attachment") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set attachment = new HashSet<>(); + + @JsonProperty("constraint") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set constraint = new HashSet<>(); + + @JsonProperty("entitySpecRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set entitySpecRelationship = new HashSet<>(); + + @JsonProperty("relatedParty") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set relatedParty = new HashSet<>(); + + @JsonProperty("relatedServiceSpecification") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set relatedServiceSpecification = new HashSet<>(); + + @JsonProperty("serviceTestSpecRelationship") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set serviceTestSpecRelationship = new HashSet<>(); + + @JsonProperty("specCharacteristic") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set specCharacteristic = new HashSet<>(); + + @JsonProperty("targetEntitySchema") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private TargetEntitySchema targetEntitySchema = null; + + @JsonProperty("testMeasureDefinition") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set testMeasureDefinition = new HashSet<>(); + + + /** + * @return the id + */ + public String getId() { + if ( uuid != null ) { + id = uuid; + } + return id; + } + + + + public ServiceTestSpecification version(String version) { + this.version = version; + return this; + } + + /** + * Entity specification version + * + * @return version + **/ + @Schema(description = "Entity specification version") + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public ServiceTestSpecification attachment(Set attachment) { + this.attachment = attachment; + return this; + } + + public ServiceTestSpecification addAttachmentItem(AttachmentRefOrValue attachmentItem) { + if (this.attachment == null) { + this.attachment = new HashSet<>(); + } + this.attachment.add(attachmentItem); + return this; + } + + /** + * Attachments that may be of relevance to this specification, such as picture, + * document, media + * + * @return attachment + **/ + @Schema(description = "Attachments that may be of relevance to this specification, such as picture, document, media") + @Valid + public Set getAttachment() { + return attachment; + } + + public void setAttachment(Set attachment) { + this.attachment = attachment; + } + + public ServiceTestSpecification constraint(Set constraint) { + this.constraint = constraint; + return this; + } + + public ServiceTestSpecification addConstraintItem(ConstraintRef constraintItem) { + if (this.constraint == null) { + this.constraint = new HashSet<>(); + } + this.constraint.add(constraintItem); + return this; + } + + /** + * This is a list of constraint references applied to this specification + * + * @return constraint + **/ + @Schema(description = "This is a list of constraint references applied to this specification") + @Valid + public Set getConstraint() { + return constraint; + } + + public void setConstraint( Set constraint) { + this.constraint = constraint; + } + + public ServiceTestSpecification entitySpecRelationship( + Set entitySpecRelationship) { + this.entitySpecRelationship = entitySpecRelationship; + return this; + } + + public ServiceTestSpecification addEntitySpecRelationshipItem( + EntitySpecificationRelationship entitySpecRelationshipItem) { + if (this.entitySpecRelationship == null) { + this.entitySpecRelationship = new HashSet<>(); + } + this.entitySpecRelationship.add(entitySpecRelationshipItem); + return this; + } + + /** + * Relationship to another entity specification, might be dependency, + * substitution, etc. + * + * @return entitySpecRelationship + **/ + @Schema(description = "Relationship to another entity specification, might be dependency, substitution, etc.") + @Valid + public Set getEntitySpecRelationship() { + return entitySpecRelationship; + } + + public void setEntitySpecRelationship( Set entitySpecRelationship) { + this.entitySpecRelationship = entitySpecRelationship; + } + + public ServiceTestSpecification relatedParty( Set relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ServiceTestSpecification addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new HashSet<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Parties who manage or otherwise have an interest in this entity specification + * + * @return relatedParty + **/ + @Schema(description = "Parties who manage or otherwise have an interest in this entity specification") + @Valid + public Set getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty( Set relatedParty) { + this.relatedParty = relatedParty; + } + + + public ServiceTestSpecification isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * isBundle determines whether an EntitySpecification represents a single + * EntitySpecification (false), or a bundle of EntitySpecifications (true). + * + * @return isBundle + **/ + @Schema(description = "isBundle determines whether an EntitySpecification represents a single EntitySpecification (false), or a bundle of EntitySpecifications (true).") + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + public ServiceTestSpecification relatedServiceSpecification( + Set relatedServiceSpecification) { + this.relatedServiceSpecification = relatedServiceSpecification; + return this; + } + + public ServiceTestSpecification addRelatedServiceSpecificationItem( + ServiceSpecificationRef relatedServiceSpecificationItem) { + if (this.relatedServiceSpecification == null) { + this.relatedServiceSpecification = new HashSet<>(); + } + this.relatedServiceSpecification.add(relatedServiceSpecificationItem); + return this; + } + + /** + * The related service specification may relate to more than one service + * specification. + * + * @return relatedServiceSpecification + **/ + @Schema(description = "The related service specification may relate to more than one service specification.") + @Valid + public Set getRelatedServiceSpecification() { + return relatedServiceSpecification; + } + + public void setRelatedServiceSpecification( Set relatedServiceSpecification) { + this.relatedServiceSpecification = relatedServiceSpecification; + } + + public ServiceTestSpecification serviceTestSpecRelationship( + Set serviceTestSpecRelationship) { + this.serviceTestSpecRelationship = serviceTestSpecRelationship; + return this; + } + + public ServiceTestSpecification addServiceTestSpecRelationshipItem( + ServiceTestSpecRelationship serviceTestSpecRelationshipItem) { + if (this.serviceTestSpecRelationship == null) { + this.serviceTestSpecRelationship = new HashSet<>(); + } + this.serviceTestSpecRelationship.add(serviceTestSpecRelationshipItem); + return this; + } + + /** + * A list of service test specifications related to this specification e.g. + * dependency, substitution + * + * @return serviceTestSpecRelationship + **/ + @Schema(description = "A list of service test specifications related to this specification e.g. dependency, substitution") + @Valid + public Set getServiceTestSpecRelationship() { + return serviceTestSpecRelationship; + } + + public void setServiceTestSpecRelationship( Set serviceTestSpecRelationship) { + this.serviceTestSpecRelationship = serviceTestSpecRelationship; + } + + public ServiceTestSpecification specCharacteristic(Set specCharacteristic) { + this.specCharacteristic = specCharacteristic; + return this; + } + + public ServiceTestSpecification addSpecCharacteristicItem(CharacteristicSpecification specCharacteristicItem) { + if (this.specCharacteristic == null) { + this.specCharacteristic = new HashSet<>(); + } + this.specCharacteristic.add(specCharacteristicItem); + return this; + } + + /** + * List of characteristics that the entity can take + * + * @return specCharacteristic + **/ + @Schema(description = "List of characteristics that the entity can take") + @Valid + public Set getSpecCharacteristic() { + return specCharacteristic; + } + + public void setSpecCharacteristic(Set specCharacteristic) { + this.specCharacteristic = specCharacteristic; + } + + public ServiceTestSpecification targetEntitySchema(TargetEntitySchema targetEntitySchema) { + this.targetEntitySchema = targetEntitySchema; + return this; + } + + /** + * Get targetEntitySchema + * + * @return targetEntitySchema + **/ + @Schema(description = "") + + @Valid + public TargetEntitySchema getTargetEntitySchema() { + return targetEntitySchema; + } + + public void setTargetEntitySchema(TargetEntitySchema targetEntitySchema) { + this.targetEntitySchema = targetEntitySchema; + } + + public ServiceTestSpecification testMeasureDefinition(Set testMeasureDefinition) { + this.testMeasureDefinition = testMeasureDefinition; + return this; + } + + public ServiceTestSpecification addTestMeasureDefinitionItem(TestMeasureDefinition testMeasureDefinitionItem) { + if (this.testMeasureDefinition == null) { + this.testMeasureDefinition = new HashSet<>(); + } + this.testMeasureDefinition.add(testMeasureDefinitionItem); + return this; + } + + /** + * A list of definitions for the measurements for the test defined by this + * specification + * + * @return testMeasureDefinition + **/ + @Schema(description = "A list of definitions for the measurements for the test defined by this specification") + @Valid + public Set getTestMeasureDefinition() { + return testMeasureDefinition; + } + + public void setTestMeasureDefinition( Set testMeasureDefinition) { + this.testMeasureDefinition = testMeasureDefinition; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestSpecification serviceTestSpecification = (ServiceTestSpecification) o; + return Objects.equals(this.id, serviceTestSpecification.id) + && Objects.equals(this.href, serviceTestSpecification.href) + && Objects.equals(this.description, serviceTestSpecification.description) + && Objects.equals(this.isBundle, serviceTestSpecification.isBundle) + && Objects.equals(this.lastUpdate, serviceTestSpecification.lastUpdate) + && Objects.equals(this.lifecycleStatus, serviceTestSpecification.lifecycleStatus) + && Objects.equals(this.name, serviceTestSpecification.name) + && Objects.equals(this.version, serviceTestSpecification.version) + && Objects.equals(this.attachment, serviceTestSpecification.attachment) + && Objects.equals(this.constraint, serviceTestSpecification.constraint) + && Objects.equals(this.entitySpecRelationship, serviceTestSpecification.entitySpecRelationship) + && Objects.equals(this.relatedParty, serviceTestSpecification.relatedParty) + && Objects.equals(this.relatedServiceSpecification, + serviceTestSpecification.relatedServiceSpecification) + && Objects.equals(this.serviceTestSpecRelationship, + serviceTestSpecification.serviceTestSpecRelationship) + && Objects.equals(this.specCharacteristic, serviceTestSpecification.specCharacteristic) + && Objects.equals(this.targetEntitySchema, serviceTestSpecification.targetEntitySchema) + && Objects.equals(this.testMeasureDefinition, serviceTestSpecification.testMeasureDefinition) + && Objects.equals(this.validFor, serviceTestSpecification.validFor) + && Objects.equals(this.baseType, serviceTestSpecification.baseType) + && Objects.equals(this.schemaLocation, serviceTestSpecification.schemaLocation) + && Objects.equals(this.type, serviceTestSpecification.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, description, isBundle, lastUpdate, lifecycleStatus, name, version, attachment, constraint, entitySpecRelationship, relatedParty, relatedServiceSpecification, serviceTestSpecRelationship, specCharacteristic, targetEntitySchema, testMeasureDefinition, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestSpecification {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" constraint: ").append(toIndentedString(constraint)).append("\n"); + sb.append(" entitySpecRelationship: ").append(toIndentedString(entitySpecRelationship)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" relatedServiceSpecification: ").append(toIndentedString(relatedServiceSpecification)) + .append("\n"); + sb.append(" serviceTestSpecRelationship: ").append(toIndentedString(serviceTestSpecRelationship)) + .append("\n"); + sb.append(" specCharacteristic: ").append(toIndentedString(specCharacteristic)).append("\n"); + sb.append(" targetEntitySchema: ").append(toIndentedString(targetEntitySchema)).append("\n"); + sb.append(" testMeasureDefinition: ").append(toIndentedString(testMeasureDefinition)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationAttributeValueChangeEvent.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationAttributeValueChangeEvent.java new file mode 100644 index 0000000..6d43d33 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationAttributeValueChangeEvent.java @@ -0,0 +1,342 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class ServiceTestSpecificationAttributeValueChangeEvent { + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + @JsonProperty("fieldPath") + private String fieldPath = null; + + @JsonProperty("event") + private ServiceTestSpecificationAttributeValueChangeEventPayload event = null; + + public ServiceTestSpecificationAttributeValueChangeEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceTestSpecificationAttributeValueChangeEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceTestSpecificationAttributeValueChangeEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceTestSpecificationAttributeValueChangeEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ServiceTestSpecificationAttributeValueChangeEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ServiceTestSpecificationAttributeValueChangeEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ServiceTestSpecificationAttributeValueChangeEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceTestSpecificationAttributeValueChangeEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ServiceTestSpecificationAttributeValueChangeEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + public ServiceTestSpecificationAttributeValueChangeEvent fieldPath(String fieldPath) { + this.fieldPath = fieldPath; + return this; + } + + /** + * The path identifying the object field concerned by this notification. + * @return fieldPath + **/ + @Schema(description = "The path identifying the object field concerned by this notification.") + + public String getFieldPath() { + return fieldPath; + } + + public void setFieldPath(String fieldPath) { + this.fieldPath = fieldPath; + } + + public ServiceTestSpecificationAttributeValueChangeEvent event(ServiceTestSpecificationAttributeValueChangeEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ServiceTestSpecificationAttributeValueChangeEventPayload getEvent() { + return event; + } + + public void setEvent(ServiceTestSpecificationAttributeValueChangeEventPayload event) { + this.event = event; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestSpecificationAttributeValueChangeEvent serviceTestSpecificationAttributeValueChangeEvent = (ServiceTestSpecificationAttributeValueChangeEvent) o; + return Objects.equals(this.eventId, serviceTestSpecificationAttributeValueChangeEvent.eventId) && + Objects.equals(this.eventTime, serviceTestSpecificationAttributeValueChangeEvent.eventTime) && + Objects.equals(this.eventType, serviceTestSpecificationAttributeValueChangeEvent.eventType) && + Objects.equals(this.correlationId, serviceTestSpecificationAttributeValueChangeEvent.correlationId) && + Objects.equals(this.domain, serviceTestSpecificationAttributeValueChangeEvent.domain) && + Objects.equals(this.title, serviceTestSpecificationAttributeValueChangeEvent.title) && + Objects.equals(this.description, serviceTestSpecificationAttributeValueChangeEvent.description) && + Objects.equals(this.priority, serviceTestSpecificationAttributeValueChangeEvent.priority) && + Objects.equals(this.timeOcurred, serviceTestSpecificationAttributeValueChangeEvent.timeOcurred) && + Objects.equals(this.fieldPath, serviceTestSpecificationAttributeValueChangeEvent.fieldPath) && + Objects.equals(this.event, serviceTestSpecificationAttributeValueChangeEvent.event); + } + + @Override + public int hashCode() { + return Objects.hash(eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred, fieldPath, event); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestSpecificationAttributeValueChangeEvent {\n"); + + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append(" fieldPath: ").append(toIndentedString(fieldPath)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationAttributeValueChangeEventPayload.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationAttributeValueChangeEventPayload.java new file mode 100644 index 0000000..09a2fca --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationAttributeValueChangeEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class ServiceTestSpecificationAttributeValueChangeEventPayload { + @JsonProperty("serviceTestSpecification") + private ServiceTestSpecification serviceTestSpecification = null; + + public ServiceTestSpecificationAttributeValueChangeEventPayload serviceTestSpecification(ServiceTestSpecification serviceTestSpecification) { + this.serviceTestSpecification = serviceTestSpecification; + return this; + } + + /** + * Get serviceTestSpecification + * @return serviceTestSpecification + **/ + @Schema(description = "") + + @Valid + public ServiceTestSpecification getServiceTestSpecification() { + return serviceTestSpecification; + } + + public void setServiceTestSpecification(ServiceTestSpecification serviceTestSpecification) { + this.serviceTestSpecification = serviceTestSpecification; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestSpecificationAttributeValueChangeEventPayload serviceTestSpecificationAttributeValueChangeEventPayload = (ServiceTestSpecificationAttributeValueChangeEventPayload) o; + return Objects.equals(this.serviceTestSpecification, serviceTestSpecificationAttributeValueChangeEventPayload.serviceTestSpecification); + } + + @Override + public int hashCode() { + return Objects.hash(serviceTestSpecification); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestSpecificationAttributeValueChangeEventPayload {\n"); + + sb.append(" serviceTestSpecification: ").append(toIndentedString(serviceTestSpecification)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationCreate.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationCreate.java new file mode 100644 index 0000000..0e1eccc --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationCreate.java @@ -0,0 +1,138 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The service test specification describes the service test in terms of parameters to be configured and measures to be taken. Skipped properties: id,href + */ +@Schema(description = "The service test specification describes the service test in terms of parameters to be configured and measures to be taken. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class ServiceTestSpecificationCreate extends ServiceTestSpecificationUpdate { + + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + + public ServiceTestSpecificationCreate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestSpecificationCreate serviceTestSpecificationCreate = (ServiceTestSpecificationCreate) o; + return Objects.equals(this.description, serviceTestSpecificationCreate.description) && + Objects.equals(this.isBundle, serviceTestSpecificationCreate.isBundle) && + Objects.equals(this.lastUpdate, serviceTestSpecificationCreate.lastUpdate) && + Objects.equals(this.lifecycleStatus, serviceTestSpecificationCreate.lifecycleStatus) && + Objects.equals(this.name, serviceTestSpecificationCreate.name) && + Objects.equals(this.version, serviceTestSpecificationCreate.version) && + Objects.equals(this.attachment, serviceTestSpecificationCreate.attachment) && + Objects.equals(this.constraint, serviceTestSpecificationCreate.constraint) && + Objects.equals(this.entitySpecRelationship, serviceTestSpecificationCreate.entitySpecRelationship) && + Objects.equals(this.relatedParty, serviceTestSpecificationCreate.relatedParty) && + Objects.equals(this.relatedServiceSpecification, serviceTestSpecificationCreate.relatedServiceSpecification) && + Objects.equals(this.serviceTestSpecRelationship, serviceTestSpecificationCreate.serviceTestSpecRelationship) && + Objects.equals(this.specCharacteristic, serviceTestSpecificationCreate.specCharacteristic) && + Objects.equals(this.targetEntitySchema, serviceTestSpecificationCreate.targetEntitySchema) && + Objects.equals(this.testMeasureDefinition, serviceTestSpecificationCreate.testMeasureDefinition) && + Objects.equals(this.validFor, serviceTestSpecificationCreate.validFor) && + Objects.equals(this.baseType, serviceTestSpecificationCreate.baseType) && + Objects.equals(this.schemaLocation, serviceTestSpecificationCreate.schemaLocation) && + Objects.equals(this.type, serviceTestSpecificationCreate.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, isBundle, lastUpdate, lifecycleStatus, name, version, attachment, constraint, entitySpecRelationship, relatedParty, relatedServiceSpecification, serviceTestSpecRelationship, specCharacteristic, targetEntitySchema, testMeasureDefinition, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestSpecificationCreate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" constraint: ").append(toIndentedString(constraint)).append("\n"); + sb.append(" entitySpecRelationship: ").append(toIndentedString(entitySpecRelationship)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" relatedServiceSpecification: ").append(toIndentedString(relatedServiceSpecification)).append("\n"); + sb.append(" serviceTestSpecRelationship: ").append(toIndentedString(serviceTestSpecRelationship)).append("\n"); + sb.append(" specCharacteristic: ").append(toIndentedString(specCharacteristic)).append("\n"); + sb.append(" targetEntitySchema: ").append(toIndentedString(targetEntitySchema)).append("\n"); + sb.append(" testMeasureDefinition: ").append(toIndentedString(testMeasureDefinition)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationCreateEvent.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationCreateEvent.java new file mode 100644 index 0000000..e76bd2c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationCreateEvent.java @@ -0,0 +1,318 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class ServiceTestSpecificationCreateEvent { + @JsonProperty("event") + private ServiceTestSpecificationCreateEventPayload event = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + public ServiceTestSpecificationCreateEvent event(ServiceTestSpecificationCreateEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ServiceTestSpecificationCreateEventPayload getEvent() { + return event; + } + + public void setEvent(ServiceTestSpecificationCreateEventPayload event) { + this.event = event; + } + + public ServiceTestSpecificationCreateEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceTestSpecificationCreateEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceTestSpecificationCreateEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceTestSpecificationCreateEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ServiceTestSpecificationCreateEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ServiceTestSpecificationCreateEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ServiceTestSpecificationCreateEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceTestSpecificationCreateEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ServiceTestSpecificationCreateEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestSpecificationCreateEvent serviceTestSpecificationCreateEvent = (ServiceTestSpecificationCreateEvent) o; + return Objects.equals(this.event, serviceTestSpecificationCreateEvent.event) && + Objects.equals(this.eventId, serviceTestSpecificationCreateEvent.eventId) && + Objects.equals(this.eventTime, serviceTestSpecificationCreateEvent.eventTime) && + Objects.equals(this.eventType, serviceTestSpecificationCreateEvent.eventType) && + Objects.equals(this.correlationId, serviceTestSpecificationCreateEvent.correlationId) && + Objects.equals(this.domain, serviceTestSpecificationCreateEvent.domain) && + Objects.equals(this.title, serviceTestSpecificationCreateEvent.title) && + Objects.equals(this.description, serviceTestSpecificationCreateEvent.description) && + Objects.equals(this.priority, serviceTestSpecificationCreateEvent.priority) && + Objects.equals(this.timeOcurred, serviceTestSpecificationCreateEvent.timeOcurred); + } + + @Override + public int hashCode() { + return Objects.hash(event, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestSpecificationCreateEvent {\n"); + + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationCreateEventPayload.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationCreateEventPayload.java new file mode 100644 index 0000000..1ad1ae9 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationCreateEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class ServiceTestSpecificationCreateEventPayload { + @JsonProperty("serviceTestSpecification") + private ServiceTestSpecification serviceTestSpecification = null; + + public ServiceTestSpecificationCreateEventPayload serviceTestSpecification(ServiceTestSpecification serviceTestSpecification) { + this.serviceTestSpecification = serviceTestSpecification; + return this; + } + + /** + * Get serviceTestSpecification + * @return serviceTestSpecification + **/ + @Schema(description = "") + + @Valid + public ServiceTestSpecification getServiceTestSpecification() { + return serviceTestSpecification; + } + + public void setServiceTestSpecification(ServiceTestSpecification serviceTestSpecification) { + this.serviceTestSpecification = serviceTestSpecification; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestSpecificationCreateEventPayload serviceTestSpecificationCreateEventPayload = (ServiceTestSpecificationCreateEventPayload) o; + return Objects.equals(this.serviceTestSpecification, serviceTestSpecificationCreateEventPayload.serviceTestSpecification); + } + + @Override + public int hashCode() { + return Objects.hash(serviceTestSpecification); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestSpecificationCreateEventPayload {\n"); + + sb.append(" serviceTestSpecification: ").append(toIndentedString(serviceTestSpecification)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationDeleteEvent.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationDeleteEvent.java new file mode 100644 index 0000000..b184761 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationDeleteEvent.java @@ -0,0 +1,318 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.time.OffsetDateTime; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The notification data structure + */ +@Schema(description = "The notification data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class ServiceTestSpecificationDeleteEvent { + @JsonProperty("event") + private ServiceTestSpecificationDeleteEventPayload event = null; + + @JsonProperty("eventId") + private String eventId = null; + + @JsonProperty("eventTime") + private OffsetDateTime eventTime = null; + + @JsonProperty("eventType") + private String eventType = null; + + @JsonProperty("correlationId") + private String correlationId = null; + + @JsonProperty("domain") + private String domain = null; + + @JsonProperty("title") + private String title = null; + + @JsonProperty("description") + private String description = null; + + @JsonProperty("priority") + private String priority = null; + + @JsonProperty("timeOcurred") + private OffsetDateTime timeOcurred = null; + + public ServiceTestSpecificationDeleteEvent event(ServiceTestSpecificationDeleteEventPayload event) { + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @Schema(description = "") + + @Valid + public ServiceTestSpecificationDeleteEventPayload getEvent() { + return event; + } + + public void setEvent(ServiceTestSpecificationDeleteEventPayload event) { + this.event = event; + } + + public ServiceTestSpecificationDeleteEvent eventId(String eventId) { + this.eventId = eventId; + return this; + } + + /** + * The identifier of the notification. + * @return eventId + **/ + @Schema(description = "The identifier of the notification.") + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public ServiceTestSpecificationDeleteEvent eventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + return this; + } + + /** + * Time of the event occurrence. + * @return eventTime + **/ + @Schema(description = "Time of the event occurrence.") + + @Valid + public OffsetDateTime getEventTime() { + return eventTime; + } + + public void setEventTime(OffsetDateTime eventTime) { + this.eventTime = eventTime; + } + + public ServiceTestSpecificationDeleteEvent eventType(String eventType) { + this.eventType = eventType; + return this; + } + + /** + * The type of the notification. + * @return eventType + **/ + @Schema(description = "The type of the notification.") + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public ServiceTestSpecificationDeleteEvent correlationId(String correlationId) { + this.correlationId = correlationId; + return this; + } + + /** + * The correlation id for this event. + * @return correlationId + **/ + @Schema(description = "The correlation id for this event.") + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public ServiceTestSpecificationDeleteEvent domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain of the event. + * @return domain + **/ + @Schema(description = "The domain of the event.") + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public ServiceTestSpecificationDeleteEvent title(String title) { + this.title = title; + return this; + } + + /** + * The title of the event. + * @return title + **/ + @Schema(description = "The title of the event.") + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public ServiceTestSpecificationDeleteEvent description(String description) { + this.description = description; + return this; + } + + /** + * An explnatory of the event. + * @return description + **/ + @Schema(description = "An explnatory of the event.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceTestSpecificationDeleteEvent priority(String priority) { + this.priority = priority; + return this; + } + + /** + * A priority. + * @return priority + **/ + @Schema(description = "A priority.") + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public ServiceTestSpecificationDeleteEvent timeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + return this; + } + + /** + * The time the event occured. + * @return timeOcurred + **/ + @Schema(description = "The time the event occured.") + + @Valid + public OffsetDateTime getTimeOcurred() { + return timeOcurred; + } + + public void setTimeOcurred(OffsetDateTime timeOcurred) { + this.timeOcurred = timeOcurred; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestSpecificationDeleteEvent serviceTestSpecificationDeleteEvent = (ServiceTestSpecificationDeleteEvent) o; + return Objects.equals(this.event, serviceTestSpecificationDeleteEvent.event) && + Objects.equals(this.eventId, serviceTestSpecificationDeleteEvent.eventId) && + Objects.equals(this.eventTime, serviceTestSpecificationDeleteEvent.eventTime) && + Objects.equals(this.eventType, serviceTestSpecificationDeleteEvent.eventType) && + Objects.equals(this.correlationId, serviceTestSpecificationDeleteEvent.correlationId) && + Objects.equals(this.domain, serviceTestSpecificationDeleteEvent.domain) && + Objects.equals(this.title, serviceTestSpecificationDeleteEvent.title) && + Objects.equals(this.description, serviceTestSpecificationDeleteEvent.description) && + Objects.equals(this.priority, serviceTestSpecificationDeleteEvent.priority) && + Objects.equals(this.timeOcurred, serviceTestSpecificationDeleteEvent.timeOcurred); + } + + @Override + public int hashCode() { + return Objects.hash(event, eventId, eventTime, eventType, correlationId, domain, title, description, priority, timeOcurred); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestSpecificationDeleteEvent {\n"); + + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append(" eventId: ").append(toIndentedString(eventId)).append("\n"); + sb.append(" eventTime: ").append(toIndentedString(eventTime)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" correlationId: ").append(toIndentedString(correlationId)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" timeOcurred: ").append(toIndentedString(timeOcurred)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationDeleteEventPayload.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationDeleteEventPayload.java new file mode 100644 index 0000000..c6bd5b0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationDeleteEventPayload.java @@ -0,0 +1,99 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.validation.annotation.Validated; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The event data structure + */ +@Schema(description = "The event data structure") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class ServiceTestSpecificationDeleteEventPayload { + @JsonProperty("serviceTestSpecification") + private ServiceTestSpecification serviceTestSpecification = null; + + public ServiceTestSpecificationDeleteEventPayload serviceTestSpecification(ServiceTestSpecification serviceTestSpecification) { + this.serviceTestSpecification = serviceTestSpecification; + return this; + } + + /** + * Get serviceTestSpecification + * @return serviceTestSpecification + **/ + @Schema(description = "") + + @Valid + public ServiceTestSpecification getServiceTestSpecification() { + return serviceTestSpecification; + } + + public void setServiceTestSpecification(ServiceTestSpecification serviceTestSpecification) { + this.serviceTestSpecification = serviceTestSpecification; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestSpecificationDeleteEventPayload serviceTestSpecificationDeleteEventPayload = (ServiceTestSpecificationDeleteEventPayload) o; + return Objects.equals(this.serviceTestSpecification, serviceTestSpecificationDeleteEventPayload.serviceTestSpecification); + } + + @Override + public int hashCode() { + return Objects.hash(serviceTestSpecification); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestSpecificationDeleteEventPayload {\n"); + + sb.append(" serviceTestSpecification: ").append(toIndentedString(serviceTestSpecification)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationRef.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationRef.java new file mode 100644 index 0000000..7f91da2 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationRef.java @@ -0,0 +1,176 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; + +/** + * The service test specification used by the service test. + */ +@Schema(description = "The service test specification used by the service test.") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") + +@Entity(name = "STMServiceTestSpecificationRef") +@Table(name = "STMServiceTestSpecificationRef") +public class ServiceTestSpecificationRef extends BaseRootEntity { + @JsonProperty("id") + private String id = null; + + @JsonProperty("version") + private String version = null; + + @JsonProperty("@referredType") + private String _atReferredType = null; + + + /** + * @return the id + */ + public String getId() { + return id; + } + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + public ServiceTestSpecificationRef href(String href) { + this.href = href; + return this; + } + + /** + * Hyperlink to access a service test specification. + * + * @return href + **/ + @Schema(description = "Hyperlink to access a service test specification.") + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href; + } + + public ServiceTestSpecificationRef version(String version) { + this.version = version; + return this; + } + + /** + * Version of a service test specification + * + * @return version + **/ + @Schema(description = "Version of a service test specification ") + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + + + public ServiceTestSpecificationRef _atReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + return this; + } + + /** + * The actual type of the target instance when needed for disambiguation. + * + * @return _atReferredType + **/ + @Schema(description = "The actual type of the target instance when needed for disambiguation.") + + public String getAtReferredType() { + return _atReferredType; + } + + public void setAtReferredType(String _atReferredType) { + this._atReferredType = _atReferredType; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestSpecificationRef serviceTestSpecificationRef = (ServiceTestSpecificationRef) o; + return Objects.equals(this.id, serviceTestSpecificationRef.id) + && Objects.equals(this.href, serviceTestSpecificationRef.href) + && Objects.equals(this.version, serviceTestSpecificationRef.version) + && Objects.equals(this.baseType, serviceTestSpecificationRef.baseType) + && Objects.equals(this.schemaLocation, serviceTestSpecificationRef.schemaLocation) + && Objects.equals(this.type, serviceTestSpecificationRef.type) + && Objects.equals(this._atReferredType, serviceTestSpecificationRef._atReferredType); + } + +// @Override +// public int hashCode() { +// return Objects.hash(id, href, version, baseType, schemaLocation, type, _atReferredType); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestSpecificationRef {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _atReferredType: ").append(toIndentedString(_atReferredType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationUpdate.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationUpdate.java new file mode 100644 index 0000000..e780bb8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestSpecificationUpdate.java @@ -0,0 +1,632 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * The service test specification describes the service test in terms of + * parameters to be configured and measures to be taken. Skipped properties: + * id,href,validFor + */ +@Schema(description = "The service test specification describes the service test in terms of parameters to be configured and measures to be taken. Skipped properties: id,href,validFor") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class ServiceTestSpecificationUpdate { + @JsonProperty("description") + protected String description = null; + + @JsonProperty("isBundle") + protected Boolean isBundle = null; + + protected OffsetDateTime lastUpdate = null; + + @JsonProperty("lifecycleStatus") + protected String lifecycleStatus = null; + + @JsonProperty("name") + protected String name = null; + + @JsonProperty("version") + protected String version = null; + + @JsonProperty("attachment") + @Valid + protected List attachment = null; + + @JsonProperty("constraint") + @Valid + protected List constraint = null; + + @JsonProperty("entitySpecRelationship") + @Valid + protected List entitySpecRelationship = null; + + @JsonProperty("relatedParty") + @Valid + protected List relatedParty = null; + + @JsonProperty("relatedServiceSpecification") + @Valid + protected List relatedServiceSpecification = null; + + @JsonProperty("serviceTestSpecRelationship") + @Valid + protected List serviceTestSpecRelationship = null; + + @JsonProperty("specCharacteristic") + @Valid + protected List specCharacteristic = null; + + @JsonProperty("targetEntitySchema") + protected TargetEntitySchema targetEntitySchema = null; + + @JsonProperty("testMeasureDefinition") + @Valid + protected List testMeasureDefinition = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@type") + protected String type = null; + + public ServiceTestSpecificationUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Description of a service test specification. + * + * @return description + **/ + @Schema(description = "Description of a service test specification.") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceTestSpecificationUpdate isBundle(Boolean isBundle) { + this.isBundle = isBundle; + return this; + } + + /** + * isBundle determines whether an EntitySpecification represents a single + * EntitySpecification (false), or a bundle of EntitySpecifications (true). + * + * @return isBundle + **/ + @Schema(description = "isBundle determines whether an EntitySpecification represents a single EntitySpecification (false), or a bundle of EntitySpecifications (true).") + + public Boolean isIsBundle() { + return isBundle; + } + + public void setIsBundle(Boolean isBundle) { + this.isBundle = isBundle; + } + + public ServiceTestSpecificationUpdate lastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + /** + * Date and time of the last update of this REST resource + * + * @return lastUpdate + **/ + @Schema(description = "Date and time of the last update of this REST resource") + + @Valid + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + @JsonProperty("lastUpdate") + public String getLastUpdateStr() { + if (this.lastUpdate != null) { + return this.lastUpdate.toString(); + } else { + return null; + } + } + + public ServiceTestSpecificationUpdate lifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + return this; + } + + /** + * Used to indicate the current lifecycle status of this catalog item + * + * @return lifecycleStatus + **/ + @Schema(description = "Used to indicate the current lifecycle status of this catalog item") + + public String getLifecycleStatus() { + return lifecycleStatus; + } + + public void setLifecycleStatus(String lifecycleStatus) { + this.lifecycleStatus = lifecycleStatus; + } + + public ServiceTestSpecificationUpdate name(String name) { + this.name = name; + return this; + } + + /** + * Name given to this REST resource + * + * @return name + **/ + @Schema(description = "Name given to this REST resource") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ServiceTestSpecificationUpdate version(String version) { + this.version = version; + return this; + } + + /** + * Entity specification version + * + * @return version + **/ + @Schema(description = "Entity specification version") + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public ServiceTestSpecificationUpdate attachment(List attachment) { + this.attachment = attachment; + return this; + } + + public ServiceTestSpecificationUpdate addAttachmentItem(AttachmentRefOrValue attachmentItem) { + if (this.attachment == null) { + this.attachment = new ArrayList<>(); + } + this.attachment.add(attachmentItem); + return this; + } + + /** + * Attachments that may be of relevance to this specification, such as picture, + * document, media + * + * @return attachment + **/ + @Schema(description = "Attachments that may be of relevance to this specification, such as picture, document, media") + @Valid + public List getAttachment() { + return attachment; + } + + public void setAttachment(List attachment) { + this.attachment = attachment; + } + + public ServiceTestSpecificationUpdate constraint(List constraint) { + this.constraint = constraint; + return this; + } + + public ServiceTestSpecificationUpdate addConstraintItem(ConstraintRef constraintItem) { + if (this.constraint == null) { + this.constraint = new ArrayList<>(); + } + this.constraint.add(constraintItem); + return this; + } + + /** + * This is a list of constraint references applied to this specification + * + * @return constraint + **/ + @Schema(description = "This is a list of constraint references applied to this specification") + @Valid + public List getConstraint() { + return constraint; + } + + public void setConstraint(List constraint) { + this.constraint = constraint; + } + + public ServiceTestSpecificationUpdate entitySpecRelationship( + List entitySpecRelationship) { + this.entitySpecRelationship = entitySpecRelationship; + return this; + } + + public ServiceTestSpecificationUpdate addEntitySpecRelationshipItem( + EntitySpecificationRelationship entitySpecRelationshipItem) { + if (this.entitySpecRelationship == null) { + this.entitySpecRelationship = new ArrayList<>(); + } + this.entitySpecRelationship.add(entitySpecRelationshipItem); + return this; + } + + /** + * Relationship to another entity specification, might be dependency, + * substitution, etc. + * + * @return entitySpecRelationship + **/ + @Schema(description = "Relationship to another entity specification, might be dependency, substitution, etc.") + @Valid + public List getEntitySpecRelationship() { + return entitySpecRelationship; + } + + public void setEntitySpecRelationship(List entitySpecRelationship) { + this.entitySpecRelationship = entitySpecRelationship; + } + + public ServiceTestSpecificationUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ServiceTestSpecificationUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Parties who manage or otherwise have an interest in this entity specification + * + * @return relatedParty + **/ + @Schema(description = "Parties who manage or otherwise have an interest in this entity specification") + @Valid + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public ServiceTestSpecificationUpdate relatedServiceSpecification( + List relatedServiceSpecification) { + this.relatedServiceSpecification = relatedServiceSpecification; + return this; + } + + public ServiceTestSpecificationUpdate addRelatedServiceSpecificationItem( + ServiceSpecificationRef relatedServiceSpecificationItem) { + if (this.relatedServiceSpecification == null) { + this.relatedServiceSpecification = new ArrayList<>(); + } + this.relatedServiceSpecification.add(relatedServiceSpecificationItem); + return this; + } + + /** + * The related service specification may relate to more than one service + * specification. + * + * @return relatedServiceSpecification + **/ + @Schema(description = "The related service specification may relate to more than one service specification.") + @Valid + public List getRelatedServiceSpecification() { + return relatedServiceSpecification; + } + + public void setRelatedServiceSpecification(List relatedServiceSpecification) { + this.relatedServiceSpecification = relatedServiceSpecification; + } + + public ServiceTestSpecificationUpdate serviceTestSpecRelationship( + List serviceTestSpecRelationship) { + this.serviceTestSpecRelationship = serviceTestSpecRelationship; + return this; + } + + public ServiceTestSpecificationUpdate addServiceTestSpecRelationshipItem( + ServiceTestSpecRelationship serviceTestSpecRelationshipItem) { + if (this.serviceTestSpecRelationship == null) { + this.serviceTestSpecRelationship = new ArrayList<>(); + } + this.serviceTestSpecRelationship.add(serviceTestSpecRelationshipItem); + return this; + } + + /** + * A list of service test specifications related to this specification e.g. + * dependency, substitution + * + * @return serviceTestSpecRelationship + **/ + @Schema(description = "A list of service test specifications related to this specification e.g. dependency, substitution") + @Valid + public List getServiceTestSpecRelationship() { + return serviceTestSpecRelationship; + } + + public void setServiceTestSpecRelationship(List serviceTestSpecRelationship) { + this.serviceTestSpecRelationship = serviceTestSpecRelationship; + } + + public ServiceTestSpecificationUpdate specCharacteristic(List specCharacteristic) { + this.specCharacteristic = specCharacteristic; + return this; + } + + public ServiceTestSpecificationUpdate addSpecCharacteristicItem( + CharacteristicSpecification specCharacteristicItem) { + if (this.specCharacteristic == null) { + this.specCharacteristic = new ArrayList<>(); + } + this.specCharacteristic.add(specCharacteristicItem); + return this; + } + + /** + * List of characteristics that the entity can take + * + * @return specCharacteristic + **/ + @Schema(description = "List of characteristics that the entity can take") + @Valid + public List getSpecCharacteristic() { + return specCharacteristic; + } + + public void setSpecCharacteristic(List specCharacteristic) { + this.specCharacteristic = specCharacteristic; + } + + public ServiceTestSpecificationUpdate targetEntitySchema(TargetEntitySchema targetEntitySchema) { + this.targetEntitySchema = targetEntitySchema; + return this; + } + + /** + * Get targetEntitySchema + * + * @return targetEntitySchema + **/ + @Schema(description = "") + + @Valid + public TargetEntitySchema getTargetEntitySchema() { + return targetEntitySchema; + } + + public void setTargetEntitySchema(TargetEntitySchema targetEntitySchema) { + this.targetEntitySchema = targetEntitySchema; + } + + public ServiceTestSpecificationUpdate testMeasureDefinition(List testMeasureDefinition) { + this.testMeasureDefinition = testMeasureDefinition; + return this; + } + + public ServiceTestSpecificationUpdate addTestMeasureDefinitionItem( + TestMeasureDefinition testMeasureDefinitionItem) { + if (this.testMeasureDefinition == null) { + this.testMeasureDefinition = new ArrayList<>(); + } + this.testMeasureDefinition.add(testMeasureDefinitionItem); + return this; + } + + /** + * A list of definitions for the measurements for the test defined by this + * specification + * + * @return testMeasureDefinition + **/ + @Schema(description = "A list of definitions for the measurements for the test defined by this specification") + @Valid + public List getTestMeasureDefinition() { + return testMeasureDefinition; + } + + public void setTestMeasureDefinition(List testMeasureDefinition) { + this.testMeasureDefinition = testMeasureDefinition; + } + + public ServiceTestSpecificationUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public ServiceTestSpecificationUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ServiceTestSpecificationUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class Extensible name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class Extensible name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestSpecificationUpdate serviceTestSpecificationUpdate = (ServiceTestSpecificationUpdate) o; + return Objects.equals(this.description, serviceTestSpecificationUpdate.description) + && Objects.equals(this.isBundle, serviceTestSpecificationUpdate.isBundle) + && Objects.equals(this.lastUpdate, serviceTestSpecificationUpdate.lastUpdate) + && Objects.equals(this.lifecycleStatus, serviceTestSpecificationUpdate.lifecycleStatus) + && Objects.equals(this.name, serviceTestSpecificationUpdate.name) + && Objects.equals(this.version, serviceTestSpecificationUpdate.version) + && Objects.equals(this.attachment, serviceTestSpecificationUpdate.attachment) + && Objects.equals(this.constraint, serviceTestSpecificationUpdate.constraint) + && Objects.equals(this.entitySpecRelationship, serviceTestSpecificationUpdate.entitySpecRelationship) + && Objects.equals(this.relatedParty, serviceTestSpecificationUpdate.relatedParty) + && Objects.equals(this.relatedServiceSpecification, + serviceTestSpecificationUpdate.relatedServiceSpecification) + && Objects.equals(this.serviceTestSpecRelationship, + serviceTestSpecificationUpdate.serviceTestSpecRelationship) + && Objects.equals(this.specCharacteristic, serviceTestSpecificationUpdate.specCharacteristic) + && Objects.equals(this.targetEntitySchema, serviceTestSpecificationUpdate.targetEntitySchema) + && Objects.equals(this.testMeasureDefinition, serviceTestSpecificationUpdate.testMeasureDefinition) + && Objects.equals(this.baseType, serviceTestSpecificationUpdate.baseType) + && Objects.equals(this.schemaLocation, serviceTestSpecificationUpdate.schemaLocation) + && Objects.equals(this.type, serviceTestSpecificationUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, isBundle, lastUpdate, lifecycleStatus, name, version, attachment, constraint, + entitySpecRelationship, relatedParty, relatedServiceSpecification, serviceTestSpecRelationship, + specCharacteristic, targetEntitySchema, testMeasureDefinition, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestSpecificationUpdate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" isBundle: ").append(toIndentedString(isBundle)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" lifecycleStatus: ").append(toIndentedString(lifecycleStatus)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" attachment: ").append(toIndentedString(attachment)).append("\n"); + sb.append(" constraint: ").append(toIndentedString(constraint)).append("\n"); + sb.append(" entitySpecRelationship: ").append(toIndentedString(entitySpecRelationship)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" relatedServiceSpecification: ").append(toIndentedString(relatedServiceSpecification)) + .append("\n"); + sb.append(" serviceTestSpecRelationship: ").append(toIndentedString(serviceTestSpecRelationship)) + .append("\n"); + sb.append(" specCharacteristic: ").append(toIndentedString(specCharacteristic)).append("\n"); + sb.append(" targetEntitySchema: ").append(toIndentedString(targetEntitySchema)).append("\n"); + sb.append(" testMeasureDefinition: ").append(toIndentedString(testMeasureDefinition)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestUpdate.java b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestUpdate.java new file mode 100644 index 0000000..a0f2c5f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/ServiceTestUpdate.java @@ -0,0 +1,508 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.common.model.service.ServiceRef; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; + +/** + * A service test is an entity that exists for a controlled test invocation on a + * service. The service test is executed according to a schedule and contains + * service test configuration parameters that are to be applied at execution + * time, and service test measures that result. Skipped properties: id,href + */ +@Schema(description = "A service test is an entity that exists for a controlled test invocation on a service. The service test is executed according to a schedule and contains service test configuration parameters that are to be applied at execution time, and service test measures that result. Skipped properties: id,href") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") +public class ServiceTestUpdate { + @JsonProperty("description") + protected String description = null; + + protected OffsetDateTime endDateTime = null; + + @JsonProperty("mode") + protected String mode = null; + + @JsonProperty("name") + protected String name = null; + + protected OffsetDateTime startDateTime = null; + + @JsonProperty("state") + protected String state = null; + + @JsonProperty("characteristic") + @Valid + protected List characteristic = null; + + @JsonProperty("relatedParty") + @Valid + protected List relatedParty = null; + + @JsonProperty("relatedService") + protected ServiceRef relatedService = null; + + @JsonProperty("testMeasure") + @Valid + protected List testMeasure = null; + + @JsonProperty("testSpecification") + protected ServiceTestSpecificationRef testSpecification = null; + + @JsonProperty("validFor") + protected TimePeriod validFor = null; + + @JsonProperty("@baseType") + protected String baseType = null; + + @JsonProperty("@schemaLocation") + protected String schemaLocation = null; + + @JsonProperty("@type") + protected String type = null; + + public ServiceTestUpdate description(String description) { + this.description = description; + return this; + } + + /** + * Description of the service test + * + * @return description + **/ + @Schema(description = "Description of the service test") + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ServiceTestUpdate endDateTime(OffsetDateTime endDateTime) { + this.endDateTime = endDateTime; + return this; + } + + /** + * The end date and time of the service test + * + * @return endDateTime + **/ + @Schema(description = "The end date and time of the service test") + + @Valid + public OffsetDateTime getEndDateTime() { + return endDateTime; + } + + public void setEndDateTime(OffsetDateTime endDateTime) { + this.endDateTime = endDateTime; + } + + @JsonProperty("endDateTime") + public String getEndDateStr() { + if (this.endDateTime != null) { + return this.endDateTime.toString(); + } else { + return null; + } + } + + public ServiceTestUpdate mode(String mode) { + this.mode = mode; + return this; + } + + /** + * An indication of whether the service test is running in \"PROACTIVE\" or + * \"ONDEMAND\" mode + * + * @return mode + **/ + @Schema(description = "An indication of whether the service test is running in \"PROACTIVE\" or \"ONDEMAND\" mode") + + public String getMode() { + return mode; + } + + public void setMode(String mode) { + this.mode = mode; + } + + public ServiceTestUpdate name(String name) { + this.name = name; + return this; + } + + /** + * The name of the service test + * + * @return name + **/ + @Schema(description = "The name of the service test") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ServiceTestUpdate startDateTime(OffsetDateTime startDateTime) { + this.startDateTime = startDateTime; + return this; + } + + /** + * The start date and time of the service test. + * + * @return startDateTime + **/ + @Schema(description = "The start date and time of the service test.") + + @Valid + public OffsetDateTime getStartDateTime() { + return startDateTime; + } + + public void setStartDateTime(OffsetDateTime startDateTime) { + this.startDateTime = startDateTime; + } + + + @JsonProperty("startDateTime") + public String getStartDateTimeStr() { + if (this.startDateTime != null) { + return this.startDateTime.toString(); + } else { + return null; + } + } + + + public ServiceTestUpdate state(String state) { + this.state = state; + return this; + } + + /** + * The actual state the service test is in + * + * @return state + **/ + @Schema(description = "The actual state the service test is in") + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public ServiceTestUpdate characteristic(List characteristic) { + this.characteristic = characteristic; + return this; + } + + public ServiceTestUpdate addCharacteristicItem(Characteristic characteristicItem) { + if (this.characteristic == null) { + this.characteristic = new ArrayList<>(); + } + this.characteristic.add(characteristicItem); + return this; + } + + /** + * List of characteristics with values that define the test run + * + * @return characteristic + **/ + @Schema(description = "List of characteristics with values that define the test run") + @Valid + public List getCharacteristic() { + return characteristic; + } + + public void setCharacteristic(List characteristic) { + this.characteristic = characteristic; + } + + public ServiceTestUpdate relatedParty(List relatedParty) { + this.relatedParty = relatedParty; + return this; + } + + public ServiceTestUpdate addRelatedPartyItem(RelatedParty relatedPartyItem) { + if (this.relatedParty == null) { + this.relatedParty = new ArrayList<>(); + } + this.relatedParty.add(relatedPartyItem); + return this; + } + + /** + * Party related to the test + * + * @return relatedParty + **/ + @Schema(description = "Party related to the test") + @Valid + public List getRelatedParty() { + return relatedParty; + } + + public void setRelatedParty(List relatedParty) { + this.relatedParty = relatedParty; + } + + public ServiceTestUpdate relatedService(ServiceRef relatedService) { + this.relatedService = relatedService; + return this; + } + + /** + * Get relatedService + * + * @return relatedService + **/ + @Schema(description = "") + + @Valid + public ServiceRef getRelatedService() { + return relatedService; + } + + public void setRelatedService(ServiceRef relatedService) { + this.relatedService = relatedService; + } + + public ServiceTestUpdate testMeasure(List testMeasure) { + this.testMeasure = testMeasure; + return this; + } + + public ServiceTestUpdate addTestMeasureItem(TestMeasure testMeasureItem) { + if (this.testMeasure == null) { + this.testMeasure = new ArrayList<>(); + } + this.testMeasure.add(testMeasureItem); + return this; + } + + /** + * The results of the test in terms of the measured metrics + * + * @return testMeasure + **/ + @Schema(description = "The results of the test in terms of the measured metrics") + @Valid + public List getTestMeasure() { + return testMeasure; + } + + public void setTestMeasure(List testMeasure) { + this.testMeasure = testMeasure; + } + + public ServiceTestUpdate testSpecification(ServiceTestSpecificationRef testSpecification) { + this.testSpecification = testSpecification; + return this; + } + + /** + * Get testSpecification + * + * @return testSpecification + **/ + @Schema(description = "") + + @Valid + public ServiceTestSpecificationRef getTestSpecification() { + return testSpecification; + } + + public void setTestSpecification(ServiceTestSpecificationRef testSpecification) { + this.testSpecification = testSpecification; + } + + public ServiceTestUpdate validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + public ServiceTestUpdate baseType(String baseType) { + this.baseType = baseType; + return this; + } + + /** + * When sub-classing, this defines the super-class + * + * @return baseType + **/ + @Schema(description = "When sub-classing, this defines the super-class") + + public String getAtBaseType() { + return baseType; + } + + public void setAtBaseType(String baseType) { + this.baseType = baseType; + } + + public ServiceTestUpdate schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * A URI to a JSON-Schema file that defines additional attributes and + * relationships + * + * @return schemaLocation + **/ + @Schema(description = "A URI to a JSON-Schema file that defines additional attributes and relationships") + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public ServiceTestUpdate type(String type) { + this.type = type; + return this; + } + + /** + * When sub-classing, this defines the sub-class Extensible name + * + * @return type + **/ + @Schema(description = "When sub-classing, this defines the sub-class Extensible name") + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceTestUpdate serviceTestUpdate = (ServiceTestUpdate) o; + return Objects.equals(this.description, serviceTestUpdate.description) + && Objects.equals(this.endDateTime, serviceTestUpdate.endDateTime) + && Objects.equals(this.mode, serviceTestUpdate.mode) + && Objects.equals(this.name, serviceTestUpdate.name) + && Objects.equals(this.startDateTime, serviceTestUpdate.startDateTime) + && Objects.equals(this.state, serviceTestUpdate.state) + && Objects.equals(this.characteristic, serviceTestUpdate.characteristic) + && Objects.equals(this.relatedParty, serviceTestUpdate.relatedParty) + && Objects.equals(this.relatedService, serviceTestUpdate.relatedService) + && Objects.equals(this.testMeasure, serviceTestUpdate.testMeasure) + && Objects.equals(this.testSpecification, serviceTestUpdate.testSpecification) + && Objects.equals(this.validFor, serviceTestUpdate.validFor) + && Objects.equals(this.baseType, serviceTestUpdate.baseType) + && Objects.equals(this.schemaLocation, serviceTestUpdate.schemaLocation) + && Objects.equals(this.type, serviceTestUpdate.type); + } + + @Override + public int hashCode() { + return Objects.hash(description, endDateTime, mode, name, startDateTime, state, characteristic, relatedParty, + relatedService, testMeasure, testSpecification, validFor, baseType, schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceTestUpdate {\n"); + + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" endDateTime: ").append(toIndentedString(endDateTime)).append("\n"); + sb.append(" mode: ").append(toIndentedString(mode)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" startDateTime: ").append(toIndentedString(startDateTime)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" characteristic: ").append(toIndentedString(characteristic)).append("\n"); + sb.append(" relatedParty: ").append(toIndentedString(relatedParty)).append("\n"); + sb.append(" relatedService: ").append(toIndentedString(relatedService)).append("\n"); + sb.append(" testMeasure: ").append(toIndentedString(testMeasure)).append("\n"); + sb.append(" testSpecification: ").append(toIndentedString(testSpecification)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/TargetEntitySchema.java b/src/main/java/org/etsi/osl/tmf/stm653/model/TargetEntitySchema.java new file mode 100644 index 0000000..225a8de --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/TargetEntitySchema.java @@ -0,0 +1,129 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; +import jakarta.validation.constraints.NotNull; + +/** + * The reference object to the schema and type of target entity which is described by a specification + */ +@Schema(description = "The reference object to the schema and type of target entity which is described by a specification") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") + + +@Entity(name = "STMTargetEntitySchema") +@Table(name = "STMTargetEntitySchema") +public class TargetEntitySchema extends BaseRootEntity { + @JsonProperty("@schemaLocation") + private String schemaLocation = null; + + @JsonProperty("@type") + private String type = null; + + public TargetEntitySchema schemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + return this; + } + + /** + * This field provides a link to the schema describing the target entity + * @return schemaLocation + **/ + @Schema(description = "This field provides a link to the schema describing the target entity") + @NotNull + + public String getAtSchemaLocation() { + return schemaLocation; + } + + public void setAtSchemaLocation(String schemaLocation) { + this.schemaLocation = schemaLocation; + } + + public TargetEntitySchema type(String type) { + this.type = type; + return this; + } + + /** + * Class type of the target entity + * @return type + **/ + @Schema(description = "Class type of the target entity") + @NotNull + + public String getAtType() { + return type; + } + + public void setAtType(String type) { + this.type = type; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TargetEntitySchema targetEntitySchema = (TargetEntitySchema) o; + return Objects.equals(this.schemaLocation, targetEntitySchema.schemaLocation) && + Objects.equals(this.type, targetEntitySchema.type); + } + + @Override + public int hashCode() { + return Objects.hash(schemaLocation, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TargetEntitySchema {\n"); + + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/TestMeasure.java b/src/main/java/org/etsi/osl/tmf/stm653/model/TestMeasure.java new file mode 100644 index 0000000..3afd3ef --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/TestMeasure.java @@ -0,0 +1,337 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootEntity; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * A TestMeasure specifies a measure of a specific aspect of a product, service, + * or resource test, such as lost packets or connectivity status + */ +@Schema(description = "A TestMeasure specifies a measure of a specific aspect of a product, service, or resource test, such as lost packets or connectivity status") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") + +@Entity(name = "STMTestMeasure") +@Table(name = "STMTestMeasure") +public class TestMeasure extends BaseRootEntity { + @JsonProperty("accuracy") + private Float accuracy = null; + + private OffsetDateTime captureDateTime = null; + + @JsonProperty("captureMethod") + private String captureMethod = null; + + @JsonProperty("metricDescription") + private String metricDescription = null; + + @JsonProperty("metricHref") + private String metricHref = null; + + @JsonProperty("metricName") + private String metricName = null; + + @JsonProperty("unitOfMeasure") + private String unitOfMeasure = null; + + @JsonProperty("ruleViolation") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set ruleViolation = new HashSet<>(); + + @JsonProperty("value") + @OneToOne(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Characteristic value = null; + + public TestMeasure accuracy(Float accuracy) { + this.accuracy = accuracy; + return this; + } + + /** + * The number of digits of accuracy captured for associated Metrics + * + * @return accuracy + **/ + @Schema(description = "The number of digits of accuracy captured for associated Metrics") + + public Float getAccuracy() { + return accuracy; + } + + public void setAccuracy(Float accuracy) { + this.accuracy = accuracy; + } + + public TestMeasure captureDateTime(OffsetDateTime captureDateTime) { + this.captureDateTime = captureDateTime; + return this; + } + + /** + * The date and time that the metric was captured + * + * @return captureDateTime + **/ + @Schema(description = "The date and time that the metric was captured") + + @Valid + public OffsetDateTime getCaptureDateTime() { + return captureDateTime; + } + + public void setCaptureDateTime(OffsetDateTime captureDateTime) { + this.captureDateTime = captureDateTime; + } + + public TestMeasure captureMethod(String captureMethod) { + this.captureMethod = captureMethod; + return this; + } + + @JsonProperty("captureDateTime") + public String getcaptureDateTimeStr() { + if (this.captureDateTime != null) { + return this.captureDateTime.toString(); + } else { + return null; + } + } + + /** + * The method used to capture the Metrics (This may be replaced by a set of + * entities similar to the Performance Monitoring Ref) + * + * @return captureMethod + **/ + @Schema(description = "The method used to capture the Metrics (This may be replaced by a set of entities similar to the Performance Monitoring Ref)") + + public String getCaptureMethod() { + return captureMethod; + } + + public void setCaptureMethod(String captureMethod) { + this.captureMethod = captureMethod; + } + + public TestMeasure metricDescription(String metricDescription) { + this.metricDescription = metricDescription; + return this; + } + + /** + * Brief description of the metric + * + * @return metricDescription + **/ + @Schema(description = "Brief description of the metric") + + public String getMetricDescription() { + return metricDescription; + } + + public void setMetricDescription(String metricDescription) { + this.metricDescription = metricDescription; + } + + public TestMeasure metricHref(String metricHref) { + this.metricHref = metricHref; + return this; + } + + /** + * Hyperlink to access a metric for detail information + * + * @return metricHref + **/ + @Schema(description = "Hyperlink to access a metric for detail information") + + public String getMetricHref() { + return metricHref; + } + + public void setMetricHref(String metricHref) { + this.metricHref = metricHref; + } + + public TestMeasure metricName(String metricName) { + this.metricName = metricName; + return this; + } + + /** + * The name of the metric + * + * @return metricName + **/ + @Schema(description = "The name of the metric") + + public String getMetricName() { + return metricName; + } + + public void setMetricName(String metricName) { + this.metricName = metricName; + } + + public TestMeasure unitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + return this; + } + + /** + * The unit of measure for the metric values, such as meters, cubic yards, + * kilograms [ISO 1000]. + * + * @return unitOfMeasure + **/ + @Schema(description = "The unit of measure for the metric values, such as meters, cubic yards, kilograms [ISO 1000].") + + public String getUnitOfMeasure() { + return unitOfMeasure; + } + + public void setUnitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + } + + public TestMeasure ruleViolation(Set ruleViolation) { + this.ruleViolation = ruleViolation; + return this; + } + + public TestMeasure addRuleViolationItem(MeasureThresholdRuleViolation ruleViolationItem) { + if (this.ruleViolation == null) { + this.ruleViolation = new HashSet<>(); + } + this.ruleViolation.add(ruleViolationItem); + return this; + } + + /** + * A list of rules that were violated in this test measure + * + * @return ruleViolation + **/ + @Schema(description = "A list of rules that were violated in this test measure") + @Valid + public Set getRuleViolation() { + return ruleViolation; + } + + public void setRuleViolation(Set ruleViolation) { + this.ruleViolation = ruleViolation; + } + + public TestMeasure value(Characteristic value) { + this.value = value; + return this; + } + + /** + * Get value + * + * @return value + **/ + @Schema(description = "") + + @Valid + public Characteristic getValue() { + return value; + } + + public void setValue(Characteristic value) { + this.value = value; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TestMeasure testMeasure = (TestMeasure) o; + return Objects.equals(this.accuracy, testMeasure.accuracy) + && Objects.equals(this.captureDateTime, testMeasure.captureDateTime) + && Objects.equals(this.captureMethod, testMeasure.captureMethod) + && Objects.equals(this.metricDescription, testMeasure.metricDescription) + && Objects.equals(this.metricHref, testMeasure.metricHref) + && Objects.equals(this.metricName, testMeasure.metricName) + && Objects.equals(this.unitOfMeasure, testMeasure.unitOfMeasure) + && Objects.equals(this.ruleViolation, testMeasure.ruleViolation) + && Objects.equals(this.value, testMeasure.value) && Objects.equals(this.baseType, testMeasure.baseType) + && Objects.equals(this.schemaLocation, testMeasure.schemaLocation) + && Objects.equals(this.type, testMeasure.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(accuracy, captureDateTime, captureMethod, metricDescription, metricHref, metricName, unitOfMeasure, ruleViolation, value, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TestMeasure {\n"); + + sb.append(" accuracy: ").append(toIndentedString(accuracy)).append("\n"); + sb.append(" captureDateTime: ").append(toIndentedString(captureDateTime)).append("\n"); + sb.append(" captureMethod: ").append(toIndentedString(captureMethod)).append("\n"); + sb.append(" metricDescription: ").append(toIndentedString(metricDescription)).append("\n"); + sb.append(" metricHref: ").append(toIndentedString(metricHref)).append("\n"); + sb.append(" metricName: ").append(toIndentedString(metricName)).append("\n"); + sb.append(" unitOfMeasure: ").append(toIndentedString(unitOfMeasure)).append("\n"); + sb.append(" ruleViolation: ").append(toIndentedString(ruleViolation)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/model/TestMeasureDefinition.java b/src/main/java/org/etsi/osl/tmf/stm653/model/TestMeasureDefinition.java new file mode 100644 index 0000000..f935341 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/model/TestMeasureDefinition.java @@ -0,0 +1,377 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.model; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.etsi.osl.tmf.common.model.BaseRootNamedEntity; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.springframework.validation.annotation.Validated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import jakarta.validation.Valid; + +/** + * A TestMeasureDefinition specifies a measure of a specific aspect of a + * product, service, or resource test, such as lost packets or connectivity + * status + */ +@Schema(description = "A TestMeasureDefinition specifies a measure of a specific aspect of a product, service, or resource test, such as lost packets or connectivity status") +@Validated +@jakarta.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-02-08T11:50:07.226173200+02:00[Europe/Athens]") + +@Entity(name = "STMTestMeasureDefinition") +@Table(name = "STMTestMeasureDefinition") +public class TestMeasureDefinition extends BaseRootNamedEntity { + @JsonProperty("captureFrequency") + private String captureFrequency = null; + + @JsonProperty("captureMethod") + private String captureMethod = null; + + @JsonProperty("metricDescription") + private String metricDescription = null; + + @JsonProperty("metricHref") + private String metricHref = null; + + @JsonProperty("metricName") + private String metricName = null; + + @JsonProperty("unitOfMeasure") + private String unitOfMeasure = null; + + @JsonProperty("valueType") + private String valueType = null; + + @JsonProperty("capturePeriod") + private Duration capturePeriod = null; + + @JsonProperty("thresholdRule") + @Valid + @OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }) + private Set thresholdRule = null; + + @JsonProperty("validFor") + private TimePeriod validFor = null; + + public TestMeasureDefinition captureFrequency(String captureFrequency) { + this.captureFrequency = captureFrequency; + return this; + } + + /** + * The frequency of capture for the metric. Note: This may be replaced by a set + * of entities similar to the Performance Monitoring + * + * @return captureFrequency + **/ + @Schema(description = "The frequency of capture for the metric. Note: This may be replaced by a set of entities similar to the Performance Monitoring") + + public String getCaptureFrequency() { + return captureFrequency; + } + + public void setCaptureFrequency(String captureFrequency) { + this.captureFrequency = captureFrequency; + } + + public TestMeasureDefinition captureMethod(String captureMethod) { + this.captureMethod = captureMethod; + return this; + } + + /** + * The method used to capture the Metric. Note: This may be replaced by a set of + * entities similar to the Performance Monitoring + * + * @return captureMethod + **/ + @Schema(description = "The method used to capture the Metric. Note: This may be replaced by a set of entities similar to the Performance Monitoring") + + public String getCaptureMethod() { + return captureMethod; + } + + public void setCaptureMethod(String captureMethod) { + this.captureMethod = captureMethod; + } + + public TestMeasureDefinition metricDescription(String metricDescription) { + this.metricDescription = metricDescription; + return this; + } + + /** + * Brief description of the metric + * + * @return metricDescription + **/ + @Schema(description = "Brief description of the metric") + + public String getMetricDescription() { + return metricDescription; + } + + public void setMetricDescription(String metricDescription) { + this.metricDescription = metricDescription; + } + + public TestMeasureDefinition metricHref(String metricHref) { + this.metricHref = metricHref; + return this; + } + + /** + * Hyperlink to access a metric for detail information + * + * @return metricHref + **/ + @Schema(description = "Hyperlink to access a metric for detail information") + + public String getMetricHref() { + return metricHref; + } + + public void setMetricHref(String metricHref) { + this.metricHref = metricHref; + } + + public TestMeasureDefinition metricName(String metricName) { + this.metricName = metricName; + return this; + } + + /** + * The name of a metric that in the test measure + * + * @return metricName + **/ + @Schema(description = "The name of a metric that in the test measure") + + public String getMetricName() { + return metricName; + } + + public void setMetricName(String metricName) { + this.metricName = metricName; + } + + public TestMeasureDefinition name(String name) { + this.name = name; + return this; + } + + /** + * The name of the TestMeasureDefinition + * + * @return name + **/ + @Schema(description = "The name of the TestMeasureDefinition") + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public TestMeasureDefinition unitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + return this; + } + + /** + * Name of a service test specification + * + * @return unitOfMeasure + **/ + @Schema(description = "Name of a service test specification") + + public String getUnitOfMeasure() { + return unitOfMeasure; + } + + public void setUnitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + } + + public TestMeasureDefinition valueType(String valueType) { + this.valueType = valueType; + return this; + } + + /** + * A kind of value that the Metric value can take on, such as numeric, text, and + * so forth + * + * @return valueType + **/ + @Schema(description = "A kind of value that the Metric value can take on, such as numeric, text, and so forth") + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public TestMeasureDefinition capturePeriod(Duration capturePeriod) { + this.capturePeriod = capturePeriod; + return this; + } + + /** + * Get capturePeriod + * + * @return capturePeriod + **/ + @Schema(description = "") + + @Valid + public Duration getCapturePeriod() { + return capturePeriod; + } + + public void setCapturePeriod(Duration capturePeriod) { + this.capturePeriod = capturePeriod; + } + + public TestMeasureDefinition thresholdRule(Set thresholdRule) { + this.thresholdRule = thresholdRule; + return this; + } + + public TestMeasureDefinition addThresholdRuleItem(MetricDefMeasureThresholdRule thresholdRuleItem) { + if (this.thresholdRule == null) { + this.thresholdRule = new HashSet<>(); + } + this.thresholdRule.add(thresholdRuleItem); + return this; + } + + /** + * The rule(s) associated with the measure threshold + * + * @return thresholdRule + **/ + @Schema(description = "The rule(s) associated with the measure threshold") + @Valid + public Set getThresholdRule() { + return thresholdRule; + } + + public void setThresholdRule(Set thresholdRule) { + this.thresholdRule = thresholdRule; + } + + public TestMeasureDefinition validFor(TimePeriod validFor) { + this.validFor = validFor; + return this; + } + + /** + * Get validFor + * + * @return validFor + **/ + @Schema(description = "") + + @Valid + public TimePeriod getValidFor() { + return validFor; + } + + public void setValidFor(TimePeriod validFor) { + this.validFor = validFor; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TestMeasureDefinition testMeasureDefinition = (TestMeasureDefinition) o; + return Objects.equals(this.captureFrequency, testMeasureDefinition.captureFrequency) + && Objects.equals(this.captureMethod, testMeasureDefinition.captureMethod) + && Objects.equals(this.metricDescription, testMeasureDefinition.metricDescription) + && Objects.equals(this.metricHref, testMeasureDefinition.metricHref) + && Objects.equals(this.metricName, testMeasureDefinition.metricName) + && Objects.equals(this.name, testMeasureDefinition.name) + && Objects.equals(this.unitOfMeasure, testMeasureDefinition.unitOfMeasure) + && Objects.equals(this.valueType, testMeasureDefinition.valueType) + && Objects.equals(this.capturePeriod, testMeasureDefinition.capturePeriod) + && Objects.equals(this.thresholdRule, testMeasureDefinition.thresholdRule) + && Objects.equals(this.validFor, testMeasureDefinition.validFor) + && Objects.equals(this.baseType, testMeasureDefinition.baseType) + && Objects.equals(this.schemaLocation, testMeasureDefinition.schemaLocation) + && Objects.equals(this.type, testMeasureDefinition.type); + } + +// @Override +// public int hashCode() { +// return Objects.hash(captureFrequency, captureMethod, metricDescription, metricHref, metricName, name, unitOfMeasure, valueType, capturePeriod, thresholdRule, validFor, baseType, schemaLocation, type); +// } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TestMeasureDefinition {\n"); + + sb.append(" captureFrequency: ").append(toIndentedString(captureFrequency)).append("\n"); + sb.append(" captureMethod: ").append(toIndentedString(captureMethod)).append("\n"); + sb.append(" metricDescription: ").append(toIndentedString(metricDescription)).append("\n"); + sb.append(" metricHref: ").append(toIndentedString(metricHref)).append("\n"); + sb.append(" metricName: ").append(toIndentedString(metricName)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" unitOfMeasure: ").append(toIndentedString(unitOfMeasure)).append("\n"); + sb.append(" valueType: ").append(toIndentedString(valueType)).append("\n"); + sb.append(" capturePeriod: ").append(toIndentedString(capturePeriod)).append("\n"); + sb.append(" thresholdRule: ").append(toIndentedString(thresholdRule)).append("\n"); + sb.append(" validFor: ").append(toIndentedString(validFor)).append("\n"); + sb.append(" baseType: ").append(toIndentedString(baseType)).append("\n"); + sb.append(" schemaLocation: ").append(toIndentedString(schemaLocation)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/repo/ServiceTestRepository.java b/src/main/java/org/etsi/osl/tmf/stm653/repo/ServiceTestRepository.java new file mode 100644 index 0000000..0c508f7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/repo/ServiceTestRepository.java @@ -0,0 +1,44 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.stm653.model.ServiceTest; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + +@Repository +public interface ServiceTestRepository extends CrudRepository,PagingAndSortingRepository { + + + Optional findByUuid(String id); + + Optional findByName(String aName); + + List findByOrderByName(); + + + + +} + diff --git a/src/main/java/org/etsi/osl/tmf/stm653/repo/ServiceTestSpecificationRepository.java b/src/main/java/org/etsi/osl/tmf/stm653/repo/ServiceTestSpecificationRepository.java new file mode 100644 index 0000000..58aa106 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/repo/ServiceTestSpecificationRepository.java @@ -0,0 +1,48 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.repo; + +import java.util.List; +import java.util.Optional; +import org.etsi.osl.tmf.stm653.model.ServiceTestSpecification; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + + +/** + * @author ctranoris + * + */ +@Repository +public interface ServiceTestSpecificationRepository extends CrudRepository,PagingAndSortingRepository { + + + Optional findByUuid(String id); + + Optional findByName(String aName); + + List findByOrderByName(); + + + + +} + diff --git a/src/main/java/org/etsi/osl/tmf/stm653/reposervices/ServiceTestRepoService.java b/src/main/java/org/etsi/osl/tmf/stm653/reposervices/ServiceTestRepoService.java new file mode 100644 index 0000000..6713149 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/reposervices/ServiceTestRepoService.java @@ -0,0 +1,340 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.reposervices; + +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.sim638.model.ServiceUpdate; +import org.etsi.osl.tmf.sim638.service.ServiceRepoService; +import org.etsi.osl.tmf.stm653.model.Characteristic; +import org.etsi.osl.tmf.stm653.model.CharacteristicRelationship; +import org.etsi.osl.tmf.stm653.model.ServiceTest; +import org.etsi.osl.tmf.stm653.model.ServiceTestCreate; +import org.etsi.osl.tmf.stm653.model.ServiceTestUpdate; +import org.etsi.osl.tmf.stm653.model.TestMeasure; +import org.etsi.osl.tmf.stm653.repo.ServiceTestRepository; +import org.hibernate.Hibernate; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + +/** + * @author ctranoris + * + */ +@Service +public class ServiceTestRepoService { + + private static final transient Log logger = LogFactory.getLog(ServiceTestRepoService.class.getName()); + + + @Autowired + ServiceTestRepository aServiceTestRepo; + + private SessionFactory sessionFactory; + + + @Autowired + ServiceRepoService serviceRepoService; + + @Autowired + ObjectMapper objectMapper; + + @Autowired + public ServiceTestRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + public ServiceTest addServiceTest(@Valid ServiceTestCreate serviceTest) { + + ServiceTest serviceSpec = new ServiceTest(); + serviceSpec = this.updateServiceTestDataFromAPIcall(serviceSpec, serviceTest); + serviceSpec = this.aServiceTestRepo.save(serviceSpec); + + return this.aServiceTestRepo.save(serviceSpec); + } + + + @Transactional + private ServiceTest updateServiceTestDataFromAPIcall(ServiceTest serviceT, + @Valid ServiceTestUpdate serviceUpd) { + + if (serviceUpd.getName() != null) { + serviceT.setName(serviceUpd.getName()); + } + + if (serviceUpd.getDescription() != null) { + serviceT.setDescription(serviceUpd.getDescription()); + + } + + + if (serviceUpd.getTestSpecification() != null ){ + serviceT.setTestSpecification( serviceUpd.getTestSpecification() ); + } + + + serviceT.setLastUpdate(OffsetDateTime.now(ZoneOffset.UTC)); + + + + + List childCharacteristicsChanged = new ArrayList<>(); + if ( serviceUpd.getCharacteristic()!=null ) { + for (Characteristic n : serviceUpd.getCharacteristic()) { + + if ( serviceT.getCharacteristicByName( n.getName() )!= null ) { + + Characteristic origChar = serviceT.getCharacteristicByName( n.getName() ); + if ( ( origChar !=null ) && ( origChar.getValue() !=null ) && ( origChar.getValue().getValue() !=null )) { + if ( !origChar.getValue().getValue().equals(n.getValue().getValue()) ) { + if ( n.getName().contains("::") ) { + childCharacteristicsChanged.add(n); //the characteristic needs later to be propagated to its children + + + } + + } + } + + serviceT.getCharacteristicByName( n.getName() ).setValue( + new Any( n.getValue().getValue(), n.getValue().getAlias() ) + ); + } else { + serviceT.addCharacteristicItem(n); + } + + } + } + + /** + * Update RelatedParty list + */ + if (serviceUpd.getRelatedParty() != null) { + // reattach fromDB + Map idAddedUpdated = new HashMap<>(); + + for (RelatedParty rp : serviceUpd.getRelatedParty()) { + + boolean idexists = false; + for (RelatedParty originalRP : serviceT.getRelatedParty()) { + if (originalRP.getId().equals(rp.getId())) { + idexists = true; + idAddedUpdated.put(originalRP.getId(), true); + break; + } + } + if (!idexists) { + serviceT.getRelatedParty().add(rp); + idAddedUpdated.put(rp.getId(), true); + } + } + List toRemove = new ArrayList<>(); + for (RelatedParty ss : serviceT.getRelatedParty()) { + if (idAddedUpdated.get(ss.getId()) == null) { + toRemove.add(ss); + } + } + + for (RelatedParty ar : toRemove) { + serviceT.getRelatedParty().remove(ar); + } + } + + + if (serviceUpd.getRelatedService() != null) { + serviceT.setRelatedService( (serviceUpd.getRelatedService() ) ); + + } + + + + if (serviceUpd.getTestMeasure() != null) { + // reattach attachments fromDB + Map idAddedUpdated = new HashMap<>(); + + for (TestMeasure ar : serviceUpd.getTestMeasure()) { + // find ServiceSpecRelationship by id and reload it here. + // we need the ServiceSpecRelationship model from spec models + boolean idexists = false; + for (TestMeasure orinalAtt : serviceT.getTestMeasure() ) { + if (orinalAtt.getMetricName().equals(ar.getMetricName())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getMetricName(), true); + break; + } + } + + if (!idexists) { + serviceT.getTestMeasure().add(ar); + idAddedUpdated.put(ar.getMetricName(), true); + + } + } + + List toRemove = new ArrayList<>(); + for (TestMeasure ss : serviceT.getTestMeasure()) { + if (idAddedUpdated.get(ss.getMetricName()) == null) { + toRemove.add(ss); + } + } + + for (TestMeasure ar : toRemove) { + serviceT.getTestMeasure().remove(ar); + } + + } + + return serviceT; + + } + + + /** + * update related service characteristics + * @param serviceT + */ + private void updateRelatedService(ServiceTest serviceT) { + + if (serviceT.getRelatedService() != null) { + + @Valid + ServiceUpdate servUpd = new ServiceUpdate(); + + for (Characteristic c : serviceT.getCharacteristic()) { + + org.etsi.osl.tmf.common.model.service.Characteristic newC = new org.etsi.osl.tmf.common.model.service.Characteristic(); + newC.setName( c.getName()); + newC.setValue( new Any( c.getValue()) ); + servUpd.addServiceCharacteristicItem( newC ); + } + serviceRepoService.updateService( serviceT.getRelatedService().getId() , servUpd, true, null, null); + } + + } + + public Void deleteByUuid(String id) { + Optional optionalCat = this.aServiceTestRepo.findByUuid(id); + ServiceTest s = optionalCat.get(); + if (s == null) { + return null; + } + + this.aServiceTestRepo.delete(s); + return null; + } + + public List findAll(String myfields, @Valid Map allParams) { + // this can be refactored properly in future (see for example implementation in ServiceSpecificationRepo) + return findAll(); + } + + public List findAll() { + return (List) this.aServiceTestRepo.findByOrderByName(); + } + + @Transactional + public ServiceTest updateServiceTest(String id, @Valid ServiceTestUpdate serviceSpecification) { + ServiceTest s = this.findByUuid(id); + if (s == null) { + return null; + } + ServiceTest serviceSpec = s; + serviceSpec = this.updateServiceTestDataFromAPIcall(serviceSpec, serviceSpecification); + + serviceSpec = this.aServiceTestRepo.save(serviceSpec); + + updateRelatedService( serviceSpec ); + + //serviceSpec = this.getServiceTestEager( serviceSpec.getId() ); + + return serviceSpec; + } + + + + public ServiceTest findByUuid(String id) { + Optional optionalCat = this.aServiceTestRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + public String getServiceTestEagerAsString(String id) throws JsonProcessingException { + ServiceTest s = this.getServiceTestEager(id); + ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new Hibernate5JakartaModule()); + String res = mapper.writeValueAsString(s); + + return res; + } + + public ServiceTest getServiceTestEager(String id) { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + ServiceTest s = null; + try { + s = (ServiceTest) session.get(ServiceTest.class, id); + if (s == null) { + return this.findByUuid(id);// last resort + } + + Hibernate.initialize(s.getRelatedParty()); + + Hibernate.initialize(s.getCharacteristic() ); + Hibernate.initialize(s.getTestSpecification() ); + Hibernate.initialize(s.getTestMeasure() ); + + for (Characteristic schar : s.getCharacteristic()) { + Hibernate.initialize(schar.getCharacteristicRelationship() ); + for (CharacteristicRelationship cr : schar.getCharacteristicRelationship() ) { + Hibernate.initialize(cr ); + } + + } + + tx.commit(); + } finally { + session.close(); + } + + return s; + } +} diff --git a/src/main/java/org/etsi/osl/tmf/stm653/reposervices/ServiceTestSpecificationRepoService.java b/src/main/java/org/etsi/osl/tmf/stm653/reposervices/ServiceTestSpecificationRepoService.java new file mode 100644 index 0000000..1989f43 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/stm653/reposervices/ServiceTestSpecificationRepoService.java @@ -0,0 +1,473 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.stm653.reposervices; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.common.model.Attachment; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.ELifecycle; +import org.etsi.osl.tmf.common.model.TimePeriod; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.etsi.osl.tmf.pcm620.reposervices.AttachmentRepoService; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.stm653.model.CharacteristicSpecification; +import org.etsi.osl.tmf.stm653.model.ServiceTestSpecRelationship; +import org.etsi.osl.tmf.stm653.model.ServiceTestSpecification; +import org.etsi.osl.tmf.stm653.model.ServiceTestSpecificationCreate; +import org.etsi.osl.tmf.stm653.model.ServiceTestSpecificationUpdate; +import org.etsi.osl.tmf.stm653.repo.ServiceTestSpecificationRepository; +import org.etsi.osl.tmf.util.AttachmentUtil; +import org.hibernate.Hibernate; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import jakarta.persistence.EntityManagerFactory; +import jakarta.validation.Valid; + +/** + * @author ctranoris + * + */ +@Service +public class ServiceTestSpecificationRepoService { + + private static final transient Log logger = LogFactory.getLog(ServiceTestSpecificationRepoService.class.getName()); + + @Autowired + ServiceTestSpecificationRepository aServiceTestSpecificationRepo; + + private SessionFactory sessionFactory; + + + + @Autowired + AttachmentRepoService attachmentRepoService; + + + private static final String METADATADIR = System.getProperty("user.home") + File.separator + ".attachments" + + File.separator + "metadata" + File.separator; + + @Autowired + ObjectMapper objectMapper; + + @Autowired + public ServiceTestSpecificationRepoService(EntityManagerFactory factory) { + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + public ServiceTestSpecification addServiceTestSpecification( + @Valid ServiceTestSpecificationCreate serviceServiceTestSpecification) { + + ServiceTestSpecification serviceSpec = new ServiceTestSpecification(); + serviceSpec = this.updateServiceTestSpecDataFromAPIcall(serviceSpec, serviceServiceTestSpecification); + serviceSpec = this.aServiceTestSpecificationRepo.save(serviceSpec); + + return this.aServiceTestSpecificationRepo.save(serviceSpec); + } + + private ServiceTestSpecification updateServiceTestSpecDataFromAPIcall(ServiceTestSpecification serviceSpec, + @Valid ServiceTestSpecificationUpdate serviceSpecUpd) { + + if (serviceSpecUpd.getName() != null) { + serviceSpec.setName(serviceSpecUpd.getName()); + } + + if (serviceSpecUpd.getDescription() != null) { + serviceSpec.setDescription(serviceSpecUpd.getDescription()); + + } + + if (serviceSpecUpd.isIsBundle() != null) { + serviceSpec.isBundle(serviceSpecUpd.isIsBundle()); + + } + + serviceSpec.setLastUpdate(OffsetDateTime.now(ZoneOffset.UTC)); + + if (serviceSpecUpd.getLifecycleStatus() != null) { + serviceSpec.setLifecycleStatusEnum(ELifecycle.getEnum(serviceSpecUpd.getLifecycleStatus())); + } + + if (serviceSpecUpd.getVersion() != null) { + serviceSpec.setVersion(serviceSpecUpd.getVersion()); + } + + /** + * Update Attachment list + */ + if (serviceSpecUpd.getAttachment() != null) { + // reattach attachments fromDB + + Map idAddedUpdated = new HashMap<>(); + + for (AttachmentRefOrValue ar : serviceSpecUpd.getAttachment()) { + // find attachmet by id and reload it here. + // we need the attachment model from resource spec models + boolean idexists = false; + for (AttachmentRefOrValue orinalAtt : serviceSpec.getAttachment()) { + if (orinalAtt.getId().equals(ar.getId())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getId(), true); + break; + } + } + + if (!idexists) { + serviceSpec.getAttachment().add(ar); + idAddedUpdated.put(ar.getId(), true); + } + } + + List toRemove = new ArrayList<>(); + for (AttachmentRefOrValue ss : serviceSpec.getAttachment()) { + if (idAddedUpdated.get(ss.getId()) == null) { + toRemove.add(ss); + } + } + + for (AttachmentRefOrValue ar : toRemove) { + serviceSpec.getAttachment().remove(ar); + } + + } + + /** + * Update ServiceSpecCharacteristic list We need to compare by name, since IDs + * will not exist + */ + if (serviceSpecUpd.getSpecCharacteristic() != null) { + // reattach attachments fromDB + + Map idAddedUpdated = new HashMap<>(); + + for (CharacteristicSpecification charUpd : serviceSpecUpd.getSpecCharacteristic()) { + + boolean nameExists = false; + for (CharacteristicSpecification originalSpecChar : serviceSpec.getSpecCharacteristic()) { + if (originalSpecChar.getName().equals(charUpd.getName())) { + nameExists = true; + idAddedUpdated.put(originalSpecChar.getName(), true); + originalSpecChar.updateWith(charUpd); + break; + } + } + + if (!nameExists) { + serviceSpec.getSpecCharacteristic().add(new CharacteristicSpecification(charUpd)); + idAddedUpdated.put(charUpd.getName(), true); + } + + } + + List toRemove = new ArrayList<>(); + for (CharacteristicSpecification ss : serviceSpec.getSpecCharacteristic()) { + if (idAddedUpdated.get(ss.getName()) == null) { + toRemove.add(ss); + } + } + + for (CharacteristicSpecification serviceSpecCharacteristic : toRemove) { + serviceSpec.getSpecCharacteristic().remove(serviceSpecCharacteristic); + } + + } + + /** + * Update RelatedParty list + */ + if (serviceSpecUpd.getRelatedParty() != null) { + // reattach fromDB + Map idAddedUpdated = new HashMap<>(); + + for (RelatedParty rp : serviceSpecUpd.getRelatedParty()) { + + boolean idexists = false; + for (RelatedParty originalRP : serviceSpec.getRelatedParty()) { + if (originalRP.getId().equals(rp.getId())) { + idexists = true; + idAddedUpdated.put(originalRP.getId(), true); + break; + } + } + if (!idexists) { + serviceSpec.getRelatedParty().add(rp); + idAddedUpdated.put(rp.getId(), true); + } + } + List toRemove = new ArrayList<>(); + for (RelatedParty ss : serviceSpec.getRelatedParty()) { + if (idAddedUpdated.get(ss.getId()) == null) { + toRemove.add(ss); + } + } + + for (RelatedParty ar : toRemove) { + serviceSpec.getRelatedParty().remove(ar); + } + } + + /** + * Update ServiceSpecRelationship list + */ + + if (serviceSpecUpd.getServiceTestSpecRelationship() != null) { + + // reattach attachments fromDB + Map idAddedUpdated = new HashMap<>(); + + for (ServiceTestSpecRelationship ar : serviceSpecUpd.getServiceTestSpecRelationship()) { + // find ServiceSpecRelationship by id and reload it here. + // we need the ServiceSpecRelationship model from spec models + boolean idexists = false; + for (ServiceTestSpecRelationship orinalAtt : serviceSpec.getServiceTestSpecRelationship()) { + if (orinalAtt.getId().equals(ar.getId())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getId(), true); + break; + } + } + + if (!idexists) { + serviceSpec.getServiceTestSpecRelationship().add(ar); + idAddedUpdated.put(ar.getId(), true); + + } + } + + List toRemove = new ArrayList<>(); + for (ServiceTestSpecRelationship ss : serviceSpec.getServiceTestSpecRelationship()) { + if (idAddedUpdated.get(ss.getId()) == null) { + toRemove.add(ss); + } + } + + for (ServiceTestSpecRelationship ar : toRemove) { + serviceSpec.getServiceTestSpecRelationship().remove(ar); + } + + } + + TimePeriod tp = new TimePeriod(); + if (serviceSpecUpd instanceof ServiceTestSpecificationCreate) + if (((ServiceTestSpecificationCreate) serviceSpecUpd).getValidFor() != null) { + tp.setStartDateTime(((ServiceTestSpecificationCreate) serviceSpecUpd).getValidFor().getStartDateTime()); + tp.setEndDateTime(((ServiceTestSpecificationCreate) serviceSpecUpd).getValidFor().getEndDateTime()); + serviceSpec.setValidFor(tp); + } + + if (serviceSpecUpd.getRelatedServiceSpecification() != null) { + // reattach attachments fromDB + Map idAddedUpdated = new HashMap<>(); + + for (ServiceSpecificationRef ar : serviceSpecUpd.getRelatedServiceSpecification()) { + // find ServiceSpecRelationship by id and reload it here. + // we need the ServiceSpecRelationship model from spec models + boolean idexists = false; + for (ServiceSpecificationRef orinalAtt : serviceSpec.getRelatedServiceSpecification()) { + if (orinalAtt.getId().equals(ar.getId())) { + idexists = true; + idAddedUpdated.put(orinalAtt.getId(), true); + break; + } + } + + if (!idexists) { + serviceSpec.getRelatedServiceSpecification().add(ar); + idAddedUpdated.put(ar.getId(), true); + + } + } + + List toRemove = new ArrayList<>(); + for (ServiceSpecificationRef ss : serviceSpec.getRelatedServiceSpecification()) { + if (idAddedUpdated.get(ss.getId()) == null) { + toRemove.add(ss); + } + } + + for (ServiceSpecificationRef ar : toRemove) { + serviceSpec.getRelatedServiceSpecification().remove(ar); + } + + } + + return serviceSpec; + + } + + public ServiceTestSpecification findByUuidEager(String id) { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); // instead of begin transaction, is it possible to continue? + ServiceTestSpecification dd = null; + try { + dd = session.get(ServiceTestSpecification.class, id); + if (dd == null) { + return this.findByUuid(id);// last resort + } + Hibernate.initialize(dd.getAttachment()); + Hibernate.initialize(dd.getRelatedParty()); + Hibernate.initialize(dd.getServiceTestSpecRelationship() ); + Hibernate.initialize(dd.getSpecCharacteristic()); + Hibernate.initialize(dd.getConstraint()); + Hibernate.initialize(dd.getEntitySpecRelationship() ); + Hibernate.initialize(dd.getTestMeasureDefinition() ); + + for (CharacteristicSpecification schar : dd.getSpecCharacteristic()) { + Hibernate.initialize(schar.getCharacteristicValueSpecification() ); + Hibernate.initialize(schar.getCharSpecRelationship()); + + } + Hibernate.initialize(dd.getRelatedServiceSpecification() ); + + tx.commit(); + } finally { + session.close(); + } + return dd; + } + + public List findAll() { + return (List) this.aServiceTestSpecificationRepo.findByOrderByName(); + } + + public Void deleteByUuid(String id) { + Optional optionalCat = this.aServiceTestSpecificationRepo.findByUuid(id); + ServiceTestSpecification s = optionalCat.get(); + if (s == null) { + return null; + } + + this.aServiceTestSpecificationRepo.delete(s); + return null; + } + + /** + * @param myfields + * @param allParams + * @return + */ + public List findAll(String myfields, @Valid Map allParams) { + // this can be refactored properly in future (see for example implementation in ServiceSpecificationRepo) + return findAll(); + } + + public ServiceTestSpecification updateServiceTestSpecification(String id, + @Valid ServiceTestSpecificationUpdate serviceServiceSpecification) { + + ServiceTestSpecification s = this.findByUuid(id); + if (s == null) { + return null; + } + ServiceTestSpecification serviceSpec = s; + serviceSpec = this.updateServiceTestSpecDataFromAPIcall(serviceSpec, serviceServiceSpecification); + + serviceSpec = this.aServiceTestSpecificationRepo.save(serviceSpec); + + + return this.aServiceTestSpecificationRepo.save(serviceSpec); + } + + public ServiceTestSpecification findByUuid(String id) { + Optional optionalCat = this.aServiceTestSpecificationRepo.findByUuid(id); + return optionalCat.orElse(null); + } + + public Attachment addAttachmentToServiceTest(String id, + //@Valid Attachment attachment, + @Valid MultipartFile afile, + String urlpath) { + Optional s = this.aServiceTestSpecificationRepo.findByUuid(id); + if (s.get() == null) { + return null; + } + + ServiceTestSpecification spec = s.get(); + Attachment att = new Attachment(); + att = this.attachmentRepoService.addAttachment(att); + att.setMimeType(afile.getContentType()); + + + String tempDir = METADATADIR + spec.getId() + "/attachments/" + att.getId() + File.separator; + + try { + Files.createDirectories(Paths.get(tempDir)); + String aFileNamePosted = afile.getOriginalFilename();// AttachmentUtil.getFileName(image.getHeaders()); + logger.info("aFileNamePosted = " + aFileNamePosted); + // If there is an icon name + if (!aFileNamePosted.equals("")) { + // Save the icon File + String targetfile = AttachmentUtil.saveFile(afile, tempDir); + logger.info("afile saved to = " + targetfile); + att.setContent(targetfile); + att.setName(aFileNamePosted); + // Save the file destination + urlpath = urlpath.replace("tmf-api/", ""); + att.setUrl( urlpath + "/" + att.getId() + "/" + + aFileNamePosted); + att = this.attachmentRepoService.updateAttachment( att ); + } + } catch (IOException e) { + e.printStackTrace(); + return null; + } + + AttachmentRefOrValue attref = new AttachmentRefOrValue(); + attref.setId(att.getId()); + attref.setDescription(att.getDescription()); + attref.setUrl(att.getUrl()); + attref.setName(att.getName()); + + spec.addAttachmentItem(attref); + this.aServiceTestSpecificationRepo.save(spec); + + + return att; + } + + public Attachment getAttachment(String attid) { + return this.attachmentRepoService.findByUuid( attid ); + } + + + + + +} diff --git a/src/main/java/org/etsi/osl/tmf/util/AddUserAsOwnerToRelatedParties.java b/src/main/java/org/etsi/osl/tmf/util/AddUserAsOwnerToRelatedParties.java new file mode 100644 index 0000000..8ffcc46 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/util/AddUserAsOwnerToRelatedParties.java @@ -0,0 +1,72 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.tmf.util; + +import java.util.ArrayList; +import java.util.List; +import org.etsi.osl.tmf.common.model.UserPartRoleType; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import jakarta.validation.Valid; + +/** + * + * this class just has method to get a prtyrole + * + * @author ctranoris + * + */ +public class AddUserAsOwnerToRelatedParties { + + public static List addUser(String username, String userid, + UserPartRoleType prt, + String extendedInfo, + @Valid List relatedParty) { + List rpRes; + + if (relatedParty!=null) { + rpRes = relatedParty; + } else { + rpRes = new ArrayList(); + } + + + boolean nameFound = false; + for (RelatedParty relatedParty2 : rpRes) { + if (relatedParty2.getName().equals(username) + && relatedParty2.getRole().equals( prt.toString())) { + nameFound = true; + break; + } + } + + if (!nameFound) { + RelatedParty rp = new RelatedParty(); + rp.setId( userid ); + rp.setName(username); + rp.setRole(prt.toString()); + rp.setReferredType("SimpleUsername_Individual"); + rp.setExtendedInfo(extendedInfo); + rpRes.add(rp); + } + + return rpRes; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/util/AttachmentUtil.java b/src/main/java/org/etsi/osl/tmf/util/AttachmentUtil.java new file mode 100644 index 0000000..9f6d14e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/util/AttachmentUtil.java @@ -0,0 +1,106 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ + + +package org.etsi.osl.tmf.util; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; + +import org.springframework.web.multipart.MultipartFile; + +/** + * @author ctranoris + * + */ +public class AttachmentUtil { + + + + + /** + * @param att + * @param filePath + * @return + */ + public static String saveFile(MultipartFile att, String filePath) { + File file = new File(filePath + att.getOriginalFilename()); + try { + att.transferTo(file); + return file.getPath(); + + } catch (IllegalStateException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + +// DataHandler handler = att.getDataHandler(); +// try { +// InputStream stream = handler.getInputStream(); +// MultivaluedMap map = att.getHeaders(); +// File f = new File(filePath); +// OutputStream out = new FileOutputStream(f); +// +// int read = 0; +// byte[] bytes = new byte[1024]; +// while ((read = stream.read(bytes)) != -1) { +// out.write(bytes, 0, read); +// } +// stream.close(); +// out.flush(); +// out.close(); +// return f.getAbsolutePath(); +// +// } catch (Exception e) { +// e.printStackTrace(); +// } + return null; + } + + /** + * @param att + * @param filePath + * @return + * @throws IOException + */ + public static String saveFile(ByteArrayOutputStream att, String filePath) throws IOException { + + File f = new File(filePath); + FileOutputStream fos; + try { + fos = new FileOutputStream(f); + att.writeTo(fos); + fos.close(); + return f.getAbsolutePath(); + } catch (IOException ioe) { + // Handle exception here + ioe.printStackTrace(); + } finally { + } + + return null; + + } +} diff --git a/src/main/java/org/etsi/osl/tmf/util/KrokiClient.java b/src/main/java/org/etsi/osl/tmf/util/KrokiClient.java new file mode 100644 index 0000000..e84bebe --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/util/KrokiClient.java @@ -0,0 +1,47 @@ +package org.etsi.osl.tmf.util; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.Base64; +import java.util.zip.Deflater; + +public class KrokiClient { + + + + public static String encodedGraph(String body) { + + String graph = body; + if ( body == null ) { + graph = "blockdiag {}"; + } + try { + byte[] gg = encode( graph ); + String s = new String( gg, StandardCharsets.UTF_8); + return s; + + } catch (IOException e) { + e.printStackTrace(); + } + + return null; + } + + + + private static byte[] encode(String decoded) throws IOException { + return Base64.getUrlEncoder().encode(compress(decoded.getBytes())); + } + + private static byte[] compress(byte[] source) throws IOException { + Deflater deflater = new Deflater(Deflater.BEST_COMPRESSION); + deflater.setInput(source); + deflater.finish(); + + byte[] buffer = new byte[2048]; + int compressedLength = deflater.deflate(buffer); + byte[] result = new byte[compressedLength]; + System.arraycopy(buffer, 0, result, 0, compressedLength); + return result; + } +} diff --git a/src/main/resources/application-testing.yml b/src/main/resources/application-testing.yml new file mode 100644 index 0000000..b9e89cc --- /dev/null +++ b/src/main/resources/application-testing.yml @@ -0,0 +1,167 @@ +server: + port: 13082 + servlet: + context-path : /tmf-api/ +spring: + config: + activate: + on-profile: "testing" + application: + name: openslice-service-catalog-management-api-testing + datasource: + url: jdbc:h2:mem:db;DB_CLOSE_DELAY=-1 + password: sa + username: sa + jpa: + database-platform: org.hibernate.dialect.H2Dialect + hibernate: + ddl-auto: create-drop + hbm2ddl.auto: create-drop + properties: + hibernate: + globally_quoted_identifiers: true + globally_quoted_identifiers_skip_column_definitions: true + show-sql: false + generate-ddl: true + + # Embedded ActiveMQ Configuration Example + activemq: + broker-url: vm://embedded?broker.persistent=false,useShutdownHook=false + in-memory: true + non-blocking-redelivery: true + pool: + block-if-full: true + block-if-full-timeout: -1 + create-connection-on-startup: true + enabled: false + expiry-timeout: 0 + idle-timeout: 30000 + max-connections: 1 + maximum-active-session-per-connection: 500 + reconnect-on-exception: true + time-between-expiration-check: -1 + use-anonymous-producers: true + # Spring JMS Settings + jms: + listener: + acknowledge-mode: auto + auto-startup: true + concurrency: 5 + max-concurrency: 10 + pub-sub-domain: false + template: + default-destination: + delivery-mode: non_persistent + priority: 100 + qos-enabled: true + receive-timeout: 1000 + time-to-live: 36000 + +logging: + level: + root: INFO + org.springframework: INFO + org.hibernate.SQL: INFO + org.hibernate.type.descriptor.sql.BasicBinder: INFO + pattern: + console: "%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" + file: "%d %p %c{1.} [%t] %m%n" + + +swagger: + authserver: http://localhost/auth/realms/openslice + clientid: "osapiWebClientId" + clientsecret: "secret" + +kroki: + serverurl: http://localhost:8000 + +oauthsign: + key: "XXX" + +#QUEUE MESSAGES +CATALOG_GET_SERVICEORDERS: "jms:queue:CATALOG.GET.SERVICEORDERS" +CATALOG_GET_SERVICEORDER_BY_ID: "jms:queue:CATALOG.GET.SERVICEORDER_BY_ID" +CATALOG_ADD_SERVICEORDER: "jms:queue:CATALOG.ADD.SERVICEORDER" +CATALOG_UPD_SERVICEORDER_BY_ID: "jms:queue:CATALOG.UPD.SERVICEORDER_BY_ID" +CATALOG_GET_SERVICESPEC_BY_ID: "jms:queue:CATALOG.GET.SERVICESPEC_BY_ID" +CATALOG_ADD_SERVICESPEC: "jms:queue:CATALOG.ADD.SERVICESPEC" +CATALOG_UPD_SERVICESPEC: "jms:queue:CATALOG.UPD.SERVICESPEC" +CATALOG_UPDADD_SERVICESPEC: "jms:queue:CATALOG.UPDADD.SERVICESPEC" +CATALOG_GET_INITIAL_SERVICEORDERS_IDS: "jms:queue:CATALOG.GET.INITIAL_SERVICEORDERS" +CATALOG_GET_SERVICEORDER_IDS_BY_STATE: "jms:queue:CATALOG.GET.ACKNOWLEDGED_SERVICEORDERS" +CATALOG_ADD_SERVICE: "jms:queue:CATALOG.ADD.SERVICE" +CATALOG_UPD_SERVICE: "jms:queue:CATALOG.UPD.SERVICE" +CATALOG_GET_SERVICE_BY_ID: "jms:queue:CATALOG.GET.SERVICE" +CATALOG_GET_SERVICE_BY_ORDERID: "jms:queue:CATALOG.GET.SERVICE_BY_ORDERID" +CATALOG_SERVICE_QUEUE_ITEMS_GET: "jms:queue:CATALOG.SERVICEQUEUEITEMS.GET" +CATALOG_SERVICE_QUEUE_ITEM_UPD: "jms:queue:CATALOG.SERVICEQUEUEITEM.UPDATE" +CATALOG_SERVICE_QUEUE_ITEM_DELETE: "jms:queue:CATALOG.SERVICEQUEUEITEM.DELETE" +CATALOG_GET_PARTNER_ORGANIZATON_BY_ID: "jms:queue:CATALOG.GET.PARTNER_ORGANIZATION_BY_ID" +CATALOG_UPDATE_PARTNER_ORGANIZATION: "jms:queue:CATALOG.UPD.PARTNER_ORGANIZATION" +CATALOG_SERVICES_TO_TERMINATE: "jms:queue:CATALOG.GET.SERVICETOTERMINATE" +CATALOG_SERVICES_OF_PARTNERS: "jms:queue:CATALOG.GET.SERVICESOFPARTNERS" + +CATALOG_GET_EXTERNAL_SERVICE_PARTNERS: "jms:queue:CATALOG.GET.EXTERNALSERVICEPARTNERS" +CATALOG_UPD_EXTERNAL_SERVICESPEC: "jms:queue:CATALOG.UPD.EXTERNAL_SERVICESPEC" + +#ALARMS +ALARMS_ADD_ALARM: "jms:queue:ALARMS.ADD.ALARM" +ALARMS_UPDATE_ALARM: "jms:queue:ALARMS.UPDATE.ALARM" +ALARMS_GET_ALARM: "jms:queue:ALARMS.GET.ALARM" + +#EVENT TOPICS IN Message Bus +EVENT_SERVICE_CREATE: "jms:topic:EVENT.SERVICE.CREATE" +EVENT_SERVICE_STATE_CHANGED: "jms:topic:EVENT.SERVICE.STATECHANGED" +EVENT_SERVICE_DELETE: "jms:topic:EVENT.SERVICE.DELETE" +EVENT_SERVICE_ATTRIBUTE_VALUE_CHANGED: "jms:topic:EVENT.SERVICE.ATTRCHANGED" +EVENT_SERVICE_ORDER_CREATE: "jms:topic:EVENT.SERVICEORDER.CREATE" +EVENT_SERVICE_ORDER_STATE_CHANGED: "jms:topic:EVENT.SERVICEORDER.STATECHANGED" +EVENT_SERVICE_ORDER_DELETE: "jms:topic:EVENT.SERVICEORDER.DELETE" +EVENT_SERVICE_ORDER_ATTRIBUTE_VALUE_CHANGED: "jms:topic:EVENT.SERVICEORDER.ATTRCHANGED" +EVENT_CUSTOMER_CREATE: "jms:topic:EVENT.CUSTOMER.CREATE" +EVENT_CUSTOMER_CHANGED: "jms:topic:EVENT.CUSTOMER.CHANGE" +EVENT_INDIVIDUAL_CREATE: "jms:topic:EVENT.INDIVIDUAL.CREATE" +EVENT_INDIVIDUAL_CHANGED: "jms:topic:EVENT.INDIVIDUAL.CHANGE" +EVENT_ORGANIZATION_CREATE: "jms:topic:EVENT.ORGANIZATION.CREATE" +EVENT_ORGANIZATION_CHANGED: "jms:topic:EVENT.ORGANIZATION.CHANGE" +EVENT_ALARM_CREATE: "jms:topic:EVENT.ALARM.CREATE" + +#QUEUE MESSSAGES WITH VNFNSD CATALOG +NFV_CATALOG_GET_NSD_BY_ID: "jms:queue:NFVCATALOG.GET.NSD_BY_ID" +GET_USER_BY_USERNAME: "direct:get_user_byusername" + +#RESOURCES MESSAGES +CATALOG_ADD_RESOURCE: "jms:queue:CATALOG.ADD.RESOURCE" +CATALOG_UPD_RESOURCE: "jms:queue:CATALOG.UPD.RESOURCE" +CATALOG_UPDADD_RESOURCE: "jms:queue:CATALOG.UPDADD.RESOURCE" +CATALOG_GET_RESOURCE_BY_ID: "jms:queue:CATALOG.GET.RESOURCE" +CATALOG_ADD_RESOURCESPEC: "jms:queue:CATALOG.ADD.RESOURCESPEC" +CATALOG_UPD_RESOURCESPEC: "jms:queue:CATALOG.UPD.RESOURCESPEC" +CATALOG_UPDADD_RESOURCESPEC: "jms:queue:CATALOG.UPDADD.RESOURCESPEC" +CATALOG_GET_RESOURCESPEC_BY_ID: "jms:queue:CATALOG.GET.RESOURCESPEC_BY_ID" +CATALOG_GET_RESOURCESPEC_BY_ΝAME_CATEGORY: "jms:queue:CATALOG.GET.RESOURCESPEC_BY_ΝAME_CATEGORY" +EVENT_RESOURCE_CREATE: "jms:topic:EVENT.RESOURCE.CREATE" +EVENT_RESOURCE_STATE_CHANGED: "jms:topic:EVENT.RESOURCE.STATECHANGED" +EVENT_RESOURCE_DELETE: "jms:topic:EVENT.SERVICE.RESOURCE" +EVENT_RESOURCE_ATTRIBUTE_VALUE_CHANGED: "jms:topic:EVENT.RESOURCE.ATTRCHANGED" +CATALOG_RESOURCES_OF_PARTNERS: "jms:queue:CATALOG.GET.SERVICESOFPARTNERS" + +#LCM MESSAGES +CATALOG_GET_LCMRULE_BY_ID: "jms:queue:CATALOG.GET.LCMRULE" +CATALOG_GET_LCMRULES_BY_SPECID_PHASE: "jms:queue:CATALOG.GET.LCMRULES_BY_SPECID_PHASE" + + +#SERVICE_TEST +CATALOG_GET_SERVICETESTSPEC_BY_ID: "jms:queue:CATALOG.GET.SERVICETESTSPEC_BY_ID" +CATALOG_ADD_SERVICETEST: "jms:queue:CATALOG.ADD.SERVICETEST" +CATALOG_UPD_SERVICETEST: "jms:queue:CATALOG.UPD.SERVICETEST" +CATALOG_GET_SERVICETEST_BY_ID: "jms:queue:CATALOG.GET.SERVICETEST" + +#NS ACTIONS +NFV_CATALOG_NSACTIONS_SCALE: "jms:queue:NSACTIONS.SCALE" +NFV_CATALOG_NS_LCMCHANGED: "jms:topic:NFV_CATALOG_NS_LCMCHANGED" + +#RESERVATION_API +RESERVATION_CREATE: "jms:queue:RESERVATION.ADD" +RESERVATION_AVAILABILITY_CHECK: "jms:queue:RESERVATION.AVAILABILITYCHECK" diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..e9d32ce --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,203 @@ +origins: http://localhost,http://localhost:13082,http://127.0.0.1:13082,https://localhost, +permit-all: /tmf-api/** + + +server: + port: 13082 + servlet: + context-path : /tmf-api + error: + include-message: always + ssl: + enabled: false + +springdoc: + version: '@springdoc.version@' + writer-with-default-pretty-printer: true + swagger-ui: + display-request-duration: true + groups-order: ASC + operationsSorter: method + disable-swagger-default-url: true + use-root-path: true + oauth: + client-id: osapiWebClientId + clientsecret: "secret" + use-pkce-with-authorization-code-grant: false + oAuthFlow: + authorizationUrl: http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/auth + tokenUrl: http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/token + show-actuator: true + +spring-addons: + issuers: + - uri: http://keycloak:8080/auth/realms/openslice + username-json-path: $.preferred_username + claims: + - jsonPath: $.realm_access.roles + - jsonPath: $.resource_access.*.roles + +spring: + config: + activate: + on-profile: "default" + application: + name: openslice-service-catalog-management-api + datasource: + url: jdbc:mysql://localhost:13306/ostmfdb?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC + password: letmein + username: root + hikari: + minimumIdle: 2 + maximumPoolSize: 40 + idleTimeout: 120000 + connectionTimeout: 400000 + leakDetectionThreshold: 100000 + jpa: + database-platform: org.etsi.osl.tmf.LocalMysqlDialect + hibernate: + ddl-auto: update + show-sql: false + generate-ddl: true + properties.hibernate.current_session_context_class: org.springframework.orm.hibernate5.SpringSessionContext + properties: + hibernate: + connection: + characterEncoding: utf-8 + CharSet: utf-8 + useUnicode: true + servlet: + multipart.max-file-size: 10MB + multipart.max-request-size: 10MB + activemq: + brokerUrl: tcp://localhost:61616?jms.watchTopicAdvisories=false + user: artemis + password: artemis + pool: + enabled: true + max-connections: 100 + packages: + trust-all: true + security: + oauth2: + resourceserver: + jwt: + issuer-uri: http://keycloak:8080/auth/realms/openslice + jwk-set-uri: http://keycloak:8080/auth/realms/openslice/.well-known/openid-configuration + + +logging: + level: + root: INFO + portal.api: INFO + org.etsi.osl.tmf.*: DEBUG + org.springframework: INFO + org.apache.camel: INFO + com.zaxxer.hikari: INFO + pattern: + console: "%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" + file: "%d %p %c{1.} [%t] %m%n" + + + + +kroki: + serverurl: http://localhost:8000 + +oauthsign: + key: "EK97Y7Y9WPGG1MEG" + +#QUEUE MESSAGES +CATALOG_GET_SERVICEORDERS: "jms:queue:CATALOG.GET.SERVICEORDERS" +CATALOG_GET_SERVICEORDER_BY_ID: "jms:queue:CATALOG.GET.SERVICEORDER_BY_ID" +CATALOG_ADD_SERVICEORDER: "jms:queue:CATALOG.ADD.SERVICEORDER" +CATALOG_UPD_SERVICEORDER_BY_ID: "jms:queue:CATALOG.UPD.SERVICEORDER_BY_ID" +CATALOG_GET_SERVICESPEC_BY_ID: "jms:queue:CATALOG.GET.SERVICESPEC_BY_ID" +CATALOG_ADD_SERVICESPEC: "jms:queue:CATALOG.ADD.SERVICESPEC" +CATALOG_UPD_SERVICESPEC: "jms:queue:CATALOG.UPD.SERVICESPEC" +CATALOG_UPDADD_SERVICESPEC: "jms:queue:CATALOG.UPDADD.SERVICESPEC" + + +CATALOG_GET_INITIAL_SERVICEORDERS_IDS: "jms:queue:CATALOG.GET.INITIAL_SERVICEORDERS" +CATALOG_GET_SERVICEORDER_IDS_BY_STATE: "jms:queue:CATALOG.GET.ACKNOWLEDGED_SERVICEORDERS" +CATALOG_ADD_SERVICE: "jms:queue:CATALOG.ADD.SERVICE" +CATALOG_UPD_SERVICE: "jms:queue:CATALOG.UPD.SERVICE" +CATALOG_GET_SERVICE_BY_ID: "jms:queue:CATALOG.GET.SERVICE" +CATALOG_GET_SERVICE_BY_ORDERID: "jms:queue:CATALOG.GET.SERVICE_BY_ORDERID" +CATALOG_SERVICE_QUEUE_ITEMS_GET: "jms:queue:CATALOG.SERVICEQUEUEITEMS.GET" +CATALOG_SERVICE_QUEUE_ITEM_UPD: "jms:queue:CATALOG.SERVICEQUEUEITEM.UPDATE" +CATALOG_SERVICE_QUEUE_ITEM_DELETE: "jms:queue:CATALOG.SERVICEQUEUEITEM.DELETE" +CATALOG_GET_PARTNER_ORGANIZATON_BY_ID: "jms:queue:CATALOG.GET.PARTNER_ORGANIZATION_BY_ID" +CATALOG_UPDATE_PARTNER_ORGANIZATION: "jms:queue:CATALOG.UPD.PARTNER_ORGANIZATION" +CATALOG_SERVICES_TO_TERMINATE: "jms:queue:CATALOG.GET.SERVICETOTERMINATE" +CATALOG_SERVICES_OF_PARTNERS: "jms:queue:CATALOG.GET.SERVICESOFPARTNERS" + +CATALOG_GET_EXTERNAL_SERVICE_PARTNERS: "jms:queue:CATALOG.GET.EXTERNALSERVICEPARTNERS" +CATALOG_UPD_EXTERNAL_SERVICESPEC: "jms:queue:CATALOG.UPD.EXTERNAL_SERVICESPEC" + +#ALARMS +ALARMS_ADD_ALARM: "jms:queue:ALARMS.ADD.ALARM" +ALARMS_UPDATE_ALARM: "jms:queue:ALARMS.UPDATE.ALARM" +ALARMS_GET_ALARM: "jms:queue:ALARMS.GET.ALARM" + +#EVENT TOPICS IN Message Bus +EVENT_SERVICE_CREATE: "jms:topic:EVENT.SERVICE.CREATE" +EVENT_SERVICE_STATE_CHANGED: "jms:topic:EVENT.SERVICE.STATECHANGED" +EVENT_SERVICE_DELETE: "jms:topic:EVENT.SERVICE.DELETE" +EVENT_SERVICE_ATTRIBUTE_VALUE_CHANGED: "jms:topic:EVENT.SERVICE.ATTRCHANGED" +EVENT_SERVICE_ORDER_CREATE: "jms:topic:EVENT.SERVICEORDER.CREATE" +EVENT_SERVICE_ORDER_STATE_CHANGED: "jms:topic:EVENT.SERVICEORDER.STATECHANGED" +EVENT_SERVICE_ORDER_DELETE: "jms:topic:EVENT.SERVICEORDER.DELETE" +EVENT_SERVICE_ORDER_ATTRIBUTE_VALUE_CHANGED: "jms:topic:EVENT.SERVICEORDER.ATTRCHANGED" +EVENT_CUSTOMER_CREATE: "jms:topic:EVENT.CUSTOMER.CREATE" +EVENT_CUSTOMER_CHANGED: "jms:topic:EVENT.CUSTOMER.CHANGE" +EVENT_INDIVIDUAL_CREATE: "jms:topic:EVENT.INDIVIDUAL.CREATE" +EVENT_INDIVIDUAL_CHANGED: "jms:topic:EVENT.INDIVIDUAL.CHANGE" +EVENT_ORGANIZATION_CREATE: "jms:topic:EVENT.ORGANIZATION.CREATE" +EVENT_ORGANIZATION_CHANGED: "jms:topic:EVENT.ORGANIZATION.CHANGE" +EVENT_ALARM_CREATE: "jms:topic:EVENT.ALARM.CREATE" + +#QUEUE MESSSAGES WITH VNFNSD CATALOG +NFV_CATALOG_GET_NSD_BY_ID: "jms:queue:NFVCATALOG.GET.NSD_BY_ID" + +#MISC +GET_USER_BY_USERNAME: "jms:queue:GET.USER_BY_USERNAME" + +#RESOURCES MESSAGES +CATALOG_ADD_RESOURCE: "jms:queue:CATALOG.ADD.RESOURCE" +CATALOG_UPD_RESOURCE: "jms:queue:CATALOG.UPD.RESOURCE" +CATALOG_UPDADD_RESOURCE: "jms:queue:CATALOG.UPDADD.RESOURCE" +CATALOG_GET_RESOURCE_BY_ID: "jms:queue:CATALOG.GET.RESOURCE" +CATALOG_ADD_RESOURCESPEC: "jms:queue:CATALOG.ADD.RESOURCESPEC" +CATALOG_UPD_RESOURCESPEC: "jms:queue:CATALOG.UPD.RESOURCESPEC" +CATALOG_UPDADD_RESOURCESPEC: "jms:queue:CATALOG.UPDADD.RESOURCESPEC" +CATALOG_GET_RESOURCESPEC_BY_ID: "jms:queue:CATALOG.GET.RESOURCESPEC_BY_ID" +CATALOG_GET_RESOURCESPEC_BY_ΝAME_CATEGORY: "jms:queue:CATALOG.GET.RESOURCESPEC_BY_ΝAME_CATEGORY" +EVENT_RESOURCE_CREATE: "jms:topic:EVENT.RESOURCE.CREATE" +EVENT_RESOURCE_STATE_CHANGED: "jms:topic:EVENT.RESOURCE.STATECHANGED" +EVENT_RESOURCE_DELETE: "jms:topic:EVENT.SERVICE.RESOURCE" +EVENT_RESOURCE_ATTRIBUTE_VALUE_CHANGED: "jms:topic:EVENT.RESOURCE.ATTRCHANGED" +CATALOG_RESOURCES_OF_PARTNERS: "jms:queue:CATALOG.GET.SERVICESOFPARTNERS" + +#LCM MESSAGES +CATALOG_GET_LCMRULE_BY_ID: "jms:queue:CATALOG.GET.LCMRULE" +CATALOG_GET_LCMRULES_BY_SPECID_PHASE: "jms:queue:CATALOG.GET.LCMRULES_BY_SPECID_PHASE" + + +#SERVICE_TEST +CATALOG_GET_SERVICETESTSPEC_BY_ID: "jms:queue:CATALOG.GET.SERVICETESTSPEC_BY_ID" +CATALOG_ADD_SERVICETEST: "jms:queue:CATALOG.ADD.SERVICETEST" +CATALOG_UPD_SERVICETEST: "jms:queue:CATALOG.UPD.SERVICETEST" +CATALOG_GET_SERVICETEST_BY_ID: "jms:queue:CATALOG.GET.SERVICETEST" + +#NS ACTIONS +NFV_CATALOG_NSACTIONS_SCALE: "jms:queue:NSACTIONS.SCALE" +NFV_CATALOG_NS_LCMCHANGED: "jms:topic:NFV_CATALOG_NS_LCMCHANGED" + +#RESERVATION_API +RESERVATION_CREATE: "jms:queue:RESERVATION.ADD" +RESERVATION_AVAILABILITY_CHECK: "jms:queue:RESERVATION.AVAILABILITYCHECK" + +--- + + diff --git a/src/main/resources/banner.txt b/src/main/resources/banner.txt new file mode 100644 index 0000000..74229cd --- /dev/null +++ b/src/main/resources/banner.txt @@ -0,0 +1,11 @@ + ___ ____ _ _ + / _ \ _ __ ___ _ __ / ___|| (_) ___ ___ + | | | | '_ \ / _ \ '_ \\___ \| | |/ __/ _ \ + | |_| | |_) | __/ | | |___) | | | (_| __/ + \___/| .__/ \___|_| |_|____/|_|_|\___\___| + |_| + __ __________________ + / / __ __ / __/_ __/ __/ _/ + / _ \/ // / / _/ / / _\ \_/ / + /_.__/\_, / /___/ /_/ /___/___/ + /___/ \ No newline at end of file diff --git a/src/main/resources/gst.json b/src/main/resources/gst.json new file mode 100644 index 0000000..246026d --- /dev/null +++ b/src/main/resources/gst.json @@ -0,0 +1,3504 @@ +{ + "name": "GST External", + "description": "GST external example", + "version": "5.0.0", + "isBundle": false, + "attachment": [ + ], + "relatedParty": [ + ], + "resourceSpecification": [ + ], + "serviceLevelSpecification": [ + ], + "serviceSpecCharacteristic": [ + { + "name": "Availability", + "configurable": false, + "description": "(Communication service) availability: percentage value of the amount of time the end-to-end communication service is delivered according to an agreed QoS, divided by the amount of time the system is expected to deliver the end-to-end service according to the specification in a specific area, see also 3GPP TS 22.261", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "percent", + "valueFrom": null, + "valueTo": null, + "valueType": "FLOAT", + "validFor": null, + "value": { + "value": "95", + "alias": "High availability" + } + } + + ] + }, + { + "name": "Area of Service", + "configurable": false, + "description": "This attribute specifies the area where the UEs can access a particular network slice. Therefore, the attribute specifies the list of the countries where the service will be provided. The list is specific to NSPs and their roaming agreements. In case the list comprises more than one entry, roaming agreements between the HPMN and the VPMNs are required.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "SET", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Operational", "role": "tag", "relationshipType": "tag" }, + { "name": "Scalability Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } , + { + "role": "Region specification", + "name": "Area of Service: Region specification", + "relationshipType": "dependency" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "Country", + "alias": "ISO 3166-1 Alpha-2 country codes" + } + } + + ] + }, + { + "name": "Area of Service: Region specification", + "configurable": false, + "description": "For every single country listed in the area of service attribute it needs to be indicated if the service will be provided in the whole country or just in part of the country. If the NSC requires a specific location, this attribute can be used to specify the regions of the country where the service will be provided. It needs to be completed for every country listed in the Area of service attribute. The list of regions is specific for each country and the way to define these regions is the decision of the NSC and NSP.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "SET", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Operational", "role": "tag", "relationshipType": "tag" }, + { "name": "Scalability Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "Full Country" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "Local Region A" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "Local Region B" + } + } + + ] + }, + { + "name": "Delay tolerance", + "configurable": false, + "description": "Provide the NSC with service delivery flexibility, especially for the vertical services that are not chasing a high system performance. For instance, the service will be delivered once the mobile system has sufficient resources or during the off-peak hours. For this type of traffic, it is not too critical how long it takes to deliver the amount of data, e.g. within hours, days, weeks, etc.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "BINARY", + + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "Not supported" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "Supported" + } + } + ] + }, + { + "name": "Deterministic communication", + "description": "This attribute defines if the network slice supports deterministic communication for.", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Performance", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" }, + { + "role": "Availabilty", + "name": "Deterministic communication: Availabilty", + "relationshipType": "dependency" + }, + { + "role": "Periodicity", + "name": "Deterministic communication: Periodicity", + "relationshipType": "dependency" + } + ] + }, + { + "name": "Deterministic communication: Availabilty", + "configurable": false, + "description": "Availability describes if the network slice supports deterministic communication.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Performance", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "Not supported" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "Supported" + } + } + ] + }, + { + "name": "Deterministic communication: Periodicity", + "configurable": false, + "description": "Periodicity provides a list of periodicities supported by the network slice.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional: This parameter is present when the “Availability” is set to 1.", + "valueType": "ARRAY", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Performance", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "Seconds", + "valueFrom": null, + "valueTo": null, + "valueType": "FLOAT", + "validFor": null, + "value": { + "value": "0" + } + } + ] + }, + { + "name": "Downlink throughput per network slice", + "description": "This attribute relates to the aggregated data rate in downlink for all UEs together in the network slice (this is not per UE).", + "serviceSpecCharRelationship": [ + { + "role": "Guaranteed downlink throughput", + "name": "Downlink throughput per network slice: Guaranteed downlink throughput", + "relationshipType": "dependency" + }, + { + "role": "Additional downlink GBR QoS flows", + "name": "Downlink throughput per network slice: Additional downlink GBR QoS flows", + "relationshipType": "dependency" + }, + { + "role": "Maximum downlink throughput", + "name": "Downlink throughput per network slice: Maximum downlink throughput", + "relationshipType": "dependency" + } + ] + }, + { + "name": "Downlink throughput per network slice: Guaranteed downlink throughput quota", + "configurable": false, + "description": "This parameter describes the guaranteed throughput/data rate supported by the network slice for the aggregate of all GBR QoS flows in downlink belonging to the set of all UEs using the network slice. Not including this parameter or if the value is 0, best effort traffic is expected where no minimum throughput is guaranteed.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { "name": "Scalability Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "kbps", + "valueFrom": null, + "valueTo": null, + "valueType": "FLOAT", + "validFor": null, + "value": { + "value": "0" + } + } + ] + }, + { + "name": "Downlink throughput per network slice: Additional downlink GBR QoS flows", + "configurable": false, + "description": "Additional downlink GBR QoS flows.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "SET", + "serviceSpecCharRelationship": [ + { "name": "Scalability Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "No additional downlink GBR QoS flows allowed" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "Additional downlink GBR QoS flows allowed" + } + } + + ] + }, + { + "name": "Downlink throughput per network slice: Maximum downlink throughput", + "configurable": false, + "description": "This parameter defines the maximum data rate supported by the network slice for all UEs together in downlink.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional: Either maximum downlink throughput per network slice or Maximum downlink throughput per UE shall be present", + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Scalability Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "kbps", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0" + } + } + ] + }, + { + "name": "Downlink maximum throughput per UE", + "configurable": false, + "description": "This attribute describes the maximum data rate supported by the network slice per UE in downlink. The attribute is comprised of a list of Service Category parameters with the associated Maximum Downlink Throughput per UE value.", + "serviceSpecCharRelationship": [ + { + "role": "Service category", + "name": "Downlink maximum throughput per UE: Service category", + "relationshipType": "dependency" + }, + { + "role": "Maximum downlink throughput per UE value", + "name": "Downlink maximum throughput per UE: Maximum downlink throughput per UE value", + "relationshipType": "dependency" + } + ] + }, + { + "name": "Downlink maximum throughput per UE: Service category", + "configurable": false, + "description": "This parameter defines a service category which may be assigned to certain groups of devices using the network slice. If present, it shall be associated with a Maximum Downlink Throughput Value parameter.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional: Attribute must be present if service is supported requiring guaranteed downlink throughput", + "valueType": "TEXT", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "Service Category" + } + } + ] + }, + { + "name": "Downlink maximum throughput per UE: Maximum downlink throughput per UE value", + "configurable": false, + "description": "This parameter defines the Maximum Downlink Throughput per UE value. This may be associated with a Service Category parameter.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional: Either maximum downlink throughput per network slice or Maximum downlink throughput per UE shall be present", + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Performance", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "kbps", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "50000" + } + } + ] + }, + { + "name": "Energy efficiency", + "description": "This attribute describes whether the network slice supports the energy efficiency KPI. The energy efficiency is evaluated only when the network is running.", + "serviceSpecCharRelationship": [ + { + "role": "Network slice energy efficiency", + "name": "Energy efficiency: Network slice energy efficiency", + "relationshipType": "dependency" + } + ] + }, + { + "name": "Energy efficiency: Network slice energy efficiency", + "configurable": false, + "description": "", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Operational", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "Bit / Joule", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "40", + "alias": "(Urban area)" + } + } + ] + }, + { + "name": "Group communication support", + "configurable": false, + "description": "This parameter describes which type of group communication is provided by the network slice. ", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "ENUM", + + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "not available" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "Single Cell Point to Multipoint (SCPTM)" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "Broadcast/Multicast" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "Broadcast/Multicast + SC-PTM" + } + } + ] + }, + { + "name": "Isolation level: Isolation", + "configurable": false, + "description": "Isolation is one of the key expectations of network slicing. A network slice instance may be fully or partly, logically and/or physically, isolated from another network slice instance. ", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "ENUM", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { + "role": "Physical Isolation", + "name": "Isolation level: Physical Isolation", + "relationshipType": "dependency" + }, + { + "role": "Logical Isolation", + "name": "Isolation level: Logical Isolation", + "relationshipType": "dependency" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "No Isolation" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "Physical Isolation" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "Logical Isolation" + } + } + ] + }, + { + "name": "Isolation level: Physical Isolation", + "configurable": false, + "description": "Physical network slices are physically separated (e.g. different rack, different hardware, different location, etc.). Process and threads isolation, Physical memory isolation, Physical network isolation", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional: This parameter must be present when Isolation is set to 1.", + "valueType": "ENUM", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "Process and threads Isolation" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "Physical memory Isolation" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "Physical network isolation" + } + } + ] + }, + { + "name": "Isolation level: Logical Isolation", + "configurable": false, + "description": "Logical network slices are logically separated. Virtual resources isolation a network slice has access to specific range of resources that do not overlap with other network slices (e.g. VM isolation). Network functions isolation NF (Network Function) is dedicated to the NSC, but virtual resources are shared. Tenant/Service Isolation NSC data are isolated from other NSCs, but virtual resources and NFs are shared", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional: ", + "valueType": "ENUM", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "Virtual resource isolation" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "Network Function isolation" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "Tenant/Service isolation" + } + } + ] + }, + { + "name": "Maximum supported packet size", + "configurable": false, + "description": "This attribute describes the maximum packet size supported by the network slice and may be important for URLLC (Ultra-Reliable Low Latency Communication) and MIoT (Massive IoT), or to indicate a supported maximum transmission unit (MTU).", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Performance", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "Bytes", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1500" + } + } + ] + }, + { + "name": "Mission critical support", + "configurable": false, + "description": "Mission-critical (MC) leads to a priority of the network slice relative to others, for C-plane (Control Plane) and U-plane (User Plane) decisions. This is relative to a customer provider relationship and to a PLMN (Public land Mobile Network)", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { + "role": "Mission-critical capability support", + "name": "Mission critical support: Mission-critical capability support", + "relationshipType": "dependency" + }, + { + "role": "Mission-critical service support", + "name": "Mission critical support: Mission-critical service support", + "relationshipType": "dependency" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "non-mission-critical" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "mission-critical" + } + } + ] + }, + { + "name": "Mission critical support: Mission-critical capability support", + "configurable": false, + "description": "Mission-critical (MC) leads to a priority of the network slice relative to others, for C-plane (Control Plane) and U-plane (User Plane) decisions. This is relative to a customer provider relationship and to a PLMN (Public land Mobile Network)", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional: Conditional: Specifies capabilities available to support mission-critical services. More than one capability may be supported at once. This parameter is optional when Mission critical support is set to 1 (mission-critical slice)", + "valueType": "ARRAY", + + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "Inter-user prioritization" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "Pre-emption" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "Local control" + } + } + ] + }, + { + "name": "Mission critical support: Mission-critical service support", + "configurable": false, + "description": "This attribute specifies whether or not the network slice supports mission-critical push-to-talk (MCPTT), mission-critical data (MCData)], mission-critical video (MCVideo), Isolated E-UTRAN Operation for Public Safety (IOPS), or mission-critical interworking", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional: This attribute must be present when Mission critical support is set to 1.", + "valueType": "ARRAY", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "MCPTT" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "MCData" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "MCVideo" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "4", + "alias": "IOPS" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "4", + "alias": "MC interworking" + } + } + ] + }, + { + "name": "MMTel support", + "configurable": false, + "description": "This attribute describes whether the network slice supports IP Multimedia Subsystem (IMS) and Multimedia Telephony Service MMTel. This parameter describes whether the GSMA PRD IR.92 0 compliant MMTel deployment is supported in the network slice", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "Not supported" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "Supported" + } + } + ] + }, + { + "name": "NB-IoT support", + "configurable": false, + "description": "This parameter describes whether NB-IoTis supported in the network slice", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "Not supported" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "Supported" + } + } + ] + }, + { + "name": "Network functions owned by Network Slice Customer", + "configurable": false, + "description": "A NSC can own some network functions. This attribute provides a list of network functions to be provided by the NSC. If the list is empty, or this attribute is not included, the NSC is not providing any network function relevant for the network slice", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "SET", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "Operational", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "UPF", + "alias": "UPF" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "UDM/AUSF", + "alias": "UDM/AUSF" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "AF", + "alias": "AF" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "PCF", + "alias": "PCF" + } + } + ] + }, + { + "name": "Maximum number of PDU sessions", + "configurable": false, + "description": "This attribute describes the maximum number of concurrent PDU supported by the network slice as specified by the Maximum number of PDU sessions parameter. If the network slice also requires taking into account PDN connections that can be handed over to the 5GS while the UEs are in the EPS, this is specified in the optional attribute EPS counting required. If the parameter EPS counting required is missing, then no counting happens of any PDN connections in EPS", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional: Either Number of connections or Number of terminals shall be present", + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Scalability Attribute", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "10000", + "alias": "PDU sessions" + } + } + ] + }, + { + "name": "Maximum number of PDU sessions: EPS counting required", + "configurable": false, + "description": "If this parameter indicates that EPS counting is required, the PDU sessions counting shall also take into account the PDN connections in the EPS connected to an APN that maps to a DNN/S-NSSAI of the network slice", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "", + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { "name": "Scalability Attribute", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "no" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "yes" + } + } + ] + }, + { + "name": "Maximum number of UEs", + "configurable": false, + "description": "This attribute describes the maximum number of UEs that can use the network slice simultaneously as specified by the Maximum number of UEs parameter. If the network slice also requires taking into account UEs using PDN connections that can be handed over to the 5GS while they are in the EPS, this is specified in the optional attribute EPS counting required. If the parameter EPS counting required is missing, then no counting of UEs happens while they are in EPS", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional: Either Number of connections or Number of terminals shall be present", + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Scalability Attribute", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "10000", + "alias": "terminals" + } + } + ] + }, + { + "name": "Maximum number of UEs: EPS counting required", + "configurable": false, + "description": "If this parameter indicates that EPS counting is required, the UE counting shall also take intoaccount the UEs in the EPS with at least one PDN connection in the network slice, i.e. it is required to count the UEs that have at least one PDU session connected to an APN that maps to a DNN/S-NSSAI of the network slice", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "", + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { "name": "Scalability Attribute", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "no" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "yes" + } + } + ] + }, + { + "name": "Performance monitoring", + "configurable": false, + "description": "This attribute provides the capability for NSC and NOP to monitor Key Quality Indicators (KQIs) and Key Performance Indicators (KPIs). KQIs reflect the end-to-end service performance and quality while KPIs reflect the performance of the network", + "regex": null, + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { + "role": "Availability", + "name": "Performance monitoring: Availability", + "relationshipType": "dependency" + }, + { + "role": "Monitoring sample frequency", + "name": "Performance monitoring: Monitoring sample frequency", + "relationshipType": "dependency" + } + ] + }, + { + "name": "Performance monitoring: Availability", + "configurable": false, + "description": "This parameter contains a list of KQIs and KPIs available for monitoring. If the list is empty this attribute is not available in the network slice and the other parameters might be ignored", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "SET", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Operational", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "None" + } + } + ] + }, + { + "name": "Performance monitoring: Monitoring sample frequency", + "configurable": false, + "description": "This parameter describes how often the KQIs and KPIs are monitored.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Operational", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "per second" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "per minute" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "per hour" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "4", + "alias": "conditional, e.g. in case a defined threshold is crossed" + } + } + ] + }, + { + "name": "Performance prediction", + "configurable": false, + "description": "This attribute defines the capability to allow the mobile system to predict the network and service status. Predictive QoS (Quality of Service) can be done for various Key Quality Indicators (KQIs) and Key Performance Indicators (KPIs). KQIs reflect the end-to-end service performance and quality, while KPIs reflect the performance of the network. The prediction is done for a specific point of time in the future and for a specific geolocation.", + "regex": null, + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { + "role": "Availability", + "name": "Performance prediction: Availability", + "relationshipType": "dependency" + }, + { + "role": "Prediction frequency", + "name": "Performance prediction: Prediction frequency", + "relationshipType": "dependency" + } + ] + }, + { + "name": "Performance prediction: Availability", + "configurable": false, + "description": "This parameter contains a list of KQIs and KPIs available for prediction. If the list is empty, the attribute is not available in the network slice and the other parameters might be ignored", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "ARRAY", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Operational", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "Throughput" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "Latency" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "Service Request Success Rate" + } + } + ] + }, + { + "name": "Performance prediction: Prediction frequency", + "configurable": false, + "description": "This parameter describes how often KQIs and KPIs prediction values are provided", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Operational", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "per second" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "per minute" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "per hour" + } + } + ] + }, + { + "name": "Positioning support", + "configurable": false, + "description": "This attribute describes if the network slice provides geo-localization methods or supporting methods.", + "regex": null, + "valueType": "ARRAY", + "serviceSpecCharRelationship": [ + { + "role": "Availability", + "name": "Positioning support: Availability", + "relationshipType": "dependency" + }, + { + "role": "Prediction frequency", + "name": "Positioning support: Prediction frequency", + "relationshipType": "dependency" + }, + { + "role": "Prediction frequency", + "name": "Positioning support: Accuracy", + "relationshipType": "dependency" + } + ] + }, + { + "name": "Positioning support: Availability", + "configurable": false, + "description": "This parameter describes if this attribute is provided by the network slice and contains a list of positioning methods provided by the slice. If the list is empty this attribute is not available in the network slice and the other parameters might be ignored", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "ARRAY", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "CID" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "E-CID (LTE and NR)" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "OTDOA (LTE and NR)" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "4", + "alias": "RF fingerprinting" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "5", + "alias": "AECID" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "6", + "alias": "Hybrid positioning" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "7", + "alias": "NET-RTK" + } + } + ] + }, + { + "name": "Positioning support: Prediction frequency", + "configurable": false, + "description": "This parameter describes how often location information is provided. This parameter simply defines how often the customer is allowed to request location information. This is not related to the time it takes to determine the location, which is a characteristic of the positioning method.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "per second" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "per minute)" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "per hour" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "4", + "alias": "conditional, e.g. in case a specific area is entered or left" + } + } + ] + }, + { + "name": "Positioning support: Accuracy", + "configurable": false, + "description": "This parameter describes the accuracy of the location information. Accuracy depends on the respective positioning solution applied in the network slice", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "meter", + "valueFrom": null, + "valueTo": null, + "valueType": "FLOAT", + "validFor": null, + "value": { + "value": "0.01", + "alias": "+/- 0.01m" + } + } + ] + }, + { + "name": "Radio spectrum", + "configurable": false, + "description": "Defines the radio spectrum supported by the network slice. This is important information, as some terminals might be restricted in terms of frequencies to be used.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "ARRAY", + + "serviceSpecCharRelationship": [ + { "name": "Scalability Attribute", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "n1", + "alias": "UL: 1920 MHz – 1980 MHz DL: 2110 MHz – 2170 MHz FDD" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "n77", + "alias": "UL: 3300 MHz – 4200 MHz DL: 3300 MHz – 4200 MHz TDD" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "n78", + "alias": "UL: 3300 MHz – 3800 MHz DL: 3300 MHz – 3800 MHz TDD" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "n79", + "alias": "UL: 4400 MHz – 5000 MHz DL: 4400 MHz – 5000 MHz TDD" + } + } + ] + }, + { + "name": "Root cause investigation", + "configurable": false, + "description": "Root cause investigation is the capability provided to NSC to understand or investigate the root cause of network service performance degradation or failure", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Operational", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "not available" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "passive investigation" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "active investigation" + } + } + ] + }, + { + "name": "Session and Service Continuity support", + "configurable": false, + "description": "The attribute defines the continuity of a Protocol Data Unit (PDU) session. The following three Session and Service Continuity (SSC) modes are specified: SSC mode 1 - the network preserves the connectivity service provided to the UE (the IP address is preserved), SSC mode 2 - the network may release the connectivity service delivered to the UE and release the corresponding PDU Session (the network may release IP address(es) that had been allocated to the UE), SSC mode 3 - changes to the user plane can be visible to the UE, while the network ensures that the UE suffers no loss of connectivity service (the IP address is not preserved in this mode when the PDU Session Anchor changes), None – UE loses the connectivity service", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "ARRAY", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "none" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "SSC mode 1" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "SSC mode 2" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "SSC mode 3" + } + } + ] + }, + { + "name": "Simultaneous use of the network slice", + "configurable": false, + "description": "This attribute describes whether a network slice can be simultaneously used by a UE together with other network slices and if so, with which other classes of network slices. The attribute is comprised of a list of Service Category Parameters with the associated Simultaneous Use Class parameter value.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "Can be used with any slice" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "Can be used with slices with same SST value" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "Can be used with any slice with same SD value" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "Cannot be used with another slice" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "4", + "alias": "operator defined class" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "5", + "alias": "operator defined class" + } + } + ] + }, + { + "name": "Simultaneous use of the network slice: Service category", + "configurable": false, + "description": "This parameter defines a service category which may be assigned to a UE. If present, it shall be associated with a Simultaneous Use Class parameter value", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional: Attribute must be present if service is supported requiring Simultaneous Use Class", + "valueType": "TEXT", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "Service Category" + } + } + ] + }, + { + "name": "Slice quality of service", + "configurable": false, + "description": "some of these parameters 3GPP has already defined standard values [1]. By preselecting a 5G QoS Identifier (5QI) these parameters will automatically be filled out with the standardised values", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "ARRAY", + "serviceSpecCharRelationship": [ + { + "role": "3GPP 5QI", + "name": "Slice quality of service parameters: 3GPP 5QI", + "relationshipType": "dependency" + }, + { + "role": "Resource Type", + "name": "Slice quality of service parameters: Resource Type", + "relationshipType": "dependency" + }, + { + "role": "Priority Level", + "name": "Slice quality of service parameters: Priority Level", + "relationshipType": "dependency" + }, + { + "role": "Packet Delay Budget", + "name": "Slice quality of service parameters: Packet Delay Budget", + "relationshipType": "dependency" + }, + { + "role": "Packet Error Rate", + "name": "Slice quality of service parameters: Packet Error Rate", + "relationshipType": "dependency" + }, + { + "role": "Averaging Window", + "name": "Slice quality of service parameters: Averaging Window", + "relationshipType": "dependency" + }, + { + "role": "Maximum Data Burst Volume", + "name": "Slice quality of service parameters: Maximum Data Burst Volume", + "relationshipType": "dependency" + }, + { + "role": "Maximum Packet Loss Rate", + "name": "Slice quality of service parameters: Maximum Packet Loss Rate", + "relationshipType": "dependency" + } + ] + }, + { + "name": "Slice quality of service parameters: 3GPP 5QI", + "configurable": false, + "description": "A 5QI is a scalar used as a reference to 5G QoS characteristics defined in clause [1], i.e. access node-specific parameters that control QoS forwarding treatment for the QoS Flow (e.g. scheduling weights, admission thresholds, queue management thresholds, link layer protocol configuration, etc.). 3GPP has already defined standardized 5QI to QoS characteristics mapping. See 5QI value in the table of GNST", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "ARRAY", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Operational", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "unitOfMeasure": "N/A", + "valueType": "INTEGER", + "value": { + "value": "1", + "alias": "Conversational Voice" + } + }, + { + "unitOfMeasure": "N/A", + "valueType": "INTEGER", + "value": { + "value": "2", + "alias": "Conversational Video (Live Streaming)" + } + }, + { + "unitOfMeasure": "N/A", + "valueType": "INTEGER", + "value": { + "value": "3", + "alias": "Real Time Gaming, V2X messages Electricity distribution – medium voltage, Process automation - monitoring" + } + }, + { + "unitOfMeasure": "N/A", + "valueType": "INTEGER", + "value": { + "value": "4", + "alias": "Non- Conversational Video (Buffered Streaming)" + } + }, + { + "unitOfMeasure": "N/A", + "valueType": "INTEGER", + "value": { + "value": "5", + "alias": "IMS Signalling" + } + }, + { + "unitOfMeasure": "N/A", + "valueType": "INTEGER", + "value": { + "value": "6", + "alias": "Video (Buffered Streaming) TCP-based (e.g., www, email, chat, ftp, p2p file sharing, progressive video, etc.)" + } + }, + { + "unitOfMeasure": "N/A", + "valueType": "INTEGER", + "value": { + "value": "7", + "alias": "Voice, Video (Live Streaming) Interactive Gaming" + } + }, + { + "unitOfMeasure": "N/A", + "valueType": "INTEGER", + "value": { + "value": "8", + "alias": "Video (Buffered Streaming) TCP-based (e.g., www, email, chat, ftp, p2p file sharing, progressive video, etc.)" + } + }, + { + "unitOfMeasure": "N/A", + "valueType": "INTEGER", + "value": { + "value": "9", + "alias": "Video (Buffered Streaming) TCP-based (e.g., www, email, chat, ftp, p2p file sharing, progressive video, etc.)" + } + }, + { + "unitOfMeasure": "N/A", + "valueType": "INTEGER", + "value": { + "value": "65", + "alias": "Mission Critical user plane Push To Talk voice (e.g., MCPTT)" + } + } + ] + }, + { + "name": "Slice quality of service parameters: Resource Type", + "configurable": false, + "description": "The Resource Type determines if dedicated network resources related QoS Flow-level Guaranteed Flow Bit Rate (GFBR) value are permanently allocated [1]. This value needs to be provided for each customised 5QI value selected.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional:", + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Operational", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "unitOfMeasure": "N/A", + "valueType": "INTEGER", + "value": { + "value": "0", + "alias": "GBR (Mission Critical Video user plane)" + } + }, + { + "unitOfMeasure": "N/A", + "valueType": "INTEGER", + "value": { + "value": "1", + "alias": "Delay critical GBR (Intelligent Transport Systems)" + } + }, + { + "unitOfMeasure": "N/A", + "valueType": "INTEGER", + "value": { + "value": "2", + "alias": "Non-GBR (Voice, AR)" + } + } + ] + }, + { + "name": "Slice quality of service parameters: Priority Level", + "configurable": false, + "description": "The Priority level associated with 5G QoS characteristics indicates a priority in scheduling resources among QoS Flows. The Priority level shall be used to differentiate between QoS Flows of the same UE, and it shall also be used to differentiate between QoS Flows from different UEs. Once all QoS requirements up to GFBR are fulfilled for all the Guaranteed Bit Rate (GBR) QoS Flows, the Priority Level may also be used to distribute resources between GBR QoS Flows (for rates above GFBR up to MFBR, Maximum Flow Bit Rate) and non- GBR QoS Flows, in an implementation specific manner. The lowest Priority level value corresponds to the highest Priority [1]. This value needs to be provided for each customised 5QI value selected..", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional:", + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Operational", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "unitOfMeasure": "Seconds", + "valueType": "FLOAT", + "value": { + "value": "10", + "alias": "IMS signalling" + } + } + ] + }, + { + "name": "Slice quality of service parameters: Packet Delay Budget", + "configurable": false, + "description": "The Packet Delay Budget (PDB) defines an upper bound for the time that a packet may be delayed between the UE and the UPF, that terminates the N6 interface. For a certain 5QI the value of the PDB is the same in UL (Uplink) and DL (Downlink). In the case of 3GPP access, the PDB is used to support the configuration of scheduling and link layer functions (e.g. the setting of scheduling priority weights and HARQ (Hybrid Automatic Repeat request) target operating points).", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional:", + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Operational", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "unitOfMeasure": "Seconds", + "valueType": "FLOAT", + "value": { + "value": "20000", + "alias": "Cooperative driving" + } + } + ] + }, + { + "name": "Slice quality of service parameters: Packet Error Rate", + "configurable": false, + "description": "The Packet Error Rate (PER) defines an upper bound for the rate of PDUs (e.g. IP packets) that have been processed by the sender but that are not successfully delivered by the corresponding receiver. The purpose of the PER is to allow for the appropriate link layer, protocol configurations (e.g. RLC and HARQ in RAN of a 3GPP access). For all 5QIs the value of the PER is the same in UL and DL. For GBR QoS Flows with Delay critical GBR resource type, a packet which is delayed more than PDB (but which complies with the GFBR and MDBV (Maximum Data Burst Volume) requirements) is counted as lost, and included in the PER. This value needs to be provided for each customised 5QI value selected.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional:", + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Operational", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "unitOfMeasure": "N/A", + "valueType": "FLOAT", + "value": { + "value": "0.000001", + "alias": "mission critical data" + } + } + ] + }, + { + "name": "Slice quality of service parameters: Averaging Window", + "configurable": false, + "description": "Each GBR QoS Flow shall be associated with an Averaging window. The Averaging window represents the duration over which the GFBR and MFBR shall be calculated (e.g. in the (R)AN, UPF, UE). (see clause 5.7.3.6 of 3GPP TS 23.501 [1]).", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Operational", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "unitOfMeasure": "millisecond", + "valueType": "FLOAT", + "value": { + "value": "01", + "alias": "" + } + } + ] + }, + { + "name": "Slice quality of service parameters: Maximum Data Burst Volume", + "configurable": false, + "description": "Each GBR QoS Flow with Delay-critical resource type shall be associated with a Maximum Data Burst Volume (MDBV). MDBV denotes the largest amount of data that the 5G-AN is required to serve within a period of 5G-AN PDB (i.e. 5G-AN part of the PDB) (see clause 5.7.3.7 of 3GPP TS 23.501 [1]).", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Operational", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "unitOfMeasure": "Bytes", + "valueType": "INTEGER", + "value": { + "value": "0", + "alias": "" + } + } + ] + }, + { + "name": "Slice quality of service parameters: Maximum Packet Loss Rate", + "configurable": false, + "description": "The Maximum Packet Loss Rate (UL, DL) indicates the maximum rate for lost packets of the QoS flow that can be tolerated in the uplink (UL) and downlink (DL) direction.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Operational", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "unitOfMeasure": "Percentage", + "valueType": "INTEGER", + "value": { + "value": "0", + "alias": "" + } + } + ] + }, + { + "name": "Support for non-IP traffic", + "configurable": false, + "description": "This attribute provides non-IP Session support (Ethernet session and forwarding support) of communication devices", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "unitOfMeasure": "N/A", + "valueType": "INTEGER", + "value": { + "value": "0", + "alias": "not supported" + } + },{ + "unitOfMeasure": "N/A", + "valueType": "INTEGER", + "value": { + "value": "1", + "alias": "supported" + } + } + ] + }, + + { + "name": "Supported device velocity", + "configurable": false, + "description": "Maximum speed supported by the network slice at which a defined QoS and seamless transfer between TRxPs (Transmission Reception Point(s)), which may belong to different deployment layers and/or radio access technologies (multi-layer /-RAT), can be achieved.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "ENUM", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Performance", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "unitOfMeasure": "Kilometres per hour (km/h)", + "valueType": "INTEGER", + "value": { + "value": "1", + "alias": "Stationary: 0 km/h" + } + }, + { + "unitOfMeasure": "Kilometres per hour (km/h)", + "valueType": "INTEGER", + "value": { + "value": "2", + "alias": "Pedestrian: 0 km/h to 10 km/h" + } + }, + { + "unitOfMeasure": "Kilometres per hour (km/h)", + "valueType": "INTEGER", + "value": { + "value": "3", + "alias": "Vehicular: 10 km/h to 120 km/h" + } + }, + { + "unitOfMeasure": "Kilometres per hour (km/h)", + "valueType": "INTEGER", + "value": { + "value": "4", + "alias": "High speed vehicular: 120 km/h to 500 km/h" + } + } + ] + }, + { + "name": "Synchronicity", + "configurable": false, + "description": "This attribute provides synchronicity of communication devices. Two cases are most important in this context: Synchronicity between a base station and a mobile device and Synchronicity between mobile devices.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { + "role": "Availability", + "name": "Synchronicity: Availability", + "relationshipType": "dependency" + }, + { + "role": "Accuracy", + "name": "Synchronicity: Accuracy", + "relationshipType": "dependency" + } + ] + }, + { + "name": "Synchronicity: Availability", + "configurable": false, + "description": "The synchronicity between devices over PC5 in absence of the network is not in scope of this attribute.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + + ], + "serviceSpecCharacteristicValue": [ + { + "unitOfMeasure": "N/A", + "valueType": "INTEGER", + "value": { + "value": "0", + "alias": "not available" + } + }, + { + "unitOfMeasure": "N/A", + "valueType": "INTEGER", + "value": { + "value": "1", + "alias": "between BS and UE" + } + }, + { + "unitOfMeasure": "N/A", + "valueType": "INTEGER", + "value": { + "value": "2", + "alias": "between BS and UE & UE and UE" + } + } + ] + }, + { + "name": "Synchronicity: Accuracy", + "configurable": false, + "description": "This parameter describes the accuracy of the synchronicity..", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "unitOfMeasure": "seconds", + "valueType": "FLOAT", + "value": { + "value": "0,0000001", + "alias": "" + } + } + ] + }, + { + "name": "UE density", + "configurable": false, + "description": "This attribute describes the maximum number of connected and/or accessible devices per unit area (per km2) supported by the network slice.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Scalability Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + + ], + "serviceSpecCharacteristicValue": [ + { + "unitOfMeasure": "Number per km2", + "valueType": "INTEGER", + "value": { + "value": "10000", + "alias": "devices per km2" + } + } + ] + }, + { + "name": "Uplink throughput per network slice", + "configurable": false, + "description": "The achievable data rate of the network slice instance in uplink that is available ubiquitously across the coverage area of the network slice.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Scalability Attribute", "role": "tag", "relationshipType": "tag" }, + { + "role": "Guaranteed uplink throughput", + "name": "Uplink throughput per network slice: Guaranteed uplink throughput", + "relationshipType": "dependency" + }, + { + "role": "Maximum uplink throughput", + "name": "Uplink throughput per network slice: Maximum uplink throughput", + "relationshipType": "dependency" + } + ] + }, + { + "name": "Uplink throughput per network slice: Additional uplink GBR QoS flows", + "configurable": false, + "description": "This attribute describes the guaranteed data rate supported by the network slice in uplink. There are services (e.g. emergency services) where guaranteed uplink throughput is required.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Scalability Attribute", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "unitOfMeasure": "kbps", + "valueType": "INTEGER", + "value": { + "value": "0", + "alias": "not specified" + } + } + ] + }, + { + "name": "Uplink throughput per network slice: Maximum uplink throughput", + "configurable": false, + "description": "This attribute describes the guaranteed data rate supported by the network slice in uplink. There are services (e.g. emergency services) where guaranteed uplink throughput is required.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional: Either Maximum uplink throughput per network slice or Maximum uplink throughput per slice shall be present. ", + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Scalability Attribute", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "unitOfMeasure": "kbps", + "valueType": "INTEGER", + "value": { + "value": "10000", + "alias": "10 Mbps" + } + } + ] + }, + { + "name": "Uplink maximum throughput per UE", + "configurable": false, + "description": "", + "serviceSpecCharRelationship": [ + { + "role": "Guaranteed uplink throughput", + "name": "Uplink maximum throughput per UE: Maximum Uplink Throughput per UE value", + "relationshipType": "dependency" + }, + { + "role": "Maximum uplink throughput", + "name": "Uplink maximum throughput per UE: Service category", + "relationshipType": "dependency" + } + ] + }, + { + "name": "Uplink maximum throughput per UE: Maximum Uplink Throughput per UE value", + "configurable": false, + "description": "This parameter defines the Maximum Uplink Throughput per UE value. This may be associated with a Service Category parameter.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional:", + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "kbps", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "not specified" + } + } + ] + }, + { + "name": "Uplink maximum throughput per UE: Service category", + "configurable": false, + "description": "This parameter defines a service category which may be assigned to certain groups of devices using the network slice. If present, it shall be associated with a Maximum Uplink Throughput Value parameter.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional: Either Maximum uplink throughput per network slice or Maximum uplink throughput per UE must be present", + "valueType": "TEXT", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "Service Category" + } + } + ] + }, + { + "name": "User management openness", + "configurable": false, + "description": "This attribute describes the capability for the NSC to manage their users or groups of users’ network services and corresponding requirements. For instance, if NSC Y orders a network slice which is capable to support X users of Y, then Y should be capable to decide which X users could use this network slice. Hence, Y could manage the users, in terms of add, modify or delete users to receive network services provided by the specific network slice.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "Operational", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "not supported" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "supported" + } + } + ] + }, + { + "name": "Data network access", + "description": "For each Supported data network list value in the Supported data networks attribute (see clause 3.4.39). This attribute defines how the network slice supported data networks handle the user data.", + "serviceSpecCharRelationship": [ + { + "role": "Data access", + "name": "Data network access: Data access per data network", + "relationshipType": "dependency" + }, + { + "role": "Tunnelling mechanism", + "name": "Data network access: Tunnelling mechanism", + "relationshipType": "dependency" + } + ] + }, + { + "name": "Data network access: Data access per data network", + "configurable": false, + "description": "TThe options for a specific Supported data network are as follows: Direct access to the Internet, Termination in a private network (e.g. via tunnelling mechanism such as L2TP, VPN Virtual Private Network, tunnel, etc.), All data traffic stays local to an operator network and the devices do not have access to the Internet or private network", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "ARRAY", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "Direct internet access" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "Termination in the private network" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "Local traffic (no internet access)" + } + } + ] + }, + { + "name": "Data network access: Tunnelling mechanism", + "configurable": false, + "description": "The attribute defines the tunnelling mechanism; how the user data can be delivered to the external private data network. 3GPP TS 29.561 [12] lists the interworking with data networks and tunnelling mechanism used", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Conditional:This parameter is present if User data Access is 1(Termination in the private network).", + "valueType": "ARRAY", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "L2TP Tunnel" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "GRE Tunnel" + } + }, + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "VPN Tunnel" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "Label based routing" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "4", + "alias": "Other" + } + } + ] + }, + { + "name": "V2X communication mode", + "configurable": false, + "description": "This parameter describes if the V2X communication mode is supported by the network slice.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "NO" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "YES-EUTRA" + } + }, + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "YES- NR" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "YES -NR and E-UTRA" + } + } + ] + }, + { + "name": "Latency from (last) UPF to Application Server", + "configurable": false, + "description": "This optional attribute specifies maximum or worst case one-way latency between UPF and application server offered by the slice. This does not include latency introduced by the application server. In the case of chained UPFs, this refers to the last UPF (in the chain) towards the application server. This attribute extends what is covered by the 3GPP QoS PDB attribute (see GST QoS attribute) which is only between UE and UPF. This is an optional attribute for network slices that offer latency objectives between UPF and application server residing within the operator network", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Performance", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "second", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "" + } + } + ] + }, + { + "name": "Network Slice Specific Authentication and Authorization (NSSAA) Required", + "configurable": false, + "description": "This attribute specifies whether for the Network Slice, devices need to be also authenticated and authorized by a AAA server using additional credentials different than the ones used for the primary authentication (see Rel-16 of 3GPP TS 23.501 [1] clause 5.15.10 for a definition of the Network Slice Specific Authentication and Authorization feature).", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "BINARY", + + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "Not supported" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "Supported" + } + } + ] + }, + { + "name": "Multimedia Priority Service", + "configurable": false, + "description": "Multimedia Priority Service (MPS) leads to priority of traffic relative to other traffic.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "BINARY", + + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "Non-MPS" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "MPS" + } + } + ] + }, + { + "name": "Multimedia Priority Service: Multimedia Priority Service capability support", + "configurable": false, + "description": "This parameter specifies what capabilities are available to support MPS. More than one capability may be supported at once. This parameter must be present if Multimedia Priority Service support is set to MPS.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "BINARY", + + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "User prioritization" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "Pre-emption" + } + } + ] + }, + { + "name": "Multimedia Priority Service: Multimedia Priority Service support", + "configurable": false, + "description": "This parameter specifies whether or not the network slice supports MPS for MMTel voice, MPS for MMTel video, and/or MPS for Data as specified in 3GPP TS 22.153 [31].", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "ARRAY", + + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" }, + { "name": "KPI", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "ARRAY", + "validFor": null, + "value": { + "value": "0", + "alias": "MPS for MMTel voice" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "ARRAY", + "validFor": null, + "value": { + "value": "1", + "alias": "MPS for MMTel video" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "ARRAY", + "validFor": null, + "value": { + "value": "2", + "alias": "MPS for Data" + } + } + ] + }, + { + "name": "Supported data network", + "configurable": false, + "description": "This attribute describes the data networks the network slice provides access to. The attribute is comprised of a list of Service category parameters with the associated network or networks list. If no Service category parameters are present, all UEs in the network slice are associated with the same network or list of networks.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "SET", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "DataNetwork1, DataNetwork2", + "alias": "Service category 1" + } + }, + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "DataNetwork1", + "alias": "Service category 2" + } + } + + ] + }, + { + "name": "Supported data network: Service category", + "configurable": false, + "description": "This parameter defines a service category which may be assigned to a UE. If present, it shall be associated with a Supported data networks list parameter.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "", + "valueType": "TEXT", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "tag" }, + { "name": "Functional", "role": "tag", "relationshipType": "tag" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "Service Category" + } + } + ] + } + ], + "serviceSpecRelationship": [ + ], + "targetServiceSchema": null +} diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml new file mode 100644 index 0000000..10bfe7c --- /dev/null +++ b/src/main/resources/logback.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + app.log + + + logs/archived/app.%d{yyyy-MM-dd}.%i.log + + 10MB + + 20GB + + 60 + + + + %d %p %c{1.} [%t] %m%n + + + + + + + + + + + diff --git a/src/main/resources/resourceSpecifications/gnodeb.openslice.io.json b/src/main/resources/resourceSpecifications/gnodeb.openslice.io.json new file mode 100644 index 0000000..b503a2e --- /dev/null +++ b/src/main/resources/resourceSpecifications/gnodeb.openslice.io.json @@ -0,0 +1,253 @@ +{ + "name": "gnodeb.openslice.io", + "category": "gNB", + "description": "The resource specification which describes a gNodeB", + "version": "0.2.0", + "isBundle": false, + "@type": "PhysicalResourceSpecification", + "attachment": [], + "relatedParty": [], + "resourceSpecCharacteristic": [ + { + "name": "Name", + "configurable": true, + "description": "This attribute specifies the alias of the gNodeB", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT", + "resourceSpecCharRelationship": null, + "resourceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": null + } + ] + }, + { + "name": "Server", + "configurable": false, + "description": "This attribute specifies the server where the gNodeB is accessible from.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT", + "resourceSpecCharRelationship": null, + "resourceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "localhost", + "alias": "Local network" + } + } + ] + }, + { + "name": "IP", + "configurable": false, + "description": "This attribute specifies the IP of the gNodeB.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT", + "resourceSpecCharRelationship": null, + "resourceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "localhost", + "alias": "Local network" + } + } + ] + }, + { + "name": "GtpInterface", + "configurable": false, + "description": "This attribute specifies the IP of the gtp interface of the gNodeB.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT", + "resourceSpecCharRelationship": null, + "resourceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "localhost", + "alias": "Local network" + } + } + ] + }, + { + "name": "Vendor", + "configurable": true, + "description": "This attribute specifies the vendor of the gNodeB", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT", + "resourceSpecCharRelationship": null, + "resourceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": null + } + ] + }, + { + "name": "VendorModuleType", + "configurable": true, + "description": "This attribute specifies the vendor module type of the gNodeB", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT", + "resourceSpecCharRelationship": null, + "resourceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": null + } + ] + }, + { + "name": "SoftwareVersion", + "configurable": true, + "description": "This attribute specifies the software version of the gNodeB", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT", + "resourceSpecCharRelationship": null, + "resourceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": null + } + ] + }, + { + "name": "Location", + "configurable": true, + "description": "This attribute specifies the location of the gNodeB via its longtitude and latitude", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT", + "resourceSpecCharRelationship": null, + "resourceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "TEXT", + "validFor": null, + "value": { + "value": "[ -90.0715, 29.9510 ]", + "alias": "Local (outdoor)" + } + } + ] + }, + { + "name": "Coverage", + "configurable": true, + "description": "This attribute specifies the coverage area of the gNodeB", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "ENUM", + "resourceSpecCharacteristicValue": [ + { + "isDefault": true, + "valueType": "SMALLINT", + "value": { + "value": "1", + "alias": "Picocell (outdoor)" + } + }, + { + "isDefault": false, + "valueType": "SMALLINT", + "value": { + "value": "2", + "alias": "Nanocell (indoor)" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/resourceSpecifications/osm-tenant.openslice.io.json b/src/main/resources/resourceSpecifications/osm-tenant.openslice.io.json new file mode 100644 index 0000000..a4f069b --- /dev/null +++ b/src/main/resources/resourceSpecifications/osm-tenant.openslice.io.json @@ -0,0 +1,212 @@ +{ + "name": "osm-tenant.openslice.io", + "category": "OSMTenant", + "description": "This Resource Specification is used to add a new MANO Provider", + "version": "0.2.0", + "isBundle": false, + "@type": "LogicalResourceSpecification", + "attachment": [], + "relatedParty": [], + "resourceSpecCharacteristic": [ + { + "name": "Name", + "configurable": true, + "description": "The alias of the MANO Provider as it will be seen in the platform", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "Description", + "configurable": true, + "description": "The description of the MANO Provider as it will be seen in the platform", + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "SupportedManoPlatform", + "configurable": true, + "description": "", + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "ENUM", + "resourceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BOOLEAN", + "validFor": null, + "value": { + "value": "OSMvSEVEN", + "alias": "OSMvSEVEN" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BOOLEAN", + "validFor": null, + "value": { + "value": "OSMvEIGHT", + "alias": "OSMvEIGHT" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BOOLEAN", + "validFor": null, + "value": { + "value": "OSMvNINE", + "alias": "OSMvNINE" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BOOLEAN", + "validFor": null, + "value": { + "value": "OSMvTEN", + "alias": "OSMvTEN" + } + } + ] + }, + { + "name": "ApiUrlEndpoint", + "configurable": true, + "description": "The API URL Endpoint of the MANO Provider", + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "BasicAuthHeader", + "configurable": true, + "description": "The authorization basic header", + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "Username", + "configurable": true, + "description": "The username used to access the MANO Provider", + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "Password", + "configurable": true, + "description": "The password used to access the MANO Provider", + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "Project", + "configurable": true, + "description": "The project for which the MANO Provider is intended to be used", + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "EnabledForOnBoarding", + "configurable": true, + "description": "", + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "BOOLEAN", + "resourceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BOOLEAN", + "validFor": null, + "value": { + "value": false, + "alias": "false" + } + } + ] + }, + { + "name": "EnabledForSync", + "configurable": true, + "description": "", + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "BOOLEAN", + "resourceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BOOLEAN", + "validFor": null, + "value": { + "value": false, + "alias": "false" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/resourceSpecifications/vim-account.openslice.io.json b/src/main/resources/resourceSpecifications/vim-account.openslice.io.json new file mode 100644 index 0000000..48910d0 --- /dev/null +++ b/src/main/resources/resourceSpecifications/vim-account.openslice.io.json @@ -0,0 +1,276 @@ +{ + "name": "vim-account.openslice.io.json", + "category": "VIMAccount", + "description": "This Resource Specification is used to describe an OSM Project's VIM account", + "version": "0.2.0", + "isBundle": true, + "@type": "LogicalResourceSpecification", + + "relatedParty": [], + "resourceSpecCharacteristic": [ + { + "name": "Name", + "configurable": true, + "description": "The alias of the OSM Project's VIM account", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "Description", + "configurable": true, + "description": "The description of the OSM Project's VIM account", + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "vimProjectOrTenantName", + "configurable": true, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "vimURL", + "configurable": true, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "vimUsername", + "configurable": true, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "vimPassword", + "configurable": true, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "Type", + "configurable": true, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "ENUM", + "resourceSpecCharacteristicValue": [ + { + "value": { + "value": "Openstack" + }, + "value": { + "value": "AWS" + }, + "value": { + "value": "VMware vCD" + }, + "value": { + "value": "OpenVIM" + }, + "value": { + "value": "OpenNebula" + }, + "value": { + "value": "Azure" + } + } + ] + }, + { + "name": "totalRAM", + "configurable": false, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "usedRAM", + "configurable": false, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "totalVCPUs", + "configurable": false, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "usedVCPUs", + "configurable": false, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "totalInstances", + "configurable": false, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "usedInstances", + "configurable": false, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "totalVolumes", + "configurable": false, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "usedVolumes", + "configurable": false, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "totalVolumeSnapshots", + "configurable": false, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "usedVolumeSnapshots", + "configurable": false, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "totalVolumeStorage", + "configurable": false, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "freeVolumeStorage", + "configurable": false, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "totalNetworks", + "configurable": false, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "usedNetworks", + "configurable": false, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "totalSubnets", + "configurable": false, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "usedSubnets", + "configurable": false, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + }, + { + "name": "schemaType", + "configurable": false, + "extensible": null, + "isUnique": false, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "TEXT" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/vinnisb/vinnisb-exposure-L1.json b/src/main/resources/vinnisb/vinnisb-exposure-L1.json new file mode 100644 index 0000000..505ff57 --- /dev/null +++ b/src/main/resources/vinnisb/vinnisb-exposure-L1.json @@ -0,0 +1,54 @@ +{ + "name": "VINNI-SB Service Exposure Level 1", + "description": "VINNI-SB Service Exposure Level 1", + "version": "0.1.0", + "isBundle": false, + "attachment": [ + ], + "relatedParty": [ + ], + "resourceSpecification": [ + ], + "serviceLevelSpecification": [ + ], + "serviceSpecCharacteristic": [ + { + "name": "Exposure Level", + "configurable": false, + "description": "expose management capabilities of 5G-VINNI facility towards an authorised CSC.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "SET", + "serviceSpecCharRelationship": [ + { + "name": "Exposure Level", + "role": "tag", + "relationshipType": "tag" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "Level 1" + } + } + ] + } + + ], + "serviceSpecRelationship": [ + ], + "targetServiceSchema": null +} diff --git a/src/main/resources/vinnisb/vinnisb-exposure-L2.json b/src/main/resources/vinnisb/vinnisb-exposure-L2.json new file mode 100644 index 0000000..05441d7 --- /dev/null +++ b/src/main/resources/vinnisb/vinnisb-exposure-L2.json @@ -0,0 +1,54 @@ +{ + "name": "VINNI-SB Service Exposure Level 2", + "description": "VINNI-SB Service Exposure Level 2", + "version": "0.1.0", + "isBundle": false, + "attachment": [ + ], + "relatedParty": [ + ], + "resourceSpecification": [ + ], + "serviceLevelSpecification": [ + ], + "serviceSpecCharacteristic": [ + { + "name": "Exposure Level", + "configurable": false, + "description": "expose management capabilities of 5G-VINNI facility towards an authorised CSC.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "SET", + "serviceSpecCharRelationship": [ + { + "name": "Exposure Level", + "role": "tag", + "relationshipType": "tag" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "Level 2" + } + } + ] + } + + ], + "serviceSpecRelationship": [ + ], + "targetServiceSchema": null +} diff --git a/src/main/resources/vinnisb/vinnisb-exposure-L3.json b/src/main/resources/vinnisb/vinnisb-exposure-L3.json new file mode 100644 index 0000000..2026bdd --- /dev/null +++ b/src/main/resources/vinnisb/vinnisb-exposure-L3.json @@ -0,0 +1,54 @@ +{ + "name": "VINNI-SB Service Exposure Level 3", + "description": "VINNI-SB Service Exposure Level 3", + "version": "0.1.0", + "isBundle": false, + "attachment": [ + ], + "relatedParty": [ + ], + "resourceSpecification": [ + ], + "serviceLevelSpecification": [ + ], + "serviceSpecCharacteristic": [ + { + "name": "Exposure Level", + "configurable": false, + "description": "expose management capabilities of 5G-VINNI facility towards an authorised CSC.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "SET", + "serviceSpecCharRelationship": [ + { + "name": "Exposure Level", + "role": "tag", + "relationshipType": "tag" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "Level 3" + } + } + ] + } + + ], + "serviceSpecRelationship": [ + ], + "targetServiceSchema": null +} diff --git a/src/main/resources/vinnisb/vinnisb-exposure-L4.json b/src/main/resources/vinnisb/vinnisb-exposure-L4.json new file mode 100644 index 0000000..94b3ef1 --- /dev/null +++ b/src/main/resources/vinnisb/vinnisb-exposure-L4.json @@ -0,0 +1,54 @@ +{ + "name": "VINNI-SB Service Exposure Level 4", + "description": "VINNI-SB Service Exposure Level 4", + "version": "0.1.0", + "isBundle": false, + "attachment": [ + ], + "relatedParty": [ + ], + "resourceSpecification": [ + ], + "serviceLevelSpecification": [ + ], + "serviceSpecCharacteristic": [ + { + "name": "Exposure Level", + "configurable": false, + "description": "expose management capabilities of 5G-VINNI facility towards an authorised CSC.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "SET", + "serviceSpecCharRelationship": [ + { + "name": "Exposure Level", + "role": "tag", + "relationshipType": "tag" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "4", + "alias": "Level 4" + } + } + ] + } + + ], + "serviceSpecRelationship": [ + ], + "targetServiceSchema": null +} diff --git a/src/main/resources/vinnisb/vinnisb-monitoring.json b/src/main/resources/vinnisb/vinnisb-monitoring.json new file mode 100644 index 0000000..2a1051c --- /dev/null +++ b/src/main/resources/vinnisb/vinnisb-monitoring.json @@ -0,0 +1,74 @@ +{ + "name": "VINNI-SB Service Monitoring", + "description": "VINNI-SB Service Monitoring", + "version": "0.1.0", + "isBundle": false, + "attachment": [ + ], + "relatedParty": [ + ], + "resourceSpecification": [ + ], + "serviceLevelSpecification": [ + ], + "serviceSpecCharacteristic": [ + { + + "name": "On-demand monitoring support", + "configurable": false, + "description": "indicates if the CSC is allowed or not to request new monitoring information at run-time.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { + "name": "Monitoring", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.MON_1", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "No" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "Yes" + } + } + ] + } + + ], + "serviceSpecRelationship": [ + ], + "targetServiceSchema": null +} diff --git a/src/main/resources/vinnisb/vinnisb-req.json b/src/main/resources/vinnisb/vinnisb-req.json new file mode 100644 index 0000000..a595519 --- /dev/null +++ b/src/main/resources/vinnisb/vinnisb-req.json @@ -0,0 +1,2495 @@ +{ + "name": "VINNI-SB Service Requirements", + "description": "VINNI-SB Service Requirements", + "version": "0.1.0", + "isBundle": false, + "attachment": [ + ], + "relatedParty": [ + ], + "resourceSpecification": [ + ], + "serviceLevelSpecification": [ + ], + "serviceSpecCharacteristic": [ + { + "name": "Peak data rate", + "configurable": false, + "description": "It is defined as the highest theoretical data rate achievable for a single device located at the best location within a cell, assuming error-free transmission conditions (i.e. excluding overhead and retransmitted data packets) when all available radio resources for the corresponding link direction are utilized.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "role": "DL peak data rate", + "name": "Peak data rate: DL peak data rate", + "relationshipType": "dependency" + }, + { + "role": "UL peak data rate", + "name": "Peak data rate: UL peak data rate", + "relationshipType": "dependency" + } + ], + "serviceSpecCharacteristicValue": [ + + ] + }, + { + "name": "Peak data rate: UL peak data rate", + "configurable": false, + "description": "the maximum achievable upstream throughput one single device under ideal conditions.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.PERF_1A", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "Gbps", + "valueFrom": null, + "valueTo": null, + "valueType": "FLOAT", + "validFor": null, + "value": { + "value": "1", + "alias": "" + } + } + ] + }, + { + "name": "Peak data rate: DL peak data rate", + "configurable": false, + "description": "the maximum achievable downstream throughput at IP layer of one single device under ideal conditions.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.PERF_1B", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "Gbps", + "valueFrom": null, + "valueTo": null, + "valueType": "FLOAT", + "validFor": null, + "value": { + "value": "1.0", + "alias": "" + } + } + ] + }, + { + "name": "User data rate", + "configurable": false, + "description": "the user experienced data rate required for the device to get a quality experience that is assumed to be enough for the considered use case.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "role": "DL user data rate", + "name": "User data rate: DL user data rate", + "relationshipType": "dependency" + }, + { + "role": "UL user data rate", + "name": "User data rate: UL user data rate", + "relationshipType": "dependency" + } + ], + "serviceSpecCharacteristicValue": [ + + ] + }, + { + "name": "User data rate: DL user data rate", + "configurable": false, + "description": "describes the experienced downstream throughput at IP layer of one single device, generated at N6 interface and measured at the device side.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.PERF_2A", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "Mbps", + "valueFrom": null, + "valueTo": null, + "valueType": "FLOAT", + "validFor": null, + "value": { + "value": "100.0", + "alias": "" + } + } + ] + }, + { + "name": "User data rate: UL user data rate", + "configurable": false, + "description": "describes the experienced upstream throughput one single device transmitting the IP packets up to the N6 interface.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.PERF_2B", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "Mbps", + "valueFrom": null, + "valueTo": null, + "valueType": "FLOAT", + "validFor": null, + "value": { + "value": "100.0", + "alias": "" + } + } + ] + }, + { + "name": "Area traffic density", + "configurable": false, + "description": "the total traffic throughput (i.e. number of correctly received bits of IP packets per time interval) per area unit.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "role": "DL area traffic density", + "name": "Area traffic density: DL area traffic density", + "relationshipType": "dependency" + }, + { + "role": "UL area traffic density", + "name": "Area traffic density: UL area traffic density", + "relationshipType": "dependency" + } + ], + "serviceSpecCharacteristicValue": [ + + ] + }, + { + "name": "Area traffic density: DL area traffic density", + "configurable": false, + "description": "the total throughput per area unit in the downstream direction.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.PERF_3A", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "Gbps/km2", + "valueFrom": null, + "valueTo": null, + "valueType": "FLOAT", + "validFor": null, + "value": { + "value": "1.0", + "alias": "" + } + } + ] + }, + { + "name": "Area traffic density: UL area traffic density", + "configurable": false, + "description": "the total throughput per area unit in the upstream direction.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.PERF_3B", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "Gbps/km2", + "valueFrom": null, + "valueTo": null, + "valueType": "FLOAT", + "validFor": null, + "value": { + "value": "1.0", + "alias": "" + } + } + ] + }, + { + "name": "5G Quality of Service (QoS)", + "configurable": false, + "description": "It represents a set of typical QoS parameters that are relevant for traffic handling in 3GPP networks, from Rel-15 onwards.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "role": "One-way latency", + "name": "5G Quality of Service (QoS): One-way latency", + "relationshipType": "dependency" + }, + { + "role": "E2E latency", + "name": "5G Quality of Service (QoS): E2E latency", + "relationshipType": "dependency" + }, + { + "role": "Jitter", + "name": "5G Quality of Service (QoS): Jitter", + "relationshipType": "dependency" + }, + { + "role": "DL Packet loss rate", + "name": "5G Quality of Service (QoS): DL Packet loss rate", + "relationshipType": "dependency" + }, + { + "role": "UL Packet loss rate", + "name": "5G Quality of Service (QoS): UL Packet loss rate", + "relationshipType": "dependency" + }, + { + "role": "DL Packet size", + "name": "5G Quality of Service (QoS): DL Packet size", + "relationshipType": "dependency" + }, + { + "role": "UL Packet size:", + "name": "5G Quality of Service (QoS): UL Packet size:", + "relationshipType": "dependency" + } + ], + "serviceSpecCharacteristicValue": [ + + ] + }, + { + "name": "5G Quality of Service (QoS): One-way latency", + "configurable": false, + "description": "it is the time it takes for a IP packet to travel from a device to a destination node.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.PERF_4A", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "ms", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "10", + "alias": "" + } + } + ] + }, + { + "name": "5G Quality of Service (QoS): E2E latency", + "configurable": false, + "description": "the time it takes for a IP packet to travel from a device to a destination node considering the Round Trip Time (RTT).", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.PERF_4B", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "ms", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "10", + "alias": "" + } + } + ] + }, + { + "name": "5G Quality of Service (QoS): Jitter", + "configurable": false, + "description": "it is the highest deviation in the latency value that can be acceptable for the targeted use case.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.PERF_4C", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "ms", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "10", + "alias": "" + } + } + ] + }, + { + "name": "5G Quality of Service (QoS): DL Packet loss rate", + "configurable": false, + "description": "it is the percentage of lost packets to the total number of packets sent in the DL direction.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.PERF_4D", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "%", + "valueFrom": null, + "valueTo": null, + "valueType": "FLOAT", + "validFor": null, + "value": { + "value": "10", + "alias": "" + } + } + ] + }, + { + "name": "5G Quality of Service (QoS): UL Packet loss rate", + "configurable": false, + "description": "it is the percentage of lost packets to the total number of packets sent in the UL direction.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.PERF_4E", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "%", + "valueFrom": null, + "valueTo": null, + "valueType": "FLOAT", + "validFor": null, + "value": { + "value": "10", + "alias": "" + } + } + ] + }, + { + "name": "5G Quality of Service (QoS): DL Packet size", + "configurable": false, + "description": "specifies the maximum packet size to be supported by the considered use case in the DL direction.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.PERF_4F", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "Bytes", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "8", + "alias": "" + } + } + ] + }, + { + "name": "5G Quality of Service (QoS): UL Packet size", + "configurable": false, + "description": "specifies the maximum packet size to be supported by the considered use case in the UL direction.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.PERF_4G", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "Bytes", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "8", + "alias": "" + } + } + ] + }, + { + "name": "Availability", + "configurable": false, + "description": "It is an indicator that represents the risk of service outage in terms of the acceptable level of unplanned downtime.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.PERF_5", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "%", + "valueFrom": null, + "valueTo": null, + "valueType": "FLOAT", + "validFor": null, + "value": { + "value": "99.99", + "alias": "" + } + } + ] + }, + { + "name": "Reliability", + "configurable": false, + "description": "It is an indicator that represents the risk of service misbehaviour within the time constraints required for the targeted use case.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.PERF_6", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "%", + "valueFrom": null, + "valueTo": null, + "valueType": "FLOAT", + "validFor": null, + "value": { + "value": "99.99", + "alias": "" + } + } + ] + }, + { + "name": "Service deployment time", + "configurable": false, + "description": "It is the time it takes the CSP to set up the network slice service (instance), with the network level guarantees specified in P.PERF_1 and P.PERF_6. This parameter measures the time that passes from service ordering (i.e. a CSC issue a service order to the CSP) to service operational readiness (i.e. the network slice service is ready to be used by the CSC). During this time, NSI day-0 (i.e. instantiation)4 and day-1 (configuration) operations shall be performed, and testing framework shall be configured accordingly.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.PERF_7", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "min", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "10", + "alias": "" + } + } + ] + }, + { + "name": "Deployment option", + "configurable": false, + "description": "The specification of this parameter allows selecting how the 3GPP network architecture will be deployed as part of the network slice service.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "ENUM", + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.FUNC_1", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "Legacy" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "Rel-15 NSA (Option 3)" + } + }, + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "Rel-15 SA (Option 2)" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "Other (to be defined)" + } + } + ] + }, + { + "name": "Access technology", + "configurable": false, + "description": "The specification of this parameter allows selecting the technologies to be supported by the network slice service for the access part.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "ENUM", + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.FUNC_2", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "LTE" + } + }, + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "NR" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "Other (specific for 5G-VINNI facility site)" + } + } + ] + }, + { + "name": "Predominant device type", + "configurable": false, + "description": "This parameter lists the type of devices that can be attached to the 5G-VINNI service the CSP will provide to a CSC.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "SET", + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.FUNC_3", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "UE" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "CPE" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "Sensor" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "Vehicle" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "4", + "alias": "Factory actuator" + } + } + ] + }, + { + "name": "Radio spectrum", + "configurable": false, + "description": "This parameter provides a list of the spectrum bands that can be supported by the offered service.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "role": "LTE operating bands", + "name": "Radio spectrum: LTE operating bands", + "relationshipType": "dependency" + }, + { + "role": "NR operating bands", + "name": "Radio spectrum: NR operating bands", + "relationshipType": "dependency" + }, + { + "role": "Other bands", + "name": "Radio spectrum: Other bands", + "relationshipType": "dependency" + } + ], + "serviceSpecCharacteristicValue": [ + + ] + }, + { + "name": "Radio spectrum: LTE operating bands", + "configurable": false, + "description": "assuming option 0 has been selected for P.FUNC_2, this parameter list the LTE-defined spectrum bands [22] that can be supported by the network slice service.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Yes: P.FUNC_2 -> if set to 1, P.FUNC_4A shall be omitted.", + "valueType": "ARRAY", + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.FUNC_4A", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "STRING", + "validFor": null, + "value": { + "value": "n77", + "alias": "" + } + } + ] + }, + { + "name": "Radio spectrum: NR operating bands", + "configurable": false, + "description": "assuming option 1 has been selected for P.FUNC_2, this parameter list the NR-defined spectrum bands [23] that can be supported by the network slice service.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Yes: P.FUNC_2 -> if set to , P.FUNC_4B shall be omitted.", + "valueType": "ARRAY", + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.FUNC_4B", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "STRING", + "validFor": null, + "value": { + "value": "n77", + "alias": "" + } + } + ] + }, + { + "name": "Radio spectrum: Other bands", + "configurable": false, + "description": "allows listing bands that do not match LTE or NR, either because they are based on other access technologies (e.g. NB-IoT, LTE-M, satellite access and FWA) or because they are part of vertical-owned spectrum.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Yes: P.FUNC_2 -> only if set to 2 ", + "valueType": "ARRAY", + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.FUNC_4C", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "STRING", + "validFor": null, + "value": { + "value": "n77", + "alias": "" + } + } + ] + }, + { + "name": "Isolation", + "configurable": false, + "description": "Isolation constitutes the cornerstone for service delivery in multi-tenant environments such as 5G-VINNI, where NSIs intended for multiple CSCs will be deployed and operated on top of a shared infrastructure.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "role": "Isolation support", + "name": "Isolation: Isolation support", + "relationshipType": "dependency" + }, + { + "role": "Isolation support", + "name": "Isolation support: Isolation type", + "relationshipType": "dependency" + } + ], + "serviceSpecCharacteristicValue": [ + + ] + }, + { + "name": "Isolation: Isolation support", + "configurable": false, + "description": "allows specifying if isolation is required/desired for the network slice service the CSP delivers to CSC.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.FUNC_5A", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "No" + } + }, + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "Yes" + } + } + ] + }, + { + "name": "Isolation support: Isolation type", + "configurable": false, + "description": "allows specifying if isolation is required/desired for the network slice service the CSP delivers to CSC.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Yes: P.FUNC_2 -> only if set to 2 ", + "valueType": "ARRAY", + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.FUNC_5B", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "No isolation" + } + }, + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "Logical isolation" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "2", + "alias": "Physical isolation" + } + } + ] + }, + { + "name": "Value-added functionality", + "configurable": false, + "description": "This parameter includes the list of advanced features that the CSP can include as part of the network slice service offered to the CSC, providing it with an enriched functionality.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "role": "3rd party VNF hosting", + "name": "Value-added functionality: 3rd party VNF hosting", + "relationshipType": "dependency" + }, + { + "role": "Positioning", + "name": "Value-added functionality: Positioning", + "relationshipType": "dependency" + }, + { + "role": "Distributed data fabric", + "name": "Value-added functionality: Distributed data fabric", + "relationshipType": "dependency" + }, + { + "role": "Security-as-a-Service (SECaaS)", + "name": "Value-added functionality: Security-as-a-Service (SECaaS)", + "relationshipType": "dependency" + }, + { + "role": "Monitoring-as-a-service (MaaS)", + "name": "Value-added functionality: Monitoring-as-a-service (MaaS)", + "relationshipType": "dependency" + }, + { + "role": "Testing-as-a-service (TaaS)", + "name": "Value-added functionality: Testing-as-a-service (TaaS)", + "relationshipType": "dependency" + } + ], + "serviceSpecCharacteristicValue": [ + + ] + }, + { + "name": "Value-added functionality: 3rd party VNF hosting", + "configurable": false, + "description": "allows a CSC to bring his own VNFs and attach them to the default service topology , expanding/modifying it to get a value-added network slice service.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.FUNC_6A", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "No" + } + }, + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "Yes" + } + } + ] + }, + { + "name": "Value-added functionality: Positioning", + "configurable": false, + "description": "it is the ability to provide geo-localisation methods as part of the network slice.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.FUNC_6B", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "No" + } + }, + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "Yes" + } + } + ] + }, + { + "name": "Value-added functionality: Distributed data fabric", + "configurable": false, + "description": "it is the ability to provide data fabric functionality as part of the provided network slice.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.FUNC_6C", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "No" + } + }, + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "Yes" + } + } + ] + }, + { + "name": "Value-added functionality: Security-as-a-Service (SECaaS)", + "configurable": false, + "description": "it is the ability to provide automated infrastructure security to CSC, as part of the offered slice service.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.FUNC_6D", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "No" + } + }, + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "Yes" + } + } + ] + }, + { + "name": "Value-added functionality: Monitoring-as-a-service (MaaS)", + "configurable": false, + "description": "allows a CSC to consume 5G-VINNI telemetry services for performance/fault activities at run-time.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.FUNC_6E", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "No" + } + }, + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "Yes" + } + } + ] + }, + { + "name": "Value-added functionality: Testing-as-a-service (TaaS)", + "configurable": false, + "description": "allows a CSC to consume capabilities from the 5G-VINNI testing framework for trialling and KPI validation purposes.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.FUNC_6F", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "No" + } + }, + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "Yes" + } + } + ] + }, + { + "name": "Positioning", + "configurable": false, + "description": "This parameter includes the list of advanced features that the CSP can include as part of the network slice service offered to the CSC, providing it with an enriched functionality.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "role": "Positioning accuracy", + "name": "Positioning: Positioning accuracy", + "relationshipType": "dependency" + }, + { + "role": "Measurement frequency", + "name": "Positioning: Measurement frequency", + "relationshipType": "dependency" + } + ], + "serviceSpecCharacteristicValue": [ + + ] + }, + { + "name": "Positioning: Positioning accuracy", + "configurable": false, + "description": "specifies the accuracy required for positioning in meters. This parameter specifies an upper bound in the error between estimated position and actual position. High-precision positioning might be very important for some verticals, not only working in in-door environments, but also in outdoor.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Yes: P.FUNC_6B -> if set to “0”, P.F_9A shall be omitted", + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.FUNC_8A", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "cm", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "100", + "alias": "" + } + } + ] + }, + { + "name": "Positioning: Measurement frequency", + "configurable": false, + "description": "specifies how often the location information is provided.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Yes: P.FUNC_6B-> if set to “0”, P.F_9B shall be omitted.", + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { + "name": "Functionallity", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.FUNC_8B", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "ms", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1000", + "alias": "" + } + } + ] + }, + { + "name": "Number of devices", + "configurable": false, + "description": "It is defined as the maximum number of devices that can be subscribed to the network slice service", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { + "name": "Network Optimisation", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.NO_1", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "ms", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "10", + "alias": "" + } + } + ] + }, + { + "name": "Device density", + "configurable": false, + "description": "It is defined as the number of devices per area unit that can maintain active connections with the network slice service. With active connection, we mean that devices are able to exchange data with the network.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "INTEGER", + "serviceSpecCharRelationship": [ + { + "name": "Network Optimisation", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.NO_2", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "devices/km^2", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1000", + "alias": "" + } + } + ] + }, + { + "name": "Coverage profile", + "configurable": false, + "description": "specifies the geographical areas where the devices can access the network slice service.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "serviceSpecCharRelationship": [ + { + "name": "Network Optimisation", + "role": "tag", + "relationshipType": "tag" + }, + { + "role": "Facility sites", + "name": "Coverage profile: Facility sites", + "relationshipType": "dependency" + }, + { + "role": "Coverage area", + "name": "Coverage profile: Coverage area", + "relationshipType": "dependency" + } + ], + "serviceSpecCharacteristicValue": [ + + ] + }, + { + "name": "Coverage profile: Facility sites", + "configurable": false, + "description": "define the list of sites capable of supporting the deployment of the network slice service.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "SET", + "serviceSpecCharRelationship": [ + { + "name": "Network Optimisation", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.NO_3A", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "Oslo (Norway)" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "Martlesham (UK)" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "Madrid (Spain)" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "Patras (Greece)" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "4", + "alias": "Aveiro (Portugal)" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "5", + "alias": "Berlin (Germany)" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "6", + "alias": "Munich (Germany)" + } + } + ] + }, + { + "name": "Coverage profile: Coverage area", + "configurable": false, + "description": "defines the spatial boundaries where network slice service will provide coverage with a quality that is enough for the targeted use case. This quality is expressed through edge cell coverage probability, a safety factor used to determine the guaranteed level of probability (e.g. 90%, 95%, 99%) of a successful radio communication of any device placed within the specified coverage area.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "SET", + "serviceSpecCharRelationship": [ + { + "name": "Network Optimisation", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.NO_3B", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "GSP, km", + "valueFrom": null, + "valueTo": null, + "valueType": "STRING", + "validFor": null, + "value": { + "value": "{}", + "alias": "" + } + } + ] + }, + { + "name": "Mobility", + "configurable": false, + "description": "Mobility refers to the ability of providing seamless service experiences to devices while moving. It can be defined as the maximum device speed at which a certain QoS (specified in P.PERF_4) can be achieved.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "ENUM", + "serviceSpecCharRelationship": [ + { + "name": "Network Optimisation", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.NO_4", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "Stationary: 0 km/h" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "Pedestrian: 0-10 km/h" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "Vehicular: 10-120 km/h" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "High speed vehicular: 120-500 km/h" + } + } + ] + }, + { + "name": "Service lifetime", + "configurable": false, + "description": "It provides information on some aspects that deserve attention during the lifetime of a network slice service.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "serviceSpecCharRelationship": [ + { + "name": "Network Optimisation", + "role": "tag", + "relationshipType": "tag" + }, + { + "role": "Service duration (start-end)", + "name": "Service lifetime: Service duration (start-end)", + "relationshipType": "dependency" + }, + { + "role": "Service deactivation-activation support", + "name": "Service lifetime: Service deactivation-activation support", + "relationshipType": "dependency" + }, + { + "role": "Periodicity type", + "name": "Service lifetime: Periodicity type", + "relationshipType": "dependency" + }, + { + "role": "Daily service deactivation-activation", + "name": "Service lifetime: Daily service deactivation-activation", + "relationshipType": "dependency" + }, + { + "role": "Monthly service deactivation-activation", + "name": "Service lifetime: Monthly service deactivation-activation", + "relationshipType": "dependency" + } + ], + "serviceSpecCharacteristicValue": [ + + ] + }, + { + "name": "Service lifetime: Service duration (start-end)", + "configurable": false, + "description": "allows CSC to specify when it wants the service running, and when it can be decommissioned. The duration for a network slice service can be highly variable, ranging from short-lived services (e.g. an uRLLC slice service provided to public safety for disaster management) to long-lasting services (e.g. an eMBB slice service provided to a MVNO.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "STRING", + "serviceSpecCharRelationship": [ + { + "name": "Network Optimisation", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.NO_5A", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "[mm-dd-yyyy hh:mm, mm-dd-yyyy hh:mm]", + "valueFrom": null, + "valueTo": null, + "valueType": "STRING", + "validFor": null, + "value": { + "value": "", + "alias": "" + } + } + ] + }, + { + "name": "Service lifetime: Service deactivation-activation support", + "configurable": false, + "description": "indicates if service deactivation-activation operations (i.e. once deactivated, the service is activated again) is allowed throughout the service duration.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "ENUM", + "serviceSpecCharRelationship": [ + { + "name": "Network Optimisation", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.NO_5B", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "Not supported" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "Supported without periodicity" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "Supported with periodicity" + } + } + ] + }, + { + "name": "Service lifetime: Periodicity type", + "configurable": false, + "description": "assuming “supported with periodicity” is selected for P.NO_5B, this parameter allows specifying if the periodicity for deactivation-activation is programmed on a daily basis (e.g. service operative during the day, and deactivated at night), weekly basis (e.g. service operative from Monday to Friday, and deactivated for the weekend) or monthly basis", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Yes: P.NO_5C-> if not set to “1”, P.NO_5E shall be omitted", + "valueType": "ENUM", + "serviceSpecCharRelationship": [ + { + "name": "Network Optimisation", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.NO_5C", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "0", + "alias": "Daily basis" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "Weekly basis" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "Monthly basis" + } + } + ] + }, + { + "name": "Service lifetime: Daily service deactivation-activation", + "configurable": false, + "description": "allows programming the time interval the service shall remain deactivated (from hh:mm to hh:mm) every day.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Yes: P.NO_5C-> if not set to “0”, P.NO_5D shall be omitted.", + "valueType": "STRING", + "serviceSpecCharRelationship": [ + { + "name": "Network Optimisation", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.NO_5D", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "[hh:mm, hh:mm]", + "valueFrom": null, + "valueTo": null, + "valueType": "STRING", + "validFor": null, + "value": { + "value": "", + "alias": "" + } + } + ] + }, + { + "name": "Service lifetime: Weekly service deactivation-activation", + "configurable": false, + "description": "allows programming the time interval the service shall remain deactivated (from dd hh:mm to dd hh:mm) every week.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Yes: P.NO_5C-> if not set to “1”, P.NO_5E shall be omitted.", + "valueType": "STRING", + "serviceSpecCharRelationship": [ + { + "name": "Network Optimisation", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.NO_5E", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "[dd hh:mm, dd hh:mm]", + "valueFrom": null, + "valueTo": null, + "valueType": "STRING", + "validFor": null, + "value": { + "value": "", + "alias": "" + } + } + ] + }, + { + "name": "Service lifetime: Monthly service deactivation-activation", + "configurable": false, + "description": "allows programming the time interval the service shall remain deactivated (from mm-dd-yyyy hh:mm to mm-dd-yyyy hh:mm) every month.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": "Yes: P.NO_5C-> if not set to “2”, P.NO_5F shall be omitted.", + "valueType": "STRING", + "serviceSpecCharRelationship": [ + { + "name": "Network Optimisation", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.NO_5F", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "[mm-dd hh:mm, mm-dd hh:mm]", + "valueFrom": null, + "valueTo": null, + "valueType": "STRING", + "validFor": null, + "value": { + "value": "", + "alias": "" + } + } + ] + } + ], + "serviceSpecRelationship": [ + ], + "targetServiceSchema": null +} diff --git a/src/main/resources/vinnisb/vinnisb-testing.json b/src/main/resources/vinnisb/vinnisb-testing.json new file mode 100644 index 0000000..d3f39eb --- /dev/null +++ b/src/main/resources/vinnisb/vinnisb-testing.json @@ -0,0 +1,112 @@ +{ + "name": "VINNI-SB Service Testing", + "description": "VINNI-SB Service Tetsting", + "version": "0.1.0", + "isBundle": false, + "attachment": [ + ], + "relatedParty": [ + ], + "resourceSpecification": [ + ], + "serviceLevelSpecification": [ + ], + "serviceSpecCharacteristic": [ + { + + "name": "On-demand TaaS support", + "configurable": false, + "description": "if yes, it means that the CSC can modify/update test campaigns at run-time.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "BINARY", + "serviceSpecCharRelationship": [ + { + "name": "Monitoring", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.TEST_1", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "0", + "alias": "Raw" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "BINARY", + "validFor": null, + "value": { + "value": "1", + "alias": "Aggregated" + } + } + ] + }, + { + "name": "DL peak data rate", + "configurable": false, + "description": "the maximum achievable downstream throughput at IP layer of one single device under ideal conditions.", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 0, + "regex": null, + "valueType": "FLOAT", + "serviceSpecCharRelationship": [ + { + "name": "Performance", + "role": "tag", + "relationshipType": "tag" + }, + { + "name": "P.PERF_1B", + "role": "identifier", + "relationshipType": "identifier" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "Gbps", + "valueFrom": null, + "valueTo": null, + "valueType": "FLOAT", + "validFor": null, + "value": { + "value": "1.0", + "alias": "" + } + } + ] + } + ], + "serviceSpecRelationship": [ + ], + "targetServiceSchema": null +} diff --git a/src/main/resources/vinnisb/vinnisb.json b/src/main/resources/vinnisb/vinnisb.json new file mode 100644 index 0000000..6e97700 --- /dev/null +++ b/src/main/resources/vinnisb/vinnisb.json @@ -0,0 +1,95 @@ +{ + "name": "VINNI-SB Template", + "description": "VINNI-SB template", + "version": "0.1.0", + "isBundle": true, + "attachment": [ + ], + "relatedParty": [ + ], + "resourceSpecification": [ + ], + "serviceLevelSpecification": [ + ], + "serviceSpecCharacteristic": [ + { + "name": "5G-VINNI Service Type", + "configurable": false, + "description": "The service type is a parameter that identifies the type of communication services the slice is designed to support", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "SET", + "serviceSpecCharRelationship": [ + { + "name": "Service Type", + "role": "tag", + "relationshipType": "tag" + } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "1", + "alias": "eMBB" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "2", + "alias": "uRLLC" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "3", + "alias": "mIoT" + } + }, + { + "isDefault": false, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "INTEGER", + "validFor": null, + "value": { + "value": "4", + "alias": "Customised" + } + } + ] + } + ], + "serviceSpecRelationship": [ + ], + "targetServiceSchema": null +} diff --git a/src/test/java/org/etsi/osl/services/api/AlarmManagementIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/AlarmManagementIntegrationTest.java new file mode 100644 index 0000000..8b60016 --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/AlarmManagementIntegrationTest.java @@ -0,0 +1,273 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.services.api; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.hamcrest.CoreMatchers.is; +import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; + +import org.apache.camel.ProducerTemplate; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.OpenAPISpringBoot; +import org.etsi.osl.tmf.am642.model.AffectedService; +import org.etsi.osl.tmf.am642.model.Alarm; +import org.etsi.osl.tmf.am642.model.AlarmCreate; +import org.etsi.osl.tmf.am642.model.AlarmStateType; +import org.etsi.osl.tmf.am642.model.AlarmType; +import org.etsi.osl.tmf.am642.model.AlarmUpdate; +import org.etsi.osl.tmf.am642.model.Comment; +import org.etsi.osl.tmf.am642.model.PerceivedSeverityType; +import org.etsi.osl.tmf.am642.model.ProbableCauseType; +import org.etsi.osl.tmf.am642.reposervices.AlarmRepoService; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.WebApplicationContext; + +@RunWith(SpringRunner.class) +@Transactional +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK, classes = OpenAPISpringBoot.class) +@AutoConfigureMockMvc +@ActiveProfiles("testing") +public class AlarmManagementIntegrationTest { + + private static final transient Log logger = LogFactory.getLog(AlarmManagementIntegrationTest.class.getName()); + + @Autowired + private MockMvc mvc; + + @Autowired + AlarmRepoService alarmRepoService; + + @Autowired + private WebApplicationContext context; + + + @Autowired + private ProducerTemplate template; + + @Value("${ALARMS_ADD_ALARM}") + private String ALARMS_ADD_ALARM =""; + + @Value("${ALARMS_UPDATE_ALARM}") + private String ALARMS_UPDATE_ALARM =""; + + @Value("${ALARMS_GET_ALARM}") + private String ALARMS_GET_ALARM =""; + + @Before + public void setup() { + mvc = MockMvcBuilders.webAppContextSetup(context).apply(springSecurity()).build(); + } + + @WithMockUser(username = "osadmin", roles = { "ADMIN", "USER" }) + @Test + public void testAlarmCreateAndUpdate() throws UnsupportedEncodingException, IOException, Exception { + + AlarmCreate a = new AlarmCreate(); + a.setPerceivedSeverity(PerceivedSeverityType.warning.name()); + a.setState(AlarmStateType.raised.name()); + a.setAckState("unacknowledged"); + a.setAlarmRaisedTime(OffsetDateTime.now(ZoneOffset.UTC).toString()); + a.setSourceSystemId("NFVO"); + a.setAffectedService(new ArrayList<>()); + a.setAlarmDetails("details..."); + a.setAlarmType(AlarmType.qualityOfServiceAlarm.name()); + a.setIsRootCause(true); + a.setProbableCause(ProbableCauseType.resourceAtOrNearingCapacity.name()); + a.reportingSystemId("OSA"); + + Comment comment = new Comment(); + comment.setComment("test"); + a.addCommentItem(comment ); + + AffectedService as = new AffectedService(); + as.setId("aServiceID"); + as.setType("Service"); + a.getAffectedService().add(as); + String response = mvc + .perform(MockMvcRequestBuilders.post("/alarmManagement/v4/alarm") + .with(SecurityMockMvcRequestPostProcessors.csrf()).contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson(a))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("alarmDetails", is("details..."))).andExpect(status().isOk()).andReturn() + .getResponse().getContentAsString(); + + assertThat(alarmRepoService.findAll().size()).isEqualTo(1); + + Alarm alarm = JsonUtils.toJsonObj(response, Alarm.class); + assertThat(alarm.getAckState()).isEqualTo("unacknowledged"); + assertThat(alarm.getSourceSystemId()).isEqualTo("NFVO"); + assertThat(alarm.getPerceivedSeverity()).isEqualTo(PerceivedSeverityType.warning.name()); + assertThat(alarm.getAlarmType()).isEqualTo(AlarmType.qualityOfServiceAlarm.name()); + assertThat(alarm.getAlarmRaisedTime() ).isNotNull(); + assertThat(alarm.getComment().size() ).isEqualTo(1); + + AlarmUpdate aupd = new AlarmUpdate(); + aupd.setAckState("acknowledged"); + aupd.setAckSystemId("OSA"); + aupd.setPerceivedSeverity(PerceivedSeverityType.warning.name()); + aupd.setState(AlarmStateType.updated.name()); + comment = new Comment(); + comment.setComment("test"); + aupd.addCommentItem(comment ); + + response = mvc + .perform(MockMvcRequestBuilders.patch("/alarmManagement/v4/alarm/" + alarm.getId() ) + .with(SecurityMockMvcRequestPostProcessors.csrf()).contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson(aupd))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("alarmDetails", is("details..."))).andExpect(status().isOk()).andReturn() + .getResponse().getContentAsString(); + + assertThat(alarmRepoService.findAll().size()).isEqualTo(1); + + alarm = JsonUtils.toJsonObj(response, Alarm.class); + assertThat(alarm.getAckState()).isEqualTo("acknowledged"); + assertThat(alarm.getState()).isEqualTo( AlarmStateType.updated.name() ); + assertThat(alarm.getSourceSystemId()).isEqualTo("NFVO"); + assertThat(alarm.getAckSystemId()).isEqualTo("OSA"); + assertThat(alarm.getPerceivedSeverity()).isEqualTo(PerceivedSeverityType.warning.name()); + assertThat(alarm.getAlarmType()).isEqualTo(AlarmType.qualityOfServiceAlarm.name()); + assertThat(alarm.getComment().size() ).isEqualTo(2); + + aupd = new AlarmUpdate(); + aupd.setState(AlarmStateType.cleared.name()); + aupd.setAckSystemId("OSA"); + aupd.setPerceivedSeverity(PerceivedSeverityType.cleared.name()); + response = mvc + .perform(MockMvcRequestBuilders.patch("/alarmManagement/v4/alarm/" + alarm.getId() ) + .with(SecurityMockMvcRequestPostProcessors.csrf()).contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson(aupd))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("alarmDetails", is("details..."))).andExpect(status().isOk()).andReturn() + .getResponse().getContentAsString(); + + assertThat(alarmRepoService.findAll().size()).isEqualTo(1); + + alarm = JsonUtils.toJsonObj(response, Alarm.class); + assertThat(alarm.getAckState()).isEqualTo("acknowledged"); + assertThat(alarm.getSourceSystemId()).isEqualTo("NFVO"); + assertThat(alarm.getAckSystemId()).isEqualTo("OSA"); + assertThat(alarm.getState()).isEqualTo( AlarmStateType.cleared.name() ); + assertThat(alarm.getPerceivedSeverity()).isEqualTo(PerceivedSeverityType.cleared.name()); + assertThat(alarm.getAlarmType()).isEqualTo(AlarmType.qualityOfServiceAlarm.name()); + + } + + + @WithMockUser(username = "osadmin", roles = { "ADMIN", "USER" }) + @Test + public void testAlarmCreateAndUpdateRoutes() throws IOException { + AlarmCreate a = new AlarmCreate(); + a.setPerceivedSeverity(PerceivedSeverityType.warning.name()); + a.setState(AlarmStateType.raised.name()); + a.setAckState("unacknowledged"); + a.setAlarmRaisedTime(OffsetDateTime.now(ZoneOffset.UTC).toString()); + a.setSourceSystemId("NFVO"); + a.setAffectedService(new ArrayList<>()); + a.setAlarmDetails("details..."); + a.setAlarmType(AlarmType.qualityOfServiceAlarm.name()); + a.setIsRootCause(true); + a.setProbableCause(ProbableCauseType.resourceAtOrNearingCapacity.name()); + a.reportingSystemId("OSA"); + + AffectedService as = new AffectedService(); + as.setId("aServiceID"); + as.setType("Service"); + a.getAffectedService().add(as); + + String body = JsonUtils.toJsonString(a); + Object response = template.requestBody( ALARMS_ADD_ALARM, body); + + assertThat( response).isInstanceOf( String.class); + Alarm alarm = JsonUtils.toJsonObj( (String)response, Alarm.class); + assertThat(alarm.getAckState()).isEqualTo("unacknowledged"); + assertThat(alarm.getSourceSystemId()).isEqualTo("NFVO"); + assertThat(alarm.getPerceivedSeverity()).isEqualTo(PerceivedSeverityType.warning.name()); + assertThat(alarm.getAlarmType()).isEqualTo(AlarmType.qualityOfServiceAlarm.name()); + + + AlarmUpdate aupd = new AlarmUpdate(); + aupd.setAckState("acknowledged"); + aupd.setAckSystemId("OSA"); + aupd.setPerceivedSeverity(PerceivedSeverityType.warning.name()); + aupd.setState(AlarmStateType.updated.name()); + body = JsonUtils.toJsonString(aupd); + response = template.requestBodyAndHeader( ALARMS_UPDATE_ALARM, body , "alarmid", alarm.getId()); + + assertThat(alarmRepoService.findAll().size()).isEqualTo(1); + + alarm = JsonUtils.toJsonObj( (String)response, Alarm.class);; + assertThat(alarm.getAckState()).isEqualTo("acknowledged"); + assertThat(alarm.getState()).isEqualTo( AlarmStateType.updated.name() ); + assertThat(alarm.getSourceSystemId()).isEqualTo("NFVO"); + assertThat(alarm.getAckSystemId()).isEqualTo("OSA"); + assertThat(alarm.getPerceivedSeverity()).isEqualTo(PerceivedSeverityType.warning.name()); + assertThat(alarm.getAlarmType()).isEqualTo(AlarmType.qualityOfServiceAlarm.name()); + + aupd = new AlarmUpdate(); + aupd.setState(AlarmStateType.cleared.name()); + aupd.setAckSystemId("OSA"); + aupd.setPerceivedSeverity(PerceivedSeverityType.cleared.name()); + body = JsonUtils.toJsonString(aupd); + response = template.requestBodyAndHeader( ALARMS_UPDATE_ALARM, body , "alarmid", alarm.getId()); + + assertThat(alarmRepoService.findAll().size()).isEqualTo(1); + + alarm = JsonUtils.toJsonObj( (String)response, Alarm.class); + assertThat(alarm.getAckState()).isEqualTo("acknowledged"); + assertThat(alarm.getSourceSystemId()).isEqualTo("NFVO"); + assertThat(alarm.getAckSystemId()).isEqualTo("OSA"); + assertThat(alarm.getState()).isEqualTo( AlarmStateType.cleared.name() ); + assertThat(alarm.getPerceivedSeverity()).isEqualTo(PerceivedSeverityType.cleared.name()); + assertThat(alarm.getAlarmType()).isEqualTo(AlarmType.qualityOfServiceAlarm.name()); + + + + assertThat(alarmRepoService.findAll().size()).isEqualTo(1); + + } + + +} diff --git a/src/test/java/org/etsi/osl/services/api/CustomerIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/CustomerIntegrationTest.java new file mode 100644 index 0000000..c710490 --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/CustomerIntegrationTest.java @@ -0,0 +1,201 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.services.api; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.hamcrest.CoreMatchers.is; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.OpenAPISpringBoot; +import org.etsi.osl.tmf.cm629.model.Customer; +import org.etsi.osl.tmf.cm629.model.CustomerCreate; +import org.etsi.osl.tmf.cm629.model.CustomerUpdate; +import org.etsi.osl.tmf.cm629.service.CustomerRepoService; +import org.etsi.osl.tmf.pm632.model.ContactMedium; +import org.etsi.osl.tmf.pm632.model.MediumCharacteristic; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.transaction.annotation.Transactional; + +@RunWith(SpringRunner.class) +@Transactional +@SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) +@AutoConfigureMockMvc +@ActiveProfiles("testing") +public class CustomerIntegrationTest { + + + private static final transient Log logger = LogFactory.getLog( CustomerIntegrationTest.class.getName()); + + + @Autowired + private MockMvc mvc; + + + @Autowired + CustomerRepoService customerRepoService; + + +// @Autowired +// private WebApplicationContext context; +// +// +// @Before +// public void setup() { +// mvc = MockMvcBuilders +// .webAppContextSetup(context).dispatchOptions(true) +// .apply( SecurityMockMvcConfigurers.springSecurity()) +// .build(); +// } + + + @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) + @Test + public void addCustomer() throws Exception { + + CustomerCreate cc = new CustomerCreate(); + cc.setName("A Customer"); + RelatedParty engagedParty = new RelatedParty(); + engagedParty.name("An Organization"); + engagedParty.setUuid(UUID.randomUUID().toString()); + cc.setEngagedParty(engagedParty ); + + List contactMediums = new ArrayList<>(); + ContactMedium cm = new ContactMedium(); + contactMediums.add(cm); + cm.setMediumType("email"); + cm.setPreferred(true); + MediumCharacteristic medChar = new MediumCharacteristic(); + medChar.setEmailAddress( "test@openslice.io" ); + cm.setCharacteristic(medChar); + cc.setContactMedium(contactMediums ); + + + + String response = mvc.perform(MockMvcRequestBuilders.post("/customerManagement/v4/customer") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( cc ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("A Customer"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + + assertThat( customerRepoService.findAll().size() ).isEqualTo( 1 ); + + Customer respc = JsonUtils.toJsonObj( response, Customer.class); + assertThat( respc.getContactMedium().stream().findFirst().get().getMediumType() ).isEqualTo("email"); + assertThat( respc.getContactMedium().stream().findFirst().get().getCharacteristic().getEmailAddress() ).isEqualTo("test@openslice.io"); + + + CustomerUpdate cu = new CustomerUpdate(); + cu.setEngagedParty( respc.getEngagedParty() ); + cm = new ContactMedium(); + cm.setMediumType("phone"); + medChar = new MediumCharacteristic(); + medChar.setPhoneNumber("555000"); + cm.setCharacteristic(medChar); + contactMediums = new ArrayList<>(); + for (ContactMedium contactMedium : respc.getContactMedium()) { + contactMediums.add(contactMedium); + } + contactMediums.add(cm); + cu.setContactMedium(contactMediums); + + String responseUpd = mvc.perform(MockMvcRequestBuilders.patch("/customerManagement/v4/customer/" + respc.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( cu ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("A Customer"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + + assertThat( customerRepoService.findAll().size() ).isEqualTo( 1 ); + + respc = JsonUtils.toJsonObj( responseUpd, Customer.class); + + assertThat( respc.getContactMedium().size() ).isEqualTo(2); + + String responseGet = mvc.perform(MockMvcRequestBuilders.get("/customerManagement/v4/customer") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( cc ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andReturn().getResponse().getContentAsString(); + + + List respcs = JsonUtils.toJsonObj( responseGet, ArrayList.class); + + assertThat( respcs.size() ).isEqualTo( 1 ); + + + responseGet = mvc.perform(MockMvcRequestBuilders.get("/customerManagement/v4/customer/" + respc.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( cc ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("A Customer"))) + .andReturn().getResponse().getContentAsString(); + + + respc = JsonUtils.toJsonObj( responseGet, Customer.class); + + + + String responseDel = mvc.perform(MockMvcRequestBuilders + .delete("/customerManagement/v4/customer/" + respc.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( cu ) )) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + + assertThat( customerRepoService.findAll().size() ).isEqualTo( 0 ); + + } + +} diff --git a/src/test/java/org/etsi/osl/services/api/JsonUtils.java b/src/test/java/org/etsi/osl/services/api/JsonUtils.java new file mode 100644 index 0000000..404d704 --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/JsonUtils.java @@ -0,0 +1,39 @@ +package org.etsi.osl.services.api; + +import java.io.IOException; +import java.io.InputStream; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; + +/** + * @author ctranoris + * + */ +public class JsonUtils { + + static byte[] toJson(Object object) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.writeValueAsBytes(object); + } + + static String toJsonString(Object object) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.writeValueAsString(object); + } + + static T toJsonObj(String content, Class valueType) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.readValue(content, valueType); + } + + static T toJsonObj(InputStream content, Class valueType) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper.readValue(content, valueType); + } + +} diff --git a/src/test/java/org/etsi/osl/services/api/LCMRulesIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/LCMRulesIntegrationTest.java new file mode 100644 index 0000000..12a1205 --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/LCMRulesIntegrationTest.java @@ -0,0 +1,212 @@ +package org.etsi.osl.services.api; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.hamcrest.CoreMatchers.is; +import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.OpenAPISpringBoot; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.etsi.osl.tmf.lcm.model.ELCMRulePhase; +import org.etsi.osl.tmf.lcm.model.LCMRuleSpecification; +import org.etsi.osl.tmf.lcm.model.LCMRuleSpecificationCreate; +import org.etsi.osl.tmf.lcm.model.LCMRuleSpecificationUpdate; +import org.etsi.osl.tmf.lcm.reposervices.LCMRuleSpecificationRepoService; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.WebApplicationContext; + +@RunWith(SpringRunner.class) +@Transactional +@SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) +//@AutoConfigureTestDatabase //this automatically uses h2 +@AutoConfigureMockMvc +@ActiveProfiles("testing") +//@TestPropertySource( +// locations = "classpath:application-testing.yml") +public class LCMRulesIntegrationTest { + + private static final transient Log logger = LogFactory.getLog( LCMRulesIntegrationTest.class.getName()); + + + @Autowired + private MockMvc mvc; + + @Autowired + private WebApplicationContext context; + + + @Autowired + LCMRuleSpecificationRepoService lcmRuleSpecificationRepoService; + + @Before + public void setup() { + mvc = MockMvcBuilders + .webAppContextSetup(context) + .apply(springSecurity()) + .build(); + } + + @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) + @Test + + public void addLCMRule() throws Exception { + + + LCMRuleSpecificationCreate c = new LCMRuleSpecificationCreate(); + c.setName("NewT"); + c.setLcmrulephase( ELCMRulePhase.AFTER_ACTIVATION.getValue() ); + c.setCode("CODE"); + c.setContent("CONTENT"); + c.setServiceSpecs( new ArrayList<>()); + ServiceSpecificationRef specref = new ServiceSpecificationRef(); + specref.setId("0x0x1"); + specref.setName("SPECREF"); + c.getServiceSpecs().add(specref ); + + String response = mvc.perform(MockMvcRequestBuilders.post("/lcmrulesmanagement/v1/lcmRuleSpecification") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( c ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("NewT"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + + assertThat( lcmRuleSpecificationRepoService.findAll().size() ).isEqualTo( 1 ); + + LCMRuleSpecification resp = JsonUtils.toJsonObj(response, LCMRuleSpecification.class); + assertThat( resp.getContent() ).isEqualTo( "CONTENT" ); + assertThat( resp.getServiceSpecs().size() ).isEqualTo( 1 ); + assertThat( resp.getServiceSpecs().stream().findFirst().get().getName() ).isEqualTo( "SPECREF" ); + + + //we will add now a new rule to service + LCMRuleSpecificationCreate c2 = new LCMRuleSpecificationCreate(); + c2.setName("NewT2"); + c2.setLcmrulephase( ELCMRulePhase.PRE_PROVISION.getValue() ); + c2.setCode("CODE2"); + c2.setContent("CONTENT2"); + c2.setServiceSpecs( new ArrayList<>()); + c2.getServiceSpecs().add(specref ); + + String response2 = mvc.perform(MockMvcRequestBuilders.post("/lcmrulesmanagement/v1/lcmRuleSpecification") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( c2 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("NewT2"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + + assertThat( lcmRuleSpecificationRepoService.findAll().size() ).isEqualTo( 2 ); + LCMRuleSpecification resp2 = JsonUtils.toJsonObj(response2, LCMRuleSpecification.class); + assertThat( resp2.getContent() ).isEqualTo( "CONTENT2" ); + + assertThat( lcmRuleSpecificationRepoService.findAll().size() ).isEqualTo( 2 ); + for (LCMRuleSpecification iterable_element : lcmRuleSpecificationRepoService.findAll()) { + logger.info( iterable_element ); + + } + List rules = lcmRuleSpecificationRepoService.findByServiceSpecificationRefIdAndPhase("0x0x1", ELCMRulePhase.PRE_PROVISION.getValue()); + assertThat( rules.size() ).isEqualTo( 1 ); + rules = lcmRuleSpecificationRepoService.findByServiceSpecificationRefIdAndPhase("0x0x1", ELCMRulePhase.AFTER_ACTIVATION.getValue()); + assertThat( rules.size() ).isEqualTo( 1 ); + + //attach same rule on other spec + + LCMRuleSpecificationUpdate cu1 = new LCMRuleSpecificationUpdate(); + cu1.setServiceSpecs( new ArrayList<>()); + cu1.setLcmrulephase( resp.getLcmrulephase() ); + cu1.getServiceSpecs().addAll(resp.getServiceSpecs()); + ServiceSpecificationRef specref2 = new ServiceSpecificationRef(); + specref2.setId("0x0x2"); + specref2.setName("SPECREF2"); + cu1.getServiceSpecs().add(specref2 ); + + + String response3 = mvc.perform(MockMvcRequestBuilders.patch("/lcmrulesmanagement/v1/lcmRuleSpecification/"+resp.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( cu1 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("NewT"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + resp = JsonUtils.toJsonObj(response3, LCMRuleSpecification.class); + assertThat( lcmRuleSpecificationRepoService.findAll().size() ).isEqualTo( 2 ); + + rules = lcmRuleSpecificationRepoService.findByServiceSpecificationRefIdAndPhase("0x0x1", ELCMRulePhase.AFTER_ACTIVATION.getValue()); + assertThat( rules.size() ).isEqualTo( 1 ); + rules = lcmRuleSpecificationRepoService.findByServiceSpecificationRefIdAndPhase("0x0x2", ELCMRulePhase.AFTER_ACTIVATION.getValue()); + assertThat( rules.size() ).isEqualTo( 1 ); + + for (LCMRuleSpecification iterable_element : lcmRuleSpecificationRepoService.findAll()) { + logger.info( iterable_element ); + + } + +// rules = lcmRuleSpecificationRepoService.findByServiceSpecificationRefId("0x0x1"); +// assertThat( rules.size() ).isEqualTo( 2 ); +// assertThat( resp.getServiceSpecificationRefs().size() ).isEqualTo( 2 ); +// rules = lcmRuleSpecificationRepoService.findByServiceSpecificationRefId("0x0x2"); +// assertThat( rules.size() ).isEqualTo( 1 ); + + + //delete rule from spec + + LCMRuleSpecificationUpdate cu2 = new LCMRuleSpecificationUpdate(); + cu2.setServiceSpecs( new ArrayList<>()); + cu2.getServiceSpecs().addAll( resp.getServiceSpecs()); + assertThat( cu2.getServiceSpecs().size() ).isEqualTo( 2 ); + cu2.getServiceSpecs().remove(0); + + String response4 = mvc.perform(MockMvcRequestBuilders.patch("/lcmrulesmanagement/v1/lcmRuleSpecification/"+resp.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( cu2 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("NewT"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + resp = JsonUtils.toJsonObj(response4, LCMRuleSpecification.class); + assertThat( resp.getServiceSpecs().size() ).isEqualTo( 1 ); + + assertThat( lcmRuleSpecificationRepoService.findAll().size() ).isEqualTo( 2 ); + +// rules = lcmRuleSpecificationRepoService.findByServiceSpecificationRefId("0x0x1"); +// assertThat( rules.size() ).isEqualTo( 1 ); +// rules = lcmRuleSpecificationRepoService.findByServiceSpecificationRefId("0x0x2"); +// assertThat( rules.size() ).isEqualTo( 1 ); + + } + +} diff --git a/src/test/java/org/etsi/osl/services/api/PartyManagementIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/PartyManagementIntegrationTest.java new file mode 100644 index 0000000..7f00241 --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/PartyManagementIntegrationTest.java @@ -0,0 +1,265 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2020 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.services.api; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.hamcrest.CoreMatchers.is; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.util.ArrayList; +import java.util.List; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.type.TypeFactory; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.OpenAPISpringBoot; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.pm632.model.Characteristic; +import org.etsi.osl.tmf.pm632.model.ContactMedium; +import org.etsi.osl.tmf.pm632.model.Individual; +import org.etsi.osl.tmf.pm632.model.IndividualCreate; +import org.etsi.osl.tmf.pm632.model.MediumCharacteristic; +import org.etsi.osl.tmf.pm632.model.Organization; +import org.etsi.osl.tmf.pm632.model.OrganizationCreate; +import org.etsi.osl.tmf.pm632.reposervices.IndividualRepoService; +import org.etsi.osl.tmf.pm632.reposervices.OrganizationRepoService; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors; +import org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.WebApplicationContext; + +@RunWith(SpringRunner.class) +@Transactional +@SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) +@AutoConfigureMockMvc +@ActiveProfiles("testing") +public class PartyManagementIntegrationTest { + + + private static final transient Log logger = LogFactory.getLog( PartyManagementIntegrationTest.class.getName()); + + + @Autowired + private MockMvc mvc; + + @Autowired + IndividualRepoService individualRepoService; + + @Autowired + OrganizationRepoService organizationRepoService; +// +// @Autowired +// private FilterChainProxy filterChainProxy; +// +// @Autowired +// private WebApplicationContext wac; +// +// @Before +// public void setUp() { +// MockitoAnnotations.initMocks(this); +// this.mvc = MockMvcBuilders.webAppContextSetup(wac).dispatchOptions(true).addFilters(filterChainProxy).build(); +// } + + @Autowired + private WebApplicationContext context; + + + @Before + public void setup() { + mvc = MockMvcBuilders + .webAppContextSetup(context).dispatchOptions(true) + .apply( SecurityMockMvcConfigurers.springSecurity()) + .build(); + } + + @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) + @Test + public void addIndividual() throws Exception { + + IndividualCreate ic = new IndividualCreate(); + ic.setFamilyName("A Customer"); + + List contactMediums = new ArrayList<>(); + ContactMedium cm = new ContactMedium(); + contactMediums.add(cm); + cm.setMediumType("email"); + cm.setPreferred(true); + MediumCharacteristic medChar = new MediumCharacteristic(); + medChar.setEmailAddress( "test@openslice.io" ); + cm.setCharacteristic(medChar); + ic.setContactMedium(contactMediums ); + + String response = mvc.perform(MockMvcRequestBuilders.post("/party/v4/individual") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( ic ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("familyName", is("A Customer"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + + assertThat( individualRepoService.findAll().size() ).isEqualTo( 1 ); + + + Individual responseIndv = JsonUtils.toJsonObj(response, Individual.class); + assertThat( responseIndv.getContactMedium().stream().findFirst().get().getCharacteristic().getEmailAddress()).isEqualTo("test@openslice.io"); + } + + + @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) + @Test + public void addOrganization() throws Exception { + + OrganizationCreate oc = new OrganizationCreate(); + oc.setName("An Organization"); + + List contactMediums = new ArrayList<>(); + ContactMedium cm = new ContactMedium(); + contactMediums.add(cm); + cm.setMediumType("email"); + cm.setPreferred(true); + MediumCharacteristic medChar = new MediumCharacteristic(); + medChar.setEmailAddress( "test@openslice.io" ); + cm.setCharacteristic(medChar); + oc.setContactMedium(contactMediums ); + + + Characteristic partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName("EXTERNAL_TMFAPI_BASEURL"); + partyCharacteristicItem.value( new Any( "http://portal.openslice.io" )); + oc.addPartyCharacteristicItem(partyCharacteristicItem ); + + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName("EXTERNAL_TMFAPI_CLIENTREGISTRATIONID"); + partyCharacteristicItem.value( new Any( "authOpensliceProvider" )); + oc.addPartyCharacteristicItem(partyCharacteristicItem ); + + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName("EXTERNAL_TMFAPI_OAUTH2CLIENTID"); + partyCharacteristicItem.value( new Any( "osapiWebClientId" )); + oc.addPartyCharacteristicItem(partyCharacteristicItem ); + + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName("EXTERNAL_TMFAPI_OAUTH2CLIENTSECRET"); + partyCharacteristicItem.value( new Any( "secret" )); + oc.addPartyCharacteristicItem(partyCharacteristicItem ); + + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName("EXTERNAL_TMFAPI_OAUTH2SCOPES"); + partyCharacteristicItem.value( new Any( "admin;read" )); + oc.addPartyCharacteristicItem(partyCharacteristicItem ); + + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName("EXTERNAL_TMFAPI_OAUTH2TOKENURI"); + partyCharacteristicItem.value( new Any( "http://portal.openslice.io/osapi-oauth-server/oauth/token" )); + oc.addPartyCharacteristicItem(partyCharacteristicItem ); + + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName("EXTERNAL_TMFAPI_USERNAME"); + partyCharacteristicItem.value( new Any( "admin" )); + oc.addPartyCharacteristicItem(partyCharacteristicItem ); + + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName("EXTERNAL_TMFAPI_PASSWORD"); + partyCharacteristicItem.value( new Any( "openslice" )); + oc.addPartyCharacteristicItem(partyCharacteristicItem ); + + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName("EXTERNAL_TMFAPI_SERVICE_CATALOG_URLS"); + partyCharacteristicItem.value( new Any( "" )); + oc.addPartyCharacteristicItem(partyCharacteristicItem ); + + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName("EXTERNAL_TMFAPI_SERVICE_CATEGORY_URLS"); + partyCharacteristicItem.value( new Any( "" )); + oc.addPartyCharacteristicItem(partyCharacteristicItem ); + + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName("EXTERNAL_TMFAPI_SERVICE_ORDER_URLS"); + partyCharacteristicItem.value( new Any( "" )); + oc.addPartyCharacteristicItem(partyCharacteristicItem ); + + + partyCharacteristicItem = new Characteristic(); + partyCharacteristicItem.setName("API2"); + partyCharacteristicItem.setValue( new Any("apiendpoint2")); + oc.addPartyCharacteristicItem(partyCharacteristicItem ); + + String response = mvc.perform(MockMvcRequestBuilders.post("/party/v4/organization") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( oc ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("An Organization"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + + assertThat( organizationRepoService.findAll().size() ).isEqualTo( 1 ); + + + Organization responseOrg = JsonUtils.toJsonObj(response, Organization.class); + assertThat( responseOrg.getContactMedium().stream().findFirst().get().getCharacteristic().getEmailAddress()).isEqualTo("test@openslice.io"); + assertThat( responseOrg.getPartyCharacteristic().size()).isEqualTo(12); + + + String resp = organizationRepoService.getPartnerOrganizationsWithAPI(); + + Class> clazz = (Class) List.class; + List orgz = mapJsonToObjectList( new Organization(), (String)resp, Organization.class ); + + assertThat( orgz.size() ).isEqualTo( 1 ); + assertThat( orgz.get(0).getPartyCharacteristic().size() ).isEqualTo( 12 ); + } + + protected static List mapJsonToObjectList(T typeDef,String json,Class clazz) throws Exception + { + List list; + ObjectMapper mapper = new ObjectMapper(); + System.out.println(json); + TypeFactory t = TypeFactory.defaultInstance(); + list = mapper.readValue(json, t.constructCollectionType(ArrayList.class,clazz)); + +// System.out.println(list); +// System.out.println(list.get(0).getClass()); + return list; + } + +} diff --git a/src/test/java/org/etsi/osl/services/api/ProductCatalogIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/ProductCatalogIntegrationTest.java new file mode 100644 index 0000000..de3915c --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/ProductCatalogIntegrationTest.java @@ -0,0 +1,351 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.services.api; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.hamcrest.CoreMatchers.is; +import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.util.UUID; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.OpenAPISpringBoot; +import org.etsi.osl.tmf.pcm620.model.BundledProductOffering; +import org.etsi.osl.tmf.pcm620.model.Catalog; +import org.etsi.osl.tmf.pcm620.model.CatalogCreate; +import org.etsi.osl.tmf.pcm620.model.CatalogUpdate; +import org.etsi.osl.tmf.pcm620.model.Category; +import org.etsi.osl.tmf.pcm620.model.CategoryCreate; +import org.etsi.osl.tmf.pcm620.model.CategoryRef; +import org.etsi.osl.tmf.pcm620.model.CategoryUpdate; +import org.etsi.osl.tmf.pcm620.model.ProductOffering; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingCreate; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingPriceCreate; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingPriceRef; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingRef; +import org.etsi.osl.tmf.pcm620.model.ProductOfferingTerm; +import org.etsi.osl.tmf.pcm620.model.ProductSpecificationCharacteristicValue; +import org.etsi.osl.tmf.pcm620.model.ProductSpecificationCharacteristicValueUse; +import org.etsi.osl.tmf.pcm620.model.ProductSpecificationCreate; +import org.etsi.osl.tmf.pcm620.model.ProductSpecificationRef; +import org.etsi.osl.tmf.pcm620.model.ResourceCandidateRef; +import org.etsi.osl.tmf.pcm620.model.SLARef; +import org.etsi.osl.tmf.pcm620.model.ServiceCandidateRef; +import org.etsi.osl.tmf.pcm620.reposervices.ProductCatalogRepoService; +import org.etsi.osl.tmf.pcm620.reposervices.ProductCategoryRepoService; +import org.etsi.osl.tmf.pcm620.reposervices.ProductOfferingPriceRepoService; +import org.etsi.osl.tmf.pcm620.reposervices.ProductOfferingRepoService; +import org.etsi.osl.tmf.pcm620.reposervices.ProductSpecificationRepoService; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.WebApplicationContext; + +@RunWith(SpringRunner.class) +@Transactional +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK, classes = OpenAPISpringBoot.class) +//@AutoConfigureTestDatabase //this automatically uses h2 +@AutoConfigureMockMvc +@ActiveProfiles("testing") +public class ProductCatalogIntegrationTest { + + private static final transient Log logger = LogFactory.getLog(ProductCatalogIntegrationTest.class.getName()); + + @Autowired + private MockMvc mvc; + + @Autowired + ProductCatalogRepoService catalogRepoService; + + @Autowired + ProductCategoryRepoService categRepoService; + + @Autowired + ProductOfferingRepoService productOfferingRepoService; + + + @Autowired + ProductOfferingPriceRepoService productOfferingPriceRepoService; + + + @Autowired + ProductSpecificationRepoService productSpecificationRepoService; + + @Autowired + private WebApplicationContext context; + + @Before + public void setup() { + mvc = MockMvcBuilders.webAppContextSetup(context).apply(springSecurity()).build(); + } + + @WithMockUser(username = "osadmin", roles = { "ADMIN", "USER" }) + @Test + public void testProductCatalog() throws Exception { + File scatalog = new File("src/test/resources/testProductCatalog.txt"); + InputStream in = new FileInputStream(scatalog); + String resvxf = IOUtils.toString(in, "UTF-8"); + + CatalogCreate scc = JsonUtils.toJsonObj(resvxf, CatalogCreate.class); + scc.setVersion("1.1"); + String response = mvc + .perform(MockMvcRequestBuilders.post("/productCatalogManagement/v4/catalog") + .with(SecurityMockMvcRequestPostProcessors.csrf()).contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson(scc))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Product Catalog"))).andExpect(status().isOk()).andReturn() + .getResponse().getContentAsString(); + + assertThat(catalogRepoService.findAll().size()).isEqualTo(1); + + Catalog responsesCatalog = JsonUtils.toJsonObj(response, Catalog.class); + assertThat(responsesCatalog.getName()).isEqualTo("Test Product Catalog"); + assertThat(responsesCatalog.getVersion()).isEqualTo("1.1"); + + assertThat(responsesCatalog.getCategoryObj().size()).isEqualTo(0); + + /** + * add category + */ + + File scat = new File("src/test/resources/testProductCategory.txt"); + in = new FileInputStream(scat); + String sc = IOUtils.toString(in, "UTF-8"); + + CategoryCreate scategcreate = JsonUtils.toJsonObj(sc, CategoryCreate.class); + scategcreate.setVersion("1.2"); + + response = mvc + .perform(MockMvcRequestBuilders.post("/productCatalogManagement/v4/category") + .with(SecurityMockMvcRequestPostProcessors.csrf()).contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson(scategcreate))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Product Category 2"))).andExpect(status().isOk()).andReturn() + .getResponse().getContentAsString(); + + assertThat(categRepoService.findAll().size()).isEqualTo(1); + + Category responsesCateg = JsonUtils.toJsonObj(response, Category.class); + assertThat(responsesCateg.getName()).isEqualTo("Test Product Category 2"); + assertThat(responsesCateg.getVersion()).isEqualTo("1.2"); + + + + + + /** + * update catalog with category + */ + CatalogUpdate scu = new CatalogUpdate(); + scu.setName("A new Name"); + scu.setVersion("1.3"); + CategoryRef categoryItem = new CategoryRef(); + categoryItem.setId(responsesCateg.getId()); + + scu.addCategoryItem(categoryItem); + response = mvc + .perform( + MockMvcRequestBuilders.patch("/productCatalogManagement/v4/catalog/" + responsesCatalog.getId()) + .with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON).content(JsonUtils.toJson(scu))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("A new Name"))).andExpect(status().isOk()).andReturn().getResponse() + .getContentAsString(); + + assertThat(catalogRepoService.findAll().size()).isEqualTo(1); + + responsesCatalog = JsonUtils.toJsonObj(response, Catalog.class); + assertThat(responsesCatalog.getName()).isEqualTo("A new Name"); + assertThat(responsesCatalog.getVersion()).isEqualTo("1.3"); + + assertThat(responsesCatalog.getCategoryObj().size()).isEqualTo(1); + assertThat(responsesCatalog.getCategoryRefs().get(0).getName()).isEqualTo("Test Product Category 2"); + + /** + * Product Offering + */ + File sspec = new File("src/test/resources/testProductOfferingSpec.json"); + in = new FileInputStream(sspec); + String sspectext = IOUtils.toString(in, "UTF-8"); + + ProductOfferingCreate sspeccr = JsonUtils.toJsonObj(sspectext, ProductOfferingCreate.class); + + ProductOfferingPriceRef productOfferingPriceItem = new ProductOfferingPriceRef(); + productOfferingPriceItem.setId(UUID.randomUUID().toString()); + productOfferingPriceItem.setName("a productOfferingPriceItem"); + sspeccr.addProductOfferingPriceItem(productOfferingPriceItem); + + ProductSpecificationCharacteristicValueUse prodSpecCharValueUseItem = new ProductSpecificationCharacteristicValueUse(); + prodSpecCharValueUseItem.setName("A test prodSpecCharValueUseItem"); + ProductSpecificationCharacteristicValue productSpecCharacteristicValueItem = new ProductSpecificationCharacteristicValue(); + productSpecCharacteristicValueItem.setUnitOfMeasure("meters"); + prodSpecCharValueUseItem.addProductSpecCharacteristicValueItem(productSpecCharacteristicValueItem); + sspeccr.addProdSpecCharValueUseItem(prodSpecCharValueUseItem); + + ServiceCandidateRef serviceCandidateRef = new ServiceCandidateRef(); + serviceCandidateRef.setId(UUID.randomUUID().toString()); + serviceCandidateRef.setName("a serviceCandidateRef"); + sspeccr.setServiceCandidate(serviceCandidateRef); + + ResourceCandidateRef aResourceCandidateRef = new ResourceCandidateRef(); + aResourceCandidateRef.setId(UUID.randomUUID().toString()); + aResourceCandidateRef.setName("a ResourceCandidateRef"); + sspeccr.setResourceCandidate(aResourceCandidateRef); + + SLARef aSLARef = new SLARef(); + aSLARef.setId(UUID.randomUUID().toString()); + aSLARef.setName("a SLARef"); + sspeccr.setServiceLevelAgreement(aSLARef); + + ProductOfferingTerm aProductOfferingTerm = new ProductOfferingTerm(); + aProductOfferingTerm.setName("a ProductOfferingTerm"); + sspeccr.addProductOfferingTermItem(aProductOfferingTerm); + + BundledProductOffering aBundledProductOffering = new BundledProductOffering(); + aBundledProductOffering.setId(UUID.randomUUID().toString()); + aBundledProductOffering.setName("a BundledProductOffering"); + sspeccr.addBundledProductOfferingItem(aBundledProductOffering); + + ProductSpecificationRef aProductSpecificationRef = new ProductSpecificationRef(); + aProductSpecificationRef.setId(UUID.randomUUID().toString()); + aProductSpecificationRef.setName("a aProductSpecificationRef"); + sspeccr.setProductSpecification(aProductSpecificationRef); + + // byte[] s = JsonUtils.toJson( sspeccr ); + + response = mvc + .perform(MockMvcRequestBuilders.post("/productCatalogManagement/v4/productOffering") + .with(SecurityMockMvcRequestPostProcessors.csrf()).contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson(sspeccr))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Product offering Spec"))).andExpect(status().isOk()).andReturn() + .getResponse().getContentAsString(); + assertThat(productOfferingRepoService.findAll().size()).isEqualTo(1); + ProductOffering responsesProdOff = JsonUtils.toJsonObj(response, ProductOffering.class); + assertThat(responsesProdOff.getUuid()).isNotNull(); + assertThat(responsesProdOff.getId()).isEqualTo( responsesProdOff.getUuid() ); + assertThat(responsesProdOff.getName()).isEqualTo("Test Product offering Spec"); + assertThat(responsesProdOff.getProductOfferingPrice().size()).isEqualTo(1); + assertThat(responsesProdOff.getProdSpecCharValueUse().size()).isEqualTo(1); + assertThat(responsesProdOff.getProdSpecCharValueUse().toArray(new ProductSpecificationCharacteristicValueUse[0])[0] + .getProductSpecCharacteristicValue().size()).isEqualTo(1); + + + + /** + * patch category + */ + + CategoryUpdate scategupd = JsonUtils.toJsonObj(sc, CategoryCreate.class); + scategupd.setVersion("1.2"); + scategupd.setName("Test Product Category UPD2"); + ProductOfferingRef poref = new ProductOfferingRef(); + poref.setId( responsesProdOff.getId() ); + poref.setName( responsesProdOff.getName() ); + scategupd.addProductOfferingItem (poref ); + response = mvc + .perform(MockMvcRequestBuilders.patch("/productCatalogManagement/v4/category/" + responsesCateg.getId()) + .with(SecurityMockMvcRequestPostProcessors.csrf()).contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson( scategupd ))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Product Category UPD2"))).andExpect(status().isOk()).andReturn() + .getResponse().getContentAsString(); + + assertThat(categRepoService.findAll().size()).isEqualTo(1); + assertThat(categRepoService.findAll().get(0).getProductOfferingRefs().size() ).isEqualTo(1); + + + + } + + + @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) + @Test + public void testProductOfferingPrice() throws Exception { + File testProductOfferingPrice = new File( "src/test/resources/testProductOfferingPrice.txt" ); + InputStream in = new FileInputStream( testProductOfferingPrice ); + String resvxf = IOUtils.toString(in, "UTF-8"); + + ProductOfferingPriceCreate scc = JsonUtils.toJsonObj( resvxf, ProductOfferingPriceCreate.class); + scc.setVersion("1.1"); + String response = mvc.perform(MockMvcRequestBuilders.post("/productCatalogManagement/v4/productOfferingPrice") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scc ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Recurring Charge for Business Firewall"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + + assertThat( productOfferingPriceRepoService.findAll().size() ).isEqualTo( 1 ); + + + } + + @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) + @Test + public void testProductSpec() throws Exception { + File testProductOfferingPrice = new File( "src/test/resources/testProductSpec.json" ); + InputStream in = new FileInputStream( testProductOfferingPrice ); + String resvxf = IOUtils.toString(in, "UTF-8"); + + ProductSpecificationCreate scc = JsonUtils.toJsonObj( resvxf, ProductSpecificationCreate.class); + scc.setVersion("1.1"); + String response = mvc.perform(MockMvcRequestBuilders.post("/productCatalogManagement/v4/productSpecification") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scc ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Acme Firepower NGFW"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + + assertThat( productSpecificationRepoService.findAll().size() ).isEqualTo( 1 ); + + + } + + + +} diff --git a/src/test/java/org/etsi/osl/services/api/ResourceCatalogIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/ResourceCatalogIntegrationTest.java new file mode 100644 index 0000000..039a619 --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/ResourceCatalogIntegrationTest.java @@ -0,0 +1,852 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.services.api; + + + +import static org.assertj.core.api.Assertions.assertThat; +import static org.hamcrest.CoreMatchers.is; +import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.net.URI; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.OpenAPISpringBoot; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.Attachment; +import org.etsi.osl.tmf.common.model.AttachmentRefOrValue; +import org.etsi.osl.tmf.common.model.EValueType; +import org.etsi.osl.tmf.common.model.Quantity; +import org.etsi.osl.tmf.rcm634.model.LogicalResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.LogicalResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.PhysicalResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.PhysicalResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.PhysicalResourceSpecificationUpdate; +import org.etsi.osl.tmf.rcm634.model.ResourceCandidateCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalog; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalogCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceCatalogUpdate; +import org.etsi.osl.tmf.rcm634.model.ResourceCategory; +import org.etsi.osl.tmf.rcm634.model.ResourceCategoryCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceCategoryRef; +import org.etsi.osl.tmf.rcm634.model.ResourceCategoryUpdate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecCharRelationship; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCharacteristic; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCharacteristicValue; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRelationship; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceCandidateRepoService; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceCatalogRepoService; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceCategoryRepoService; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceSpecificationRepoService; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.WebApplicationContext; +import net.minidev.json.JSONObject; + + +@RunWith(SpringRunner.class) +@Transactional +@SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) +//@AutoConfigureTestDatabase //this automatically uses h2 +@AutoConfigureMockMvc +@ActiveProfiles("testing") +//@TestPropertySource( +// locations = "classpath:application-testing.yml") +public class ResourceCatalogIntegrationTest { + + + private static final transient Log logger = LogFactory.getLog( ResourceCatalogIntegrationTest.class.getName()); + + private static final int FIXED_BOOTSTRAPS_SPECS = 3; + private static final int FIXED_BOOTSTRAPS_CATEGORIES = 2; + private static final int FIXED_BOOTSTRAPS_PHYSICAL_SPECS = 1; + private static final int FIXED_BOOTSTRAPS_LOGICAL_SPECS = 2; + + @Autowired + private MockMvc mvc; + + @Autowired + ResourceCatalogRepoService catalogRepoService; + + + @Autowired + ResourceCategoryRepoService categRepoService; + + @Autowired + ResourceSpecificationRepoService specRepoService; + + @Autowired + ResourceCandidateRepoService candidateRepoService; + + @Autowired + private WebApplicationContext context; + + @Before + public void setup() { + mvc = MockMvcBuilders + .webAppContextSetup(context) + .apply(springSecurity()) + .build(); + } + + + @Test + public void _countDefaultProperties() { + + assertThat( catalogRepoService.findAll().size() ).isEqualTo( 1 ); + assertThat( categRepoService.findAll().size() ).isEqualTo( 2 ); + assertThat( candidateRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); + + + assertThat( catalogRepoService.findByName( "Catalog" ) ).isNotNull() ; + assertThat( categRepoService.findByName( "Network Resources" ) ).isNotNull() ; + + ResourceCategory categ = categRepoService.findByName( "Network Resources" ); + assertThat( categ.getResourceCandidateRefs().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); + } + + + @WithMockUser(username="osadmin", roles = {"ADMIN", "USER"}) + @Test + public void addCatalogAddCategory() throws Exception { + File scatalog = new File( "src/test/resources/testResourceCatalog.txt" ); + InputStream in = new FileInputStream( scatalog ); + String resvxf = IOUtils.toString(in, "UTF-8"); + + ResourceCatalogCreate scc = JsonUtils.toJsonObj( resvxf, ResourceCatalogCreate.class); + + String response = mvc.perform(MockMvcRequestBuilders.post("/resourceCatalogManagement/v4/resourceCatalog") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scc ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Catalog"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + + assertThat( catalogRepoService.findAll().size() ).isEqualTo( 2 ); + + ResourceCatalog responsesCatalog = JsonUtils.toJsonObj(response, ResourceCatalog.class); + assertThat( responsesCatalog.getName() ).isEqualTo( "Test Catalog" ); + + assertThat( responsesCatalog.getCategoryObj().size()).isEqualTo(0); + + + /** + * add category + */ + + File scat = new File( "src/test/resources/testResourceCategory.txt" ); + in = new FileInputStream( scat ); + String sc = IOUtils.toString(in, "UTF-8"); + + ResourceCategoryCreate scategcreate = JsonUtils.toJsonObj( sc, ResourceCategoryCreate.class); + + response = mvc.perform(MockMvcRequestBuilders.post("/resourceCatalogManagement/v4/resourceCategory") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scategcreate ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Category 2"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + assertThat( categRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_CATEGORIES + 1 ); + + ResourceCategory responsesCateg = JsonUtils.toJsonObj(response, ResourceCategory.class); + assertThat( responsesCateg.getName() ).isEqualTo( "Test Category 2" ); + + response = mvc.perform(MockMvcRequestBuilders.get("/resourceCatalogManagement/v4/resourceCategory/"+responsesCateg.getId()) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scategcreate ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Category 2"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + responsesCateg = JsonUtils.toJsonObj(response, ResourceCategory.class); + assertThat( responsesCateg.getName() ).isEqualTo( "Test Category 2" ); + + + /** + * update catalog with category + */ + ResourceCatalogUpdate scu = new ResourceCatalogUpdate(); + scu.setName( responsesCatalog.getName() ); + ResourceCategoryRef categoryItem = new ResourceCategoryRef(); + categoryItem.setId( responsesCateg.getId() ); + + scu.addCategoryItem(categoryItem); + response = mvc.perform(MockMvcRequestBuilders.patch("/resourceCatalogManagement/v4/resourceCatalog/" + responsesCatalog.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scu ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Catalog"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + assertThat( catalogRepoService.findAll().size() ).isEqualTo( 2 ); + + responsesCatalog = JsonUtils.toJsonObj(response, ResourceCatalog.class); + assertThat(responsesCatalog.getName()).isEqualTo("Test Catalog"); + + + assertThat( responsesCatalog.getCategoryObj().size()).isEqualTo(1); + assertThat( responsesCatalog.getCategoryRefs().get(0).getName() ).isEqualTo( "Test Category 2" ); + assertThat( categRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_CATEGORIES + 1 ); + + /** + * Resource Spec + */ + File sspec = new File( "src/test/resources/testResourceSpec.json" ); + in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + + LogicalResourceSpecificationCreate sspeccr = JsonUtils.toJsonObj( sspectext, LogicalResourceSpecificationCreate.class); + + response = mvc.perform(MockMvcRequestBuilders.post("/resourceCatalogManagement/v4/resourceSpecification") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( sspeccr ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Resource Spec"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS +1 ); + LogicalResourceSpecification responsesSpec = JsonUtils.toJsonObj(response, LogicalResourceSpecification.class); + assertThat( responsesSpec.getName() ).isEqualTo( "Test Resource Spec" ); + + assertThat( responsesSpec.getResourceSpecCharacteristic().size() ).isEqualTo(1); + assertThat( responsesSpec.getResourceSpecCharacteristic().toArray( new ResourceSpecificationCharacteristic[0] )[0].getResourceSpecCharacteristicValue().size() ).isEqualTo(1); + + + + +// ResourceCandidateCreate scand = new ResourceCandidateCreate(); +// scand.setName( responsesSpec.getName()); +// ResourceSpecificationRef resSpecificationRef = new ResourceSpecificationRef(); +// resSpecificationRef.setId( responsesSpec.getId()); +// resSpecificationRef.setName( responsesSpec .getName()); +// scand.resourceSpecification(resSpecificationRef); +// categoryItem = new ResourceCategoryRef(); +// categoryItem.setId( responsesCateg.getId()); +// categoryItem.setName( responsesCateg.getName() ); +// scand.addCategoryItem(categoryItem); +// +// response = mvc.perform(MockMvcRequestBuilders.post("/resourceCatalogManagement/v4/resourceCandidate") +// .with( SecurityMockMvcRequestPostProcessors.csrf()) +// .contentType(MediaType.APPLICATION_JSON) +// .content( JsonUtils.toJson( scand ) )) +// .andExpect(status().isOk()) +// .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) +// .andExpect(jsonPath("name", is("Test Resource Spec"))) +// .andExpect(status().isOk()) +// .andReturn().getResponse().getContentAsString(); + + + + + PhysicalResourceSpecificationCreate physpeccr = JsonUtils.toJsonObj( sspectext, PhysicalResourceSpecificationCreate.class); + physpeccr.setType("PhysicalResourceSpecification"); + physpeccr.setModel("ACME"); + response = mvc.perform(MockMvcRequestBuilders.post("/resourceCatalogManagement/v4/resourceSpecification") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( physpeccr ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Resource Spec"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS +2 ); + PhysicalResourceSpecification phyresponsesSpec = JsonUtils.toJsonObj(response, PhysicalResourceSpecification.class); + assertThat( phyresponsesSpec.getName() ).isEqualTo( "Test Resource Spec" ); + assertThat( phyresponsesSpec.getModel() ).isEqualTo( "ACME" ); + + assertThat( phyresponsesSpec.getResourceSpecCharacteristic().size() ).isEqualTo(1); + assertThat( phyresponsesSpec.getResourceSpecCharacteristic().toArray( new ResourceSpecificationCharacteristic[0] )[0].getResourceSpecCharacteristicValue().size() ).isEqualTo(1); + + + } + + + @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) + @Test + public void manageCategoriesSubCategories() throws Exception { + /** + * add category + */ + + File scat = new File( "src/test/resources/testResourceCategory.txt" ); + InputStream in = new FileInputStream( scat ); + String sc = IOUtils.toString(in, "UTF-8"); + + ResourceCategoryCreate scategcreate = JsonUtils.toJsonObj( sc, ResourceCategoryCreate.class); + scategcreate.setIsRoot(true); + ResourceCategory parentRootCategory = postCategory( scategcreate, scategcreate.getName() ); + + ResourceCategoryCreate scategcreate2 = JsonUtils.toJsonObj( sc, ResourceCategoryCreate.class); + scategcreate2.setName("Child Cat"); + ResourceCategory child1Subcategory = postCategory( scategcreate2, scategcreate2.getName() ); + + ResourceCategoryUpdate scUpd1 = JsonUtils.toJsonObj( sc, ResourceCategoryUpdate.class); + scUpd1.setIsRoot(true); + scUpd1.setName("Parent Cat"); + ResourceCategoryRef scRef = new ResourceCategoryRef(); + scRef.setId( child1Subcategory.getId() ); + scRef.setName( child1Subcategory.getName() ); + scUpd1.addCategoryItem(scRef); + + + assertThat( categRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_CATEGORIES + 2 ); + + String response = mvc.perform(MockMvcRequestBuilders.patch("/resourceCatalogManagement/v4/resourceCategory/" + parentRootCategory.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scUpd1 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is( "Parent Cat" ))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + parentRootCategory = JsonUtils.toJsonObj(response, ResourceCategory.class); + + + assertThat( categRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_CATEGORIES + 2 ); + assertThat( parentRootCategory.getCategoryRefs().size() ).isEqualTo(1); + assertThat( parentRootCategory.getCategoryRefs().get(0).getId() ).isEqualTo( child1Subcategory.getId() ); + + /** + * add to a resource catalog and delete the service catalog, to chech that categories are still there + * + */ + + ResourceCatalog catalog = catalogRepoService.findByName( "Catalog" ); + assertThat( catalog.getCategoryRefs().size() ).isEqualTo( 2 ); + ResourceCatalogUpdate scu = new ResourceCatalogUpdate(); + scu.setName( catalog.getName() ); + for (ResourceCategoryRef iref : catalog.getCategoryRefs()) { + scu.addCategoryItem( iref ); + } + ResourceCategoryRef categoryItem = new ResourceCategoryRef(); + categoryItem.setId( parentRootCategory.getId() ); + scu.addCategoryItem( categoryItem ); + catalog = catalogRepoService.updateCatalog( catalog.getId(), scu); + + assertThat( catalog.getCategoryRefs().size() ).isEqualTo( 3 ); + assertThat( categRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_CATEGORIES + 2 ); + assertThat( catalogRepoService.findAll().size() ).isEqualTo( 1 ); + catalogRepoService.deleteById( catalog.getId() );//delete + assertThat( catalogRepoService.findAll().size() ).isEqualTo( 0 ); + assertThat( categRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_CATEGORIES + 2 );//categories must remain + //fetch the subcategory and check parent ID + + response = mvc.perform(MockMvcRequestBuilders.get("/resourceCatalogManagement/v4/resourceCategory/" + parentRootCategory.getCategoryRefs().get(0).getId() ) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scUpd1 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andReturn().getResponse().getContentAsString(); + + child1Subcategory = JsonUtils.toJsonObj(response, ResourceCategory.class); + + assertThat( child1Subcategory.getParentId() ).isEqualTo( parentRootCategory.getId() ); + + //delete category with childs not allows (not modified) + response = mvc.perform(MockMvcRequestBuilders.delete("/resourceCatalogManagement/v4/resourceCategory/" + parentRootCategory.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scUpd1 ) )) + .andExpect(status().isNotModified() ) + .andReturn().getResponse().getContentAsString(); + + assertThat( categRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_CATEGORIES + 2 ); + + //delete subcategory + response = mvc.perform(MockMvcRequestBuilders.delete("/resourceCatalogManagement/v4/resourceCategory/" + parentRootCategory.getCategoryRefs().get(0).getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scUpd1 ) )) + .andExpect(status().isOk() ) + .andReturn().getResponse().getContentAsString(); + + assertThat( categRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_CATEGORIES + 1 ); + + //delete rootcategory + response = mvc.perform(MockMvcRequestBuilders.delete("/resourceCatalogManagement/v4/resourceCategory/" + parentRootCategory.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scUpd1 ) )) + .andExpect(status().isOk() ) + .andReturn().getResponse().getContentAsString(); + + assertThat( categRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_CATEGORIES ); + + } + + + + private ResourceCategory postCategory(ResourceCategoryCreate scategcreate, String name) throws UnsupportedEncodingException, IOException, Exception { + + String response = mvc.perform(MockMvcRequestBuilders.post("/resourceCatalogManagement/v4/resourceCategory") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scategcreate ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is( name ))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + ResourceCategory responsesCateg = JsonUtils.toJsonObj(response, ResourceCategory.class); + + return responsesCateg; + } + + + @WithMockUser(username="osadmin", roles = {"ADMIN" , "USER"}) + @Test + public void testSpecAttributesUpdate() throws Exception { + logger.info("Test: testSpecAttributesUpdate"); + /** + * Resource Spec + */ + File sspec = new File( "src/test/resources/testResourceSpec.json" ); + InputStream in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + + LogicalResourceSpecificationCreate sspeccr = JsonUtils.toJsonObj( sspectext, LogicalResourceSpecificationCreate.class); + + AttachmentRefOrValue attachmentItem = new AttachmentRefOrValue(); + attachmentItem.setId( "a-ref-id" ); + attachmentItem.setDescription("an attachment"); + attachmentItem.setUrl("a url"); + attachmentItem.setName("aname"); + sspeccr.addAttachmentItem(attachmentItem); + String responseSpec = mvc.perform(MockMvcRequestBuilders.post("/resourceCatalogManagement/v4/resourceSpecification") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( sspeccr ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Resource Spec"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + LogicalResourceSpecification responsesSpec = JsonUtils.toJsonObj(responseSpec, LogicalResourceSpecification.class); + //logger.info("Test: testSpecAttachments response = " + responseSpec); + assertThat( responsesSpec.getName() ).isEqualTo( "Test Resource Spec" ); + assertThat( responsesSpec.getAttachment().size() ).isEqualTo( 1 ); + + //make it now as a ResourceSpecificationUpdate, no id, uuid and lastUpdate + JSONObject obj = JsonUtils.toJsonObj(responseSpec, JSONObject.class); + obj.remove("uuid"); + obj.remove("id"); + obj.remove("lastUpdate"); + obj.remove("@type"); + responseSpec = JsonUtils.toJsonString(obj); + + ResourceSpecificationUpdate responsesSpecUpd = JsonUtils.toJsonObj(responseSpec, ResourceSpecificationUpdate.class); + responsesSpecUpd.setName( "Test Spec a attr" ); + responsesSpecUpd.setVersion("2.x"); + ResourceSpecificationCharacteristic spechar = new ResourceSpecificationCharacteristic(); + spechar.setName("A new characteristic"); + ResourceSpecificationCharacteristicValue sv = new ResourceSpecificationCharacteristicValue(); + sv.setValue( new Any("1" ,"a first value") ); + sv.setValueType( EValueType.LONGTEXT.getValue()); + spechar.getResourceSpecCharacteristicValue().add( sv ); + responsesSpecUpd.getResourceSpecificationCharacteristic().add(spechar ); + + String response2 = mvc.perform(MockMvcRequestBuilders.patch("/resourceCatalogManagement/v4/resourceSpecification/" + responsesSpec.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( responsesSpecUpd ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Spec a attr"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + ResourceSpecification responsesSpec2 = JsonUtils.toJsonObj(response2, LogicalResourceSpecification.class); + assertThat( responsesSpec2.getName() ).isEqualTo( "Test Spec a attr" ); + assertThat( responsesSpec2.getVersion() ).isEqualTo( "2.x" ); + assertThat( responsesSpec2.getResourceSpecCharacteristic().size() ).isEqualTo(2); + assertThat( responsesSpec2.getResourceSpecCharacteristic().toArray( new ResourceSpecificationCharacteristic[0] )[0].getResourceSpecCharacteristicValue().size() ).isEqualTo(1); + assertThat( responsesSpec2.findSpecCharacteristicByName("CoverageSpec") ).isNotNull(); + assertThat( responsesSpec2.findSpecCharacteristicByName("A new characteristic") ).isNotNull(); + assertThat( responsesSpec2.findSpecCharacteristicByName("CoverageSpec").getResourceSpecCharacteristicValue().size() ).isEqualTo(1); + assertThat( responsesSpec2.findSpecCharacteristicByName("A new characteristic").getResourceSpecCharacteristicValue().toArray( new ResourceSpecificationCharacteristicValue[0] )[0].getValue().getAlias() ).isEqualTo("a first value"); + assertThat( responsesSpec2.findSpecCharacteristicByName("A new characteristic").getResourceSpecCharacteristicValue().toArray( new ResourceSpecificationCharacteristicValue[0] )[0].getValueType() ).isEqualTo("LONGTEXT"); + assertThat( responsesSpec2.findSpecCharacteristicByName("CoverageSpec").getResourceSpecCharRelationship().size() ).isEqualTo(4); + + + //logger.info("Test: testSpecAttachments responsesSpec2 patch1= " + response2.toString()); + + //test now update and delete things + responsesSpecUpd = JsonUtils.toJsonObj(responseSpec, ResourceSpecificationUpdate.class); + ResourceSpecificationCharacteristicValue val = new ResourceSpecificationCharacteristicValue(); + val.setValueType( EValueType.ARRAY.toString()); + val.setValue( new Any("1" ,"a second value") ); + responsesSpecUpd.getResourceSpecificationCharacteristic().get(0).getResourceSpecCharacteristicValue().add(val); + ResourceSpecCharRelationship scrObj = responsesSpecUpd.getResourceSpecificationCharacteristic().get(0).getResourceSpecCharRelationship().toArray( new ResourceSpecCharRelationship[0])[0]; + ResourceSpecCharRelationship scrObj2 = responsesSpecUpd.getResourceSpecificationCharacteristic().get(0).getResourceSpecCharRelationship().toArray( new ResourceSpecCharRelationship[0])[1]; + ResourceSpecCharRelationship scrObj3 = responsesSpecUpd.getResourceSpecificationCharacteristic().get(0).getResourceSpecCharRelationship().toArray( new ResourceSpecCharRelationship[0])[2]; + scrObj3.setName("FORTESTING"); + String preid = scrObj3.getId(); + responsesSpecUpd.getResourceSpecificationCharacteristic().get(0).getResourceSpecCharRelationship().remove(scrObj); + responsesSpecUpd.getResourceSpecificationCharacteristic().get(0).getResourceSpecCharRelationship().remove(scrObj2); + ResourceSpecCharRelationship scrObj4 = new ResourceSpecCharRelationship(); + scrObj4.setName("ANEWCharRel"); + responsesSpecUpd.getResourceSpecificationCharacteristic().get(0).getResourceSpecCharRelationship().add(scrObj4); + + response2 = mvc.perform(MockMvcRequestBuilders.patch("/resourceCatalogManagement/v4/resourceSpecification/" + responsesSpec.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( responsesSpecUpd ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Resource Spec"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); +// logger.info("Test: testSpecAttachments responsesSpec2 patch2= " + response2.toString()); + + responsesSpec2 = JsonUtils.toJsonObj(response2, LogicalResourceSpecification.class); + + + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 1 ); + + assertThat( responsesSpec2.getName() ).isEqualTo( "Test Resource Spec" ); + assertThat( responsesSpec2.getResourceSpecCharacteristic().size() ).isEqualTo(1); + assertThat( responsesSpec2.findSpecCharacteristicByName("CoverageSpec") ).isNotNull(); + assertThat( responsesSpec2.findSpecCharacteristicByName("CoverageSpec").getResourceSpecCharacteristicValue().size() ).isEqualTo(2); + boolean secvalExists = false; + boolean arrayValExists = false; + for (ResourceSpecificationCharacteristicValue respval : responsesSpec2.findSpecCharacteristicByName("CoverageSpec").getResourceSpecCharacteristicValue().toArray( new ResourceSpecificationCharacteristicValue[0] )) { + if ( respval.getValue().getAlias().equals("a second value")){ + secvalExists = true; + } + if ( respval.getValueType().equals("ARRAY")){ + arrayValExists = true; + } + } + assertThat( secvalExists ).isTrue(); + assertThat( arrayValExists).isTrue(); + + + assertThat( responsesSpec2.findSpecCharacteristicByName("CoverageSpec").getResourceSpecCharRelationship().size() ).isEqualTo(3); + boolean idfound = false; + boolean ANEWCharRelExists =false; + for (ResourceSpecCharRelationship tscr : responsesSpec2.findSpecCharacteristicByName("CoverageSpec").getResourceSpecCharRelationship()) { + if ( (tscr.getId()!=null) && ( tscr.getId().equals(preid)) ) { + idfound = true; + assertThat( tscr.getName().equals("FORTESTING")); + } + + if ( (tscr!=null) && (tscr.getName().equals( "ANEWCharRel" )) ){ + ANEWCharRelExists = true; + } + } + assertThat( idfound).isTrue(); + assertThat( ANEWCharRelExists).isTrue(); + assertThat( responsesSpec2.findSpecCharacteristicByName("A new characteristic") ).isNull(); + +// logger.info("Test: testSpecAttachments responsesSpec2 patch2= " + response2); + + + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS +1 ); + + } + +// @GetMapping("/customHeader") +// public ResponseEntity customHeader() { +// HttpHeaders headers = new HttpHeaders(); +// headers.add("Custom-Header", "foo"); +// +// return new ResponseEntity<>("Custom header set", headers, HttpStatus.OK); +// } + + + private ResourceSpecification createResourceSpec(ResourceSpecificationUpdate sspeccr1) throws Exception{ + + URI url = new URI("/resourceCatalogManagement/v4/resourceSpecification"); + if (sspeccr1 instanceof PhysicalResourceSpecificationUpdate ) { + url = new URI("/resourceCatalogManagement/v4/resourceSpecification"); + } + String responseSpec = mvc.perform(MockMvcRequestBuilders.post( url ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( sspeccr1 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + ResourceSpecification responsesSpec1; + if (sspeccr1 instanceof PhysicalResourceSpecificationUpdate ) { + responsesSpec1 = JsonUtils.toJsonObj(responseSpec, PhysicalResourceSpecification.class); + }else { + responsesSpec1 = JsonUtils.toJsonObj(responseSpec, LogicalResourceSpecification.class); + } + +// logger.info("createResourceSpec = " + responseSpec); + return responsesSpec1; + } + + @WithMockUser(username="osadmin", roles = {"USER" , "ADMIN"}) + @Test + public void testBundledSpec() throws Exception { + logger.info("Test: testBundledSpec " ); + + /** + * first add 2 specs + */ + + File sspec = new File( "src/test/resources/testResourceSpec.json" ); + InputStream in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + + + ResourceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj( sspectext, ResourceSpecificationCreate.class); + sspeccr1.setName("Spec1"); + LogicalResourceSpecification responsesSpec1 = (LogicalResourceSpecification) createResourceSpec( sspeccr1); + + + ResourceSpecificationCreate sspeccr2 = JsonUtils.toJsonObj( sspectext, ResourceSpecificationCreate.class); + sspeccr2.setName("Spec2"); + LogicalResourceSpecification responsesSpec2 = (LogicalResourceSpecification) createResourceSpec(sspeccr2); + + + ResourceSpecificationCreate sspeccr3 = JsonUtils.toJsonObj( sspectext, ResourceSpecificationCreate.class); + sspeccr3.setName("Spec3"); + sspeccr3.isBundle(true); + sspeccr3.addResourceSpecificationRelationshipWith( responsesSpec1 ); + sspeccr3.addResourceSpecificationRelationshipWith( responsesSpec2 ); + LogicalResourceSpecification responsesSpec3 = (LogicalResourceSpecification) createResourceSpec(sspeccr3); + + + assertThat( responsesSpec3.getResourceSpecRelationship().size() ).isEqualTo(2); + boolean idspec1Exists = false; + boolean idspec2Exists = false; + String relationship2UUID = null; + for (ResourceSpecificationRelationship r : responsesSpec3.getResourceSpecRelationship()) { + if ( r.getId().equals( responsesSpec1.getId() ) ) { + idspec1Exists= true; + } + if ( r.getId().equals( responsesSpec2.getId() ) ) { + idspec2Exists= true; + relationship2UUID = r.getUuid(); + } + } + assertThat( idspec1Exists ).isTrue(); + assertThat( idspec2Exists ).isTrue(); + + /** + * try PATCH with service relationships + */ + //first add a new service spec and then reference it + ResourceSpecificationCreate sspeccr4 = JsonUtils.toJsonObj( sspectext, ResourceSpecificationCreate.class); + sspeccr4.setName("Spec4"); + ResourceSpecification responsesSpec4 = createResourceSpec( sspeccr3); + + String responseSpec3 = JsonUtils.toJsonString( responsesSpec3 ); + JSONObject obj = JsonUtils.toJsonObj(responseSpec3, JSONObject.class); + obj.remove("uuid"); + obj.remove("id"); + obj.remove("lastUpdate"); + obj.remove("@type"); + responseSpec3 = JsonUtils.toJsonString(obj); + + ResourceSpecificationUpdate responsesSpecUpd = JsonUtils.toJsonObj(responseSpec3, ResourceSpecificationUpdate.class); + for (ResourceSpecificationRelationship r : responsesSpecUpd.getResourceSpecificationRelationship()) { + if ( r.getId().equals( responsesSpec1.getId() ) ) { + responsesSpecUpd.getResourceSpecificationRelationship().remove(r); + break; + } + } + responsesSpecUpd.addResourceSpecificationRelationshipWith(responsesSpec4); +// logger.info("Test: testBundledSpec responsesSpecUpd= " + responsesSpecUpd.toString()); + + String responsePatch1 = mvc.perform(MockMvcRequestBuilders.patch("/resourceCatalogManagement/v4/resourceSpecification/" + responsesSpec3.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( responsesSpecUpd ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Spec3"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + ResourceSpecification responseSpecPatch1 = JsonUtils.toJsonObj( responsePatch1, LogicalResourceSpecification.class); + +// logger.info("Test: testBundledSpec responsePatch1= " + responsePatch1); + + assertThat( responseSpecPatch1.getResourceSpecRelationship().size() ).isEqualTo(2); + + idspec1Exists = false; + idspec2Exists = false; + boolean idspec4Exists = false; + for (ResourceSpecificationRelationship r : responseSpecPatch1.getResourceSpecRelationship()) { + if ( r.getId().equals( responsesSpec1.getId() ) ) { + idspec1Exists= true; + } + if ( r.getId().equals( responsesSpec2.getId() ) ) { + idspec2Exists= true; + assertThat( r.getUuid() ).isEqualTo( relationship2UUID ); + + } + if ( r.getId().equals( responsesSpec4.getId() ) ) { + idspec4Exists= true; + } + } + + assertThat( idspec1Exists ).isFalse(); + assertThat( idspec2Exists ).isTrue(); + assertThat( idspec4Exists ).isTrue(); + + + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 4 ); + + } + + + + + + @WithMockUser(username="osadmin", roles = {"ADMIN" , "USER"}) + @Test + public void testSpecAttachment() throws Exception { + File sspec = new File( "src/test/resources/testResourceSpec.json" ); + InputStream in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + + + ResourceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj( sspectext, ResourceSpecificationCreate.class); + sspeccr1.setName("Spec1"); + LogicalResourceSpecification responsesSpec1 = (LogicalResourceSpecification) createResourceSpec( sspeccr1); + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 1 ); + + Attachment att = new Attachment(); + att.setDescription("a test atts"); + att.setSize( new Quantity() ); + + File gz = new File( "src/test/resources/cirros_vnf.tar.gz" ); + InputStream ing = new FileInputStream( gz ); + MockMultipartFile prodFile = new MockMultipartFile("afile", "cirros_vnf.tar.gz", "application/x-gzip", IOUtils.toByteArray(ing)); + + + + String responsePatch1 = mvc.perform(MockMvcRequestBuilders + .multipart("/resourceCatalogManagement/v4/resourceSpecification/" + responsesSpec1.getId() + "/attachment" ) + .file(prodFile) + .param("attachment", JsonUtils.toJsonString(att)) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + ) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Spec1"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + ResourceSpecification responseSpecPost1 = JsonUtils.toJsonObj( responsePatch1, LogicalResourceSpecification.class); + + //logger.info("Test: testSpecAttachment responseSpecPost1= " + responseSpecPost1); + + assertThat( responseSpecPost1.getAttachment().size() ).isEqualTo( 1 ); + } + + + @WithMockUser(username="osadmin", roles = {"USER", "ADMIN"}) + @Test + public void testLogicalPhysicalResources() throws Exception { + File sspec = new File( "src/test/resources/testResourceSpec.json" ); + InputStream in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + + + ResourceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj( sspectext, ResourceSpecificationCreate.class); + sspeccr1.setName("Spec1"); + LogicalResourceSpecification responsesSpec1 = (LogicalResourceSpecification) createResourceSpec( sspeccr1); + + + PhysicalResourceSpecificationCreate physspeccr1 = JsonUtils.toJsonObj( sspectext, PhysicalResourceSpecificationCreate.class); + physspeccr1.setType("PhysicalResourceSpecification"); + physspeccr1.setName("SpecPhy1"); + physspeccr1.setPart("APART"); + physspeccr1.setModel("ACME"); + PhysicalResourceSpecification phyresponsesSpec1 = (PhysicalResourceSpecification) createResourceSpec( physspeccr1); + + + //testPhysicalResourceSpec.json + File physsspec2 = new File( "src/test/resources/testPhysicalResourceSpec.json" ); + in = new FileInputStream( physsspec2 ); + String physsspectext = IOUtils.toString(in, "UTF-8"); + PhysicalResourceSpecificationCreate physspeccr2 = JsonUtils.toJsonObj( physsspectext, PhysicalResourceSpecificationCreate.class); + phyresponsesSpec1 = (PhysicalResourceSpecification) createResourceSpec( physspeccr2); + + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 3 ); + assertThat( specRepoService.findAllPhysical().size() ).isEqualTo( FIXED_BOOTSTRAPS_PHYSICAL_SPECS + 2 ); + assertThat( specRepoService.findAllLogical().size() ).isEqualTo( FIXED_BOOTSTRAPS_LOGICAL_SPECS + 1); + + } + +} diff --git a/src/test/java/org/etsi/osl/services/api/ResourceInventoryIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/ResourceInventoryIntegrationTest.java new file mode 100644 index 0000000..2720c73 --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/ResourceInventoryIntegrationTest.java @@ -0,0 +1,414 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.services.api; + + + +import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.net.URI; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.OpenAPISpringBoot; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.UserPartRoleType; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.common.model.service.ResourceRef; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.rcm634.model.LogicalResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.PhysicalResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.PhysicalResourceSpecificationUpdate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceCatalogRepoService; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceCategoryRepoService; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceSpecificationRepoService; +import org.etsi.osl.tmf.ri639.model.Characteristic; +import org.etsi.osl.tmf.ri639.model.LogicalResource; +import org.etsi.osl.tmf.ri639.model.Resource; +import org.etsi.osl.tmf.ri639.model.ResourceCreate; +import org.etsi.osl.tmf.ri639.model.ResourceOperationalStateType; +import org.etsi.osl.tmf.ri639.model.ResourceRelationship; +import org.etsi.osl.tmf.ri639.model.ResourceUpdate; +import org.etsi.osl.tmf.ri639.reposervices.ResourceRepoService; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.WebApplicationContext; + + +@RunWith(SpringRunner.class) +@Transactional +@SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) +//@AutoConfigureTestDatabase //this automatically uses h2 +@AutoConfigureMockMvc +@ActiveProfiles("testing") +//@TestPropertySource( +// locations = "classpath:application-testing.yml") +public class ResourceInventoryIntegrationTest { + + + private static final transient Log logger = LogFactory.getLog( ResourceInventoryIntegrationTest.class.getName()); + + @Autowired + private MockMvc mvc; + + @Autowired + ResourceCatalogRepoService catalogRepoService; + + + @Autowired + ResourceCategoryRepoService categRepoService; + + @Autowired + ResourceSpecificationRepoService specRepoService; + + + @Autowired + ResourceRepoService resourceRepoService; + + @Autowired + private WebApplicationContext context; + + @Before + public void setup() { + mvc = MockMvcBuilders + .webAppContextSetup(context) + .apply(springSecurity()) + .build(); + } + + @Test + public void _countDefaultProperties() { + + assertThat( resourceRepoService.findAll().size() ).isEqualTo( 0 ); + + } + + @WithMockUser(username="osadmin", roles = {"USER","ADMIN"}) + @Test + public void testResourceCreateAndUpdate() throws UnsupportedEncodingException, IOException, Exception { + + /** + * first add 2 specs + */ + + File sspec = new File( "src/test/resources/testResourceSpec.json" ); + InputStream in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + + + ResourceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj( sspectext, ResourceSpecificationCreate.class); + sspeccr1.setName("Spec1"); + ResourceSpecification responsesSpec1 = createResourceSpec( sspeccr1); + + //res 2 is an RFS + ResourceSpecificationCreate sspeccr2 = JsonUtils.toJsonObj( sspectext, ResourceSpecificationCreate.class); + sspeccr2.setName("Spec2"); + + sspeccr2.addResourceSpecificationRelationshipWith( responsesSpec1 ); + LogicalResourceSpecification responsesSpec2 = (LogicalResourceSpecification) createResourceSpec( sspeccr2 ); + /** + * add them as bundle + */ + + ResourceSpecificationCreate sspeccr3 = JsonUtils.toJsonObj( sspectext, ResourceSpecificationCreate.class); + sspeccr3.setName("BundleExampleSpec"); + sspeccr3.isBundle(true); + sspeccr3.addResourceSpecificationRelationshipWith( responsesSpec1 ); + sspeccr3.addResourceSpecificationRelationshipWith( responsesSpec2 ); + ResourceSpecification responsesSpec3 = createResourceSpec( sspeccr3); + + ResourceCreate aResource = new ResourceCreate(); + aResource.setName("aNew Resource parent"); + aResource.setCategory("Experimentation"); + aResource.setDescription("Experimentation Descr"); + aResource.setStartOperatingDate( OffsetDateTime.now(ZoneOffset.UTC ).toString() ); + aResource.setEndOperatingDate( OffsetDateTime.now(ZoneOffset.UTC ).toString() ); + + + + Note noteItem = new Note(); + noteItem.text("test note"); + aResource.addNoteItem(noteItem); + + Characteristic resCharacteristicItem = new Characteristic(); + + resCharacteristicItem.setName( "ConfigStatus" ); + resCharacteristicItem.setValue( new Any("NONE")); + aResource.addResourceCharacteristicItem(resCharacteristicItem); + + ResourceSpecificationRef aServiceSpecificationRef = new ResourceSpecificationRef(); + aServiceSpecificationRef.setId(responsesSpec3.getId() ); + aServiceSpecificationRef.setName(responsesSpec3.getName()); + + aResource.setResourceSpecification( aServiceSpecificationRef ); + //create a first resoruce that will be added to the next one as ref + String responseResource = mvc.perform(MockMvcRequestBuilders.post("/resourceInventoryManagement/v4/resource") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( aResource ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + logger.info("responseResource = " + responseResource); + Resource responseRsc = JsonUtils.toJsonObj( responseResource, LogicalResource.class); + + + aResource.setName("aNew Resource"); + + ResourceRelationship rri = new ResourceRelationship(); + rri.setRelationshipType("PARENT"); + ResourceRef rrref = new ResourceRef(); + rrref.setName( responseRsc.getName() ); + rrref.setId( responseRsc.getId() ); + rri.setResource( rrref ); + aResource.addResourceRelationshipItem( rri ); + + logger.info("aService JSON = " + JsonUtils.toJsonString( aResource )); + + responseResource = mvc.perform(MockMvcRequestBuilders.post("/resourceInventoryManagement/v4/resource") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( aResource ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + logger.info("responseResource = " + responseResource); + responseRsc = JsonUtils.toJsonObj( responseResource, LogicalResource.class); + + + logger.info("testService = " + JsonUtils.toJsonString( responseRsc )); + + + assertThat( responseRsc.getCategory() ).isEqualTo( "Experimentation" ); + assertThat( responseRsc.getDescription() ).isEqualTo( "Experimentation Descr" ); + assertThat( responseRsc.getStartOperatingDate() ).isNotNull(); + assertThat( responseRsc.getEndOperatingDate() ).isNotNull(); + assertThat( responseRsc.getResourceCharacteristic().size() ).isEqualTo( 1 ); + assertThat( responseRsc.getResourceCharacteristicByName( "ConfigStatus" ) ).isNotNull(); + assertThat( responseRsc.getResourceCharacteristicByName( "ConfigStatus" ).getValue().getValue() ).isEqualTo( "NONE" ) ; + assertThat( responseRsc.getResourceSpecification().getId() ).isNotNull(); + assertThat( responseRsc.getResourceSpecification().getName() ).isNotNull(); + assertThat( responseRsc.getResourceRelationship().size() ).isEqualTo( 1 ); + + + assertThat( responseRsc.getNote().size() ).isEqualTo( 2 ); + + boolean userPartyRoleexists = false; + for (RelatedParty r : responseRsc.getRelatedParty()) { + if ( r.getName().equals( "osadmin" ) && r.getRole().equals( UserPartRoleType.REQUESTER.toString() )) { + userPartyRoleexists = true; + } + } + + assertThat(userPartyRoleexists ).isTrue() ; + + assertThat( resourceRepoService.findAll().size() ).isEqualTo( 2 ); + + + ResourceUpdate resUpd = new ResourceUpdate(); + resUpd.setEndOperatingDate( OffsetDateTime.now(ZoneOffset.UTC ).toString() ); + responseRsc.getNote().stream().forEach(n -> resUpd.addNoteItem(n)); + Note en = new Note(); + en.text("test note2"); + en.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() ); + resUpd.addNoteItem(en); + + for (Characteristic c : responseRsc.getResourceCharacteristic()) { + if (c.getName().equals( "ConfigStatus" )) { + c.setValue( new Any("RUNNING")); + } + resUpd.addResourceCharacteristicItem(c); + } + resUpd.setOperationalState( ResourceOperationalStateType.ENABLE ); + resCharacteristicItem = new Characteristic(); + resCharacteristicItem.setName( "DeploymentRequestID" ); + resCharacteristicItem.setValue( new Any("007a008")); + resUpd.addResourceCharacteristicItem(resCharacteristicItem); + resUpd.setResourceRelationship( new ArrayList<>()); + + + String responseResUpd = mvc.perform(MockMvcRequestBuilders + .patch("/resourceInventoryManagement/v4/resource/" + responseRsc.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( resUpd ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + logger.info("testServiceOrderUpdate = " + responseResUpd); + Resource responseRes2 = JsonUtils.toJsonObj(responseResUpd, LogicalResource.class); + + + assertThat( resourceRepoService.findAll().size() ).isEqualTo( 2 ); + + assertThat( responseRes2.getEndOperatingDate() ).isNotNull(); + assertThat( responseRes2.getNote().size() ).isEqualTo( 3 ); + assertThat( responseRes2.getResourceCharacteristic().size() ).isEqualTo( 2 ); + assertThat( responseRes2.getResourceCharacteristicByName( "ConfigStatus" ).getValue().getValue() ).isEqualTo( "RUNNING" ) ; + assertThat( responseRes2.getResourceCharacteristicByName( "DeploymentRequestID" ).getValue().getValue() ).isEqualTo( "007a008" ) ; + assertThat( responseRes2.getResourceSpecification().getId() ).isNotNull(); + assertThat( responseRes2.getResourceSpecification().getName() ).isNotNull(); + assertThat( responseRes2.getResourceRelationship().size() ).isEqualTo( 0 ); + + + + responseResUpd = mvc.perform(MockMvcRequestBuilders + .get("/resourceInventoryManagement/v4/resource/" + responseRsc.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( resUpd ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + logger.info("testServiceOrderUpdate = " + responseResUpd); + responseRes2 = JsonUtils.toJsonObj(responseResUpd, LogicalResource.class); + + + assertThat( resourceRepoService.findAll().size() ).isEqualTo( 2 ); + + assertThat( responseRes2.getEndOperatingDate() ).isNotNull(); + assertThat( responseRes2.getNote().size() ).isEqualTo( 3 ); + assertThat( responseRes2.getResourceCharacteristic().size() ).isEqualTo( 2 ); + assertThat( responseRes2.getResourceCharacteristicByName( "ConfigStatus" ).getValue().getValue() ).isEqualTo( "RUNNING" ) ; + assertThat( responseRes2.getResourceCharacteristicByName( "DeploymentRequestID" ).getValue().getValue() ).isEqualTo( "007a008" ) ; + assertThat( responseRes2.getResourceSpecification().getId() ).isNotNull(); + assertThat( responseRes2.getResourceSpecification().getName() ).isNotNull(); + assertThat( responseRes2.getResourceRelationship().size() ).isEqualTo( 0 ); + + + resUpd.addResourceRelationshipItem( rri ); + + responseResUpd = mvc.perform(MockMvcRequestBuilders + .patch("/resourceInventoryManagement/v4/resource/" + responseRsc.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( resUpd ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + logger.info("testServiceOrderUpdate = " + responseResUpd); + responseRes2 = JsonUtils.toJsonObj(responseResUpd, LogicalResource.class); + + + assertThat( resourceRepoService.findAll().size() ).isEqualTo( 2 ); + + assertThat( responseRes2.getEndOperatingDate() ).isNotNull(); + assertThat( responseRes2.getNote().size() ).isEqualTo( 4 ); + assertThat( responseRes2.getResourceCharacteristic().size() ).isEqualTo( 2 ); + assertThat( responseRes2.getResourceCharacteristicByName( "ConfigStatus" ).getValue().getValue() ).isEqualTo( "RUNNING" ) ; + assertThat( responseRes2.getResourceCharacteristicByName( "DeploymentRequestID" ).getValue().getValue() ).isEqualTo( "007a008" ) ; + assertThat( responseRes2.getResourceSpecification().getId() ).isNotNull(); + assertThat( responseRes2.getResourceSpecification().getName() ).isNotNull(); + assertThat( responseRes2.getResourceRelationship().size() ).isEqualTo( 1 ); + + } + + + private ResourceSpecification createResourceSpec(ResourceSpecificationUpdate sspeccr1) throws Exception{ + + URI url = new URI("/resourceCatalogManagement/v4/resourceSpecification"); + if (sspeccr1 instanceof PhysicalResourceSpecificationUpdate ) { + url = new URI("/resourceCatalogManagement/v4/resourceSpecification"); + } + String responseSpec = mvc.perform(MockMvcRequestBuilders.post( url ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( sspeccr1 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + ResourceSpecification responsesSpec1; + if (sspeccr1 instanceof PhysicalResourceSpecificationUpdate ) { + responsesSpec1 = JsonUtils.toJsonObj(responseSpec, PhysicalResourceSpecification.class); + }else { + responsesSpec1 = JsonUtils.toJsonObj(responseSpec, LogicalResourceSpecification.class); + } + +// logger.info("createResourceSpec = " + responseSpec); + return responsesSpec1; + } + + + + + private LogicalResourceSpecification createLogicalResourceSpec() throws Exception{ + File sspec = new File( "src/test/resources/testResourceSpec.json" ); + InputStream in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + ResourceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj( sspectext, ResourceSpecificationCreate.class); + + URI url = new URI("/resourceCatalogManagement/v4/logicalResourceSpec"); + + String responseSpec = mvc.perform(MockMvcRequestBuilders.post( url ) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( sspeccr1 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + LogicalResourceSpecification responsesSpec1; + + responsesSpec1 = JsonUtils.toJsonObj(responseSpec, LogicalResourceSpecification.class); + + logger.info("createResourceSpec = " + responseSpec); + return responsesSpec1; + } + + + + +} diff --git a/src/test/java/org/etsi/osl/services/api/ResourceOrderIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/ResourceOrderIntegrationTest.java new file mode 100644 index 0000000..5c52908 --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/ResourceOrderIntegrationTest.java @@ -0,0 +1,191 @@ +package org.etsi.osl.services.api; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.net.URI; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.HashSet; +import java.util.Set; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.OpenAPISpringBoot; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.rcm634.model.LogicalResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.PhysicalResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.PhysicalResourceSpecificationUpdate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; +import org.etsi.osl.tmf.rcm634.reposervices.ResourceSpecificationRepoService; +import org.etsi.osl.tmf.ri639.model.Characteristic; +import org.etsi.osl.tmf.ri639.model.ResourceRefOrValue; +import org.etsi.osl.tmf.ri639.model.ResourceRelationship; +import org.etsi.osl.tmf.ri639.reposervices.ResourceRepoService; +import org.etsi.osl.tmf.ro652.model.ExternalId; +import org.etsi.osl.tmf.ro652.model.ResourceOrder; +import org.etsi.osl.tmf.ro652.model.ResourceOrderCreate; +import org.etsi.osl.tmf.ro652.model.ResourceOrderItem; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors; +import org.springframework.security.web.FilterChainProxy; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.transaction.annotation.Transactional; + +@RunWith(SpringRunner.class) +@Transactional +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK, classes = OpenAPISpringBoot.class) + +@AutoConfigureMockMvc +@ActiveProfiles("testing") +public class ResourceOrderIntegrationTest { + + private static final transient Log logger = LogFactory.getLog(ResourceOrderIntegrationTest.class.getName()); + + @Autowired + private MockMvc mvc; + + @Autowired + private FilterChainProxy springSecurityFilterChain; + + @Autowired + ResourceSpecificationRepoService specRepoService; + + @Autowired + ResourceRepoService resourceRepoService; + + @WithMockUser(username = "osadmin", roles = { "USER", "ADMIN" }) + @Test + + public void testResourceOrderCreate() throws UnsupportedEncodingException, IOException, Exception { + + File sspec = new File("src/main/resources/resourceSpecifications/OSMTenantResourceSpecification.json"); + InputStream in = new FileInputStream(sspec); + String sspectext = IOUtils.toString(in, "UTF-8"); + + ResourceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj(sspectext, ResourceSpecificationCreate.class); + ResourceSpecification responsesSpec1 = createResourceSpec(sspeccr1); + +// resourceOrderItem id, action +// relatedParty id, @referredType +// note text, id +// orderRelationship id, relationshipType +// orderItem.resource.resourceCharacteristic name +// orderItem.orderItemRelationship orderItem +// orderItem.orderItemRelationship.orderItem itemId +// appointment id +// externalReference name + + ResourceOrderCreate resorder = new ResourceOrderCreate(); + + + resorder + .name("MANOProviderResource") + .category("MANOProvider") + .description("Experimentation Descr") + .addExternalReferenceItem( new ExternalId() ) + .requestedStartDate(OffsetDateTime.now(ZoneOffset.UTC).toString()) + .requestedCompletionDate(OffsetDateTime.now(ZoneOffset.UTC).toString()); + + + ResourceOrderItem oItem = new ResourceOrderItem(); + oItem.setId( "xxxx" ); + oItem.setAction("add"); + + + ResourceSpecificationRef resSpecRef = new ResourceSpecificationRef(); + resSpecRef.setId( responsesSpec1.getId() ); + resSpecRef.setName( responsesSpec1.getName() ); + + + Characteristic charitem = new Characteristic(); + charitem + .name("SupportedManoPlatform" ).value( new Any( "OSMvTEN", "OSMvTEN" )) + .name("Username" ).value( new Any( "testakis", "testakis" )); + + Set relationships = new HashSet<>(); + ResourceRelationship erel = new ResourceRelationship(); + erel.setRelationshipType("bubndled"); + relationships.add(erel ); + + ResourceRefOrValue resrc = new ResourceRefOrValue(); + + + resrc + .addResourceCharacteristicItem(charitem) + .resourceSpecification(resSpecRef) + .resourceRelationship( relationships ); + oItem.setResourceRefOrValue( resrc ); + + resorder.addOrderItemItem(oItem); + + logger.info("testResourceOrderCreate Req= " + JsonUtils.toJsonString( resorder )); + // @formatter:off + String responseSorder = mvc + .perform(MockMvcRequestBuilders + .post("/resourceOrderingManagement/v4/resourceOrder") + .with(SecurityMockMvcRequestPostProcessors.csrf()).contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson( resorder ))) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn() + .getResponse() + .getContentAsString(); + + // @formatter:on + logger.info("testResourceOrderCreate = " + responseSorder); + + + + ResourceOrder responseRO = JsonUtils.toJsonObj(responseSorder, ResourceOrder.class); + + assertThat( responseRO.getRequestedCompletionDate()).isNotNull(); + assertThat( responseRO.getOrderItem().stream().findFirst().get() ).isNotNull(); + assertThat( responseRO.getOrderItem().stream().findFirst().get().getResource().getId() ).isNotNull(); + assertThat( responseRO.getOrderItem().stream().findFirst().get().getResource().getName() ).isEqualTo( "OSM Tenant" ) ; + } + + private ResourceSpecification createResourceSpec(ResourceSpecificationUpdate sspeccr1) throws Exception { + + URI url = new URI("/resourceCatalogManagement/v4/resourceSpecification"); + if (sspeccr1 instanceof PhysicalResourceSpecificationUpdate) { + url = new URI("/resourceCatalogManagement/v4/resourceSpecification"); + } + String responseSpec = mvc + .perform(MockMvcRequestBuilders.post(url).with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON).content(JsonUtils.toJson(sspeccr1))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); + + ResourceSpecification responsesSpec1; + if (sspeccr1 instanceof PhysicalResourceSpecificationUpdate) { + responsesSpec1 = JsonUtils.toJsonObj(responseSpec, PhysicalResourceSpecification.class); + } else { + responsesSpec1 = JsonUtils.toJsonObj(responseSpec, LogicalResourceSpecification.class); + } + +// logger.info("createResourceSpec = " + responseSpec); + return responsesSpec1; + } + +} diff --git a/src/test/java/org/etsi/osl/services/api/ResourcePoolIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/ResourcePoolIntegrationTest.java new file mode 100644 index 0000000..66f3738 --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/ResourcePoolIntegrationTest.java @@ -0,0 +1,832 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.services.api; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.net.URI; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.OpenAPISpringBoot; +import org.etsi.osl.tmf.common.model.service.ResourceRef; +import org.etsi.osl.tmf.rcm634.model.LogicalResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.PhysicalResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationUpdate; +import org.etsi.osl.tmf.ri639.model.PhysicalResource; +import org.etsi.osl.tmf.ri639.model.Resource; +import org.etsi.osl.tmf.ri639.model.ResourceCreate; +import org.etsi.osl.tmf.ri639.reposervices.ResourceRepoService; +import org.etsi.osl.tmf.rpm685.model.ApplicableTimePeriod; +import org.etsi.osl.tmf.rpm685.model.AvailabilityCheck; +import org.etsi.osl.tmf.rpm685.model.Capacity; +import org.etsi.osl.tmf.rpm685.model.ExtractCreate; +import org.etsi.osl.tmf.rpm685.model.PushCreate; +import org.etsi.osl.tmf.rpm685.model.Reservation; +import org.etsi.osl.tmf.rpm685.model.ReservationCreate; +import org.etsi.osl.tmf.rpm685.model.ResourceCapacityDemand; +import org.etsi.osl.tmf.rpm685.model.ResourcePool; +import org.etsi.osl.tmf.rpm685.model.ResourcePoolCreate; +import org.etsi.osl.tmf.rpm685.model.ResourcePoolRef; +import org.etsi.osl.tmf.rpm685.model.ResourcePoolUpdate; +import org.etsi.osl.tmf.rpm685.reposervices.ResourcePoolRepoService; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.WebApplicationContext; + +@RunWith(SpringRunner.class) +@Transactional +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK, classes = OpenAPISpringBoot.class) +@AutoConfigureMockMvc +@ActiveProfiles("testing") +public class ResourcePoolIntegrationTest { + + private static final transient Log logger = LogFactory.getLog(ResourcePoolIntegrationTest.class.getName()); + + @Autowired + private MockMvc mvc; + + @Autowired + ResourceRepoService resourceRepoService; + + @Autowired + ResourcePoolRepoService resourcePoolRepoService; + + @Autowired + private WebApplicationContext context; + + @Before + public void setup() { + mvc = MockMvcBuilders.webAppContextSetup(context).apply(springSecurity()).build(); + } + + @WithMockUser(username = "osadmin", roles = { "USER", "ADMIN" }) + @Test + public void testResourcePoolCreateAndUpdate() throws UnsupportedEncodingException, IOException, Exception { + + // Create a resource spec + File sspec = new File("src/test/resources/testResourceSpec.json"); + InputStream in = new FileInputStream(sspec); + String sspectext = IOUtils.toString(in, "UTF-8"); + ResourceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj(sspectext, ResourceSpecificationCreate.class); + sspeccr1.setName("Spec1"); + ResourceSpecification responsesSpec1 = createResourceSpec(sspeccr1); + + // create a resource + + ResourceCreate aResource = new ResourceCreate(); + aResource.setName("aNew Resource"); + aResource.setCategory("Experimentation"); + aResource.setAtType("PhysicalResource"); + ResourceSpecificationRef aServiceSpecificationRef = new ResourceSpecificationRef(); + aServiceSpecificationRef.setId(responsesSpec1.getId()); + aServiceSpecificationRef.setName(responsesSpec1.getName()); + aResource.setResourceSpecification(aServiceSpecificationRef); + String responseResourceStr = mvc + .perform(MockMvcRequestBuilders.post("/resourceInventoryManagement/v4/resource") + .with(SecurityMockMvcRequestPostProcessors.csrf()).contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson(aResource))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); + logger.info("testServiceOrderCreate = " + responseResourceStr); + Resource responseResource = JsonUtils.toJsonObj(responseResourceStr, PhysicalResource.class); + + var resPooltext = "{\"name\" : \"gNB\",\"capacity\" : {\"capacityAmount\" : 4,\"resources\": [{\"id\": \"%s\"},{\"id\": \"F0001\"},{\"id\": \"F0002\"},{\"id\": \"F0003\"} ] }}".formatted(responseResource.getId()); + + ResourcePoolCreate aResourcePool = JsonUtils.toJsonObj(resPooltext, ResourcePoolCreate.class); + + logger.info("aResourcePool JSON = " + JsonUtils.toJsonString(aResourcePool)); + + // @formatter:off + String responseResourcePool = mvc + .perform(MockMvcRequestBuilders + .post("/resourcePoolManagement/v1/resourcePool") + .with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson( aResourcePool ))) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + // @formatter:on + logger.info("testresponseResourcePoolCreate = " + responseResourcePool); + ResourcePool responseRPool = JsonUtils.toJsonObj(responseResourcePool, ResourcePool.class); + + assertThat(responseRPool.getId()).isNotNull(); + assertThat(responseRPool.getName()).isEqualTo("gNB"); + assertThat(responseRPool.getCapacity().getCapacityAmount()).isEqualTo(4); + assertThat(responseRPool.getCapacity().getResources().size()).isEqualTo(4); + // assertThat(responseRPool.getCapacity().getResources().stream().findFirst().get() + // .getId()).contains("F0002" ); + + // modify capacity + resPooltext = "{\"name\" : \"gNB\",\"capacity\" : {\"capacityAmount\" : 8,\"resources\": [{\"id\": \"%s\"},{\"id\": \"F0001\"},{\"id\": \"F0002\"},{\"id\": \"F0003\"} ] }}".formatted(responseResource.getId()); + + ResourcePoolUpdate aResourcePoolUpd = JsonUtils.toJsonObj(resPooltext, ResourcePoolUpdate.class); + // @formatter:off + responseResourcePool = mvc + .perform(MockMvcRequestBuilders + .patch("/resourcePoolManagement/v1/resourcePool/" + responseRPool.getId()) + .with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson( aResourcePoolUpd ))) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + // @formatter:on + logger.info("testresponseResourcePoolCreate = " + responseResourcePool); + responseRPool = JsonUtils.toJsonObj(responseResourcePool, ResourcePool.class); + assertThat(responseRPool.getName()).isEqualTo("gNB"); + assertThat(responseRPool.getCapacity().getCapacityAmount()).isEqualTo(8); + assertThat(responseRPool.getCapacity().getResources().size()).isEqualTo(4); + + responseResourcePool = mvc + .perform(MockMvcRequestBuilders.get("/resourcePoolManagement/v1/resourcePool") + .with(SecurityMockMvcRequestPostProcessors.csrf()).contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson(aResourcePoolUpd))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); + + List pools = JsonUtils.toJsonObj(responseResourcePool, ArrayList.class); + assertThat(pools.size()).isEqualTo(1); + + responseResourcePool = mvc + .perform(MockMvcRequestBuilders.get("/resourcePoolManagement/v1/resourcePool/" + responseRPool.getId()) + .with(SecurityMockMvcRequestPostProcessors.csrf()).contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson(aResourcePoolUpd))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); + + responseRPool = JsonUtils.toJsonObj(responseResourcePool, ResourcePool.class); + assertThat(responseRPool.getName()).isEqualTo("gNB"); + assertThat(responseRPool.getCapacity().getCapacityAmount()).isEqualTo(8); + + /** + * Test reservations + */ + + // Create a reservation + String reserv = + "{"+ + " \"requestedPeriodEndDateTime\": \"2022-10-18T21:17:12.890623100Z\","+ + " \"requestedPeriodStartDateTime\": \"2022-10-11T21:17:12.890623100Z\","+ + " \"description\": \"new reservation\","+ + " \"relatedParty\": {"+ + " \"name\": \"Actor\""+ + " },"+ + " \"validFor\": {"+ + " \"endDateTime\": \"2022-10-18T21:17:12.890623100Z\","+ + " \"startDateTime\": \"2022-10-11T21:17:12.890623100Z\""+ + " },"+ + " \"reservationItem\": ["+ + " {"+ + " \"quantity\": 1,"+ + " \"resourceCapacity\": {"+ + " \"capacityDemandAmount\": 1,"+ + " \"resourcePool\": {"+ + " \"id\": \""+responseRPool.getId()+"\","+ + " \"resources\": ["+ + " {"+ + " \"id\": \""+responseResource.getId()+"\""+ + " }]"+ + " }"+ + " }"+ + " }"+ + " ],"+ + " \"serviceOrderRef\": {"+ + " \"id\": \"xxx\""+ + " }"+ + " }"; + + var rrc = JsonUtils.toJsonObj(reserv, ReservationCreate.class); + + // @formatter:off + String responseReservation = mvc + .perform(MockMvcRequestBuilders + .post("/resourcePoolManagement/v1/reservation") + .with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson( rrc ))) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + // @formatter:on + logger.info("testresponseReservationCreate = " + responseReservation); + Reservation aReservation = JsonUtils.toJsonObj(responseReservation, Reservation.class); + + assertThat(aReservation.getId()).isNotNull(); + assertThat(aReservation.getDescription()).isEqualTo("new reservation"); + assertThat(aReservation.getReservationItem().stream().findFirst().get().getQuantity()).isEqualTo(1); + assertThat(aReservation.getReservationItem().stream().findFirst().get().getAppliedCapacityAmount().getResource() + .stream().findFirst().get().getId()).isEqualTo(responseResource.getId()); + + responseReservation = mvc + .perform(MockMvcRequestBuilders.get("/resourcePoolManagement/v1/reservation/" + aReservation.getId()) + .with(SecurityMockMvcRequestPostProcessors.csrf()).contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson(rrc))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); + // @formatter:on + logger.info("testresponseReservationPatch = " + responseReservation); + aReservation = JsonUtils.toJsonObj(responseReservation, Reservation.class); + + assertThat(aReservation.getId()).isNotNull(); + assertThat(aReservation.getDescription()).isEqualTo("new reservation"); + assertThat(aReservation.getReservationItem().stream().findFirst().get().getQuantity()).isEqualTo(1); + assertThat(aReservation.getReservationItem().stream().findFirst().get().getResourceCapacity() + .getCapacityDemandAmount()).isEqualTo(1); + assertThat(aReservation.getReservationItem().stream().findFirst().get().getResourceCapacity().getResourcePool() + .getResources().stream().findFirst().get().getId()).isEqualTo(responseResource.getId()); + assertThat(aReservation.getReservationItem().stream().findFirst().get().getAppliedCapacityAmount().getResource() + .stream().findFirst().get().getId()).isEqualTo(responseResource.getId()); + + // Push to pool + var resPoolPushtext = "{\"resourcePool\": {\"id\": \"%s\"},\"capacity\": {\"capacityAmount\": 2,\"resources\": [{\"id\": \"xxx\"},{\"id\": \"yyy\"}]}}".formatted(responseRPool.getId()); + + var aResourcePoolPush = JsonUtils.toJsonObj(resPoolPushtext, PushCreate.class); + logger.info("aResourcePoolPush JSON = " + JsonUtils.toJsonString(aResourcePoolPush)); + + // @formatter:off + String responseResourcePoolPush = mvc + .perform(MockMvcRequestBuilders + .post("/resourcePoolManagement/v1/push") + .with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson( aResourcePoolPush ))) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + // @formatter:on + logger.info("responseResourcePoolPush = " + responseResourcePoolPush); + responseRPool = JsonUtils.toJsonObj(responseResourcePoolPush, ResourcePool.class); + + assertThat(responseRPool.getId()).isNotNull(); + assertThat(responseRPool.getName()).isEqualTo("gNB"); + assertThat(responseRPool.getCapacity().getCapacityAmount()).isEqualTo(10); + assertThat(responseRPool.getCapacity().getResources().size()).isEqualTo(6); + + // Extract from pool + var resExtrText = "{\"resourcePool\": {\"id\": \"%s\"},\"capacity\": {\"capacityAmount\": 2,\"resources\": [{\"id\": \"xxx\"},{\"id\": \"yyy\"}]}}".formatted(responseRPool.getId()); + + + var aResourcePoolExtract = JsonUtils.toJsonObj(resExtrText, ExtractCreate.class); + logger.info("aResourcePoolExtract JSON = " + JsonUtils.toJsonString(aResourcePoolExtract)); + + // @formatter:off + String responseResourcePoolExt = mvc + .perform(MockMvcRequestBuilders + .post("/resourcePoolManagement/v1/extract") + .with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson( aResourcePoolExtract ))) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + // @formatter:on + logger.info("responseResourcePoolExt = " + responseResourcePoolExt); + responseRPool = JsonUtils.toJsonObj(responseResourcePoolExt, ResourcePool.class); + + assertThat(responseRPool.getId()).isNotNull(); + assertThat(responseRPool.getName()).isEqualTo("gNB"); + assertThat(responseRPool.getCapacity().getCapacityAmount()).isEqualTo(8); + assertThat(responseRPool.getCapacity().getResources().size()).isEqualTo(4); + + // Availability Check + // will check if there are free resources of specific amount under this pool + + AvailabilityCheck av = new AvailabilityCheck(); + ResourceCapacityDemand rcd = new ResourceCapacityDemand(); + rcd.setCapacityDemandAmount(1); + ApplicableTimePeriod aperiod = new ApplicableTimePeriod(); + aperiod.setFromDateTime(OffsetDateTime.now(ZoneOffset.UTC)); + aperiod.setEndDateTime(OffsetDateTime.now(ZoneOffset.UTC).plusDays(7)); + rcd.applicableTimePeriod(aperiod); + av.setResourceCapacityDemand(rcd); + ResourcePoolRef rpRef = new ResourcePoolRef(); + rpRef.setId(responseRPool.getId()); + rcd.setResourcePool(rpRef); + + String strav = JsonUtils.toJsonString(av); + logger.info("AvailabilityCheck JSON = " + strav); + + // @formatter:off + String responseAvailabilityCheck = mvc + .perform(MockMvcRequestBuilders + .post("/resourcePoolManagement/v1/availabilityCheck") + .with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson( av ))) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + // @formatter:on + logger.info("responseAvailabilityCheck = " + responseAvailabilityCheck); + AvailabilityCheck respAvailabilityCheck = JsonUtils.toJsonObj(responseAvailabilityCheck, + AvailabilityCheck.class); + + assertThat(respAvailabilityCheck.getAvailableResources().size()).isEqualTo( 4 ); + +// RelatedParty relatedParty = new RelatedParty(); +// relatedParty.setName("Actor"); +// ReservationCreate rrc = new ReservationCreate(); +// +// ResourceCapacityDemand resCapDem = new ResourceCapacityDemand(); +// ResourcePoolRef poolRef = new ResourcePoolRef(); +// poolRef.id(responseRPool.getId()); +// resCapDem.capacityDemandAmount("1").resourcePool(poolRef); +// +// ReservationItem resrvItem = new ReservationItem(); +// resrvItem.quantity(1).resourceCapacity(resCapDem); +// +// ServiceOrderRef soRef = new ServiceOrderRef(); +// soRef.id("xxx"); +// TimePeriod validFor = new TimePeriod(); +// validFor.startDateTime(OffsetDateTime.now(ZoneOffset.UTC)) +// .endDateTime(OffsetDateTime.now(ZoneOffset.UTC).plusDays(7)); +// +// rrc.description("new reservation").relatedParty(relatedParty).addReservationItemItem(resrvItem) +// .serviceOrderRef(soRef).validFor(validFor) +// .requestedPeriodStartDateTime(OffsetDateTime.now(ZoneOffset.UTC)) +// .requestedPeriodEndDateTime(OffsetDateTime.now(ZoneOffset.UTC).plusDays(7)); +// +// String rrcStr = JsonUtils.toJsonString(rrc); +// logger.info("ReservationCreate = " + rrcStr); + + } + + @WithMockUser(username = "osadmin", roles = { "USER", "ADMIN" }) + @Test + public void testFindResourceInPools() throws UnsupportedEncodingException, IOException, Exception { + + // Create a resource spec + File sspec = new File("src/test/resources/testResourceSpec.json"); + InputStream in = new FileInputStream(sspec); + String sspectext = IOUtils.toString(in, "UTF-8"); + ResourceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj(sspectext, ResourceSpecificationCreate.class); + sspeccr1.setName("Spec1"); + ResourceSpecification responsesSpec1 = createResourceSpec(sspeccr1); + + ResourceCreate aResource = new ResourceCreate(); + aResource.setName("gNB A Outdoor"); + aResource.setCategory("Experimentation"); + aResource.setAtType("PhysicalResource"); + ResourceSpecificationRef aServiceSpecificationRef = new ResourceSpecificationRef(); + aServiceSpecificationRef.setId(responsesSpec1.getId()); + aServiceSpecificationRef.setName(responsesSpec1.getName()); + aResource.setResourceSpecification(aServiceSpecificationRef); + Resource r1 = resourceRepoService.addResource(aResource); + ResourceRef rref1 = new ResourceRef(); + rref1.setId(r1.getId()); + rref1.setName( aResource.getName() ); + + + aResource.setName("gNB B Outdoor"); + Resource r1_gb = resourceRepoService.addResource(aResource); + ResourceRef rref1_gb = new ResourceRef(); + rref1_gb.setId(r1_gb.getId()); + rref1_gb.setName( aResource.getName() ); + + aResource.setName("gNB C Outdoor"); + Resource r1_gc = resourceRepoService.addResource(aResource); + ResourceRef rref1_gc = new ResourceRef(); + rref1_gc.setId(r1_gc.getId()); + rref1_gc.setName( aResource.getName() ); + + + + aResource.setName("gNB Indoor"); + Resource r2 = resourceRepoService.addResource(aResource); + ResourceRef rref2 = new ResourceRef(); + rref2.setId(r2.getId()); + + // create Pools + ResourcePoolCreate aResourcePool = new ResourcePoolCreate(); + aResourcePool.setName("Outdoors GNBs"); + Capacity cap = new Capacity(); + cap.addResourceRefItem(rref1); + cap.addResourceRefItem(rref1_gb); + cap.addResourceRefItem(rref1_gc); + aResourcePool.setCapacity(cap); + var rp1 = resourcePoolRepoService.addResourcePool(aResourcePool); + + aResourcePool.setName("Indoor GNBs"); + cap = new Capacity(); + cap.addResourceRefItem(rref2); + aResourcePool.setCapacity(cap); + var rp2 = resourcePoolRepoService.addResourcePool(aResourcePool); + + assertThat(rp1.getCapacity().getResources().size()).isEqualTo(3); + assertThat(rp2.getCapacity().getResources().size()).isEqualTo(1); + + Set refs = resourcePoolRepoService.findResourceRefinPools( rref1.getId() ); + assertThat(refs.size()).isEqualTo(1); + assertThat(refs.stream().findFirst().get().getId() ).isEqualTo( rp1.getId() ); + refs = resourcePoolRepoService.findResourceRefinPools( rref2.getId() ); + assertThat(refs.size()).isEqualTo(1); + assertThat(refs.stream().findFirst().get().getId() ).isEqualTo( rp2.getId() ); + + + //check availability of resource on a specific date then, e.g. R1 + + Set resourcePoolToCheck = resourcePoolRepoService.findResourceRefinPools( r1.getId() ); + ResourcePool rpool = resourcePoolToCheck.stream().findFirst().get(); + + AvailabilityCheck av = new AvailabilityCheck(); + ResourceCapacityDemand rcd = new ResourceCapacityDemand(); + rcd.setCapacityDemandAmount(1); + ApplicableTimePeriod aperiod = new ApplicableTimePeriod(); + OffsetDateTime startReservationDate = OffsetDateTime.now(ZoneOffset.UTC); + OffsetDateTime endReservationDate = OffsetDateTime.now(ZoneOffset.UTC).plusDays(7) ; + + + aperiod.setFromDateTime( startReservationDate ); + aperiod.setEndDateTime( endReservationDate ); + rcd.applicableTimePeriod(aperiod); + av.setResourceCapacityDemand( rcd ); + ResourcePoolRef rpRef = new ResourcePoolRef(); + rpRef.setId( rpool.getId() ); + rcd.setResourcePool(rpRef); + Set resourcesToReserve = new HashSet<>(); + resourcesToReserve.add(rref1); + rcd.setResources( resourcesToReserve ); + String strav = JsonUtils.toJsonString(av); + logger.info("AvailabilityCheck JSON = " + strav); + + //no resource reservation yes, so this resource is available + // @formatter:off + String responseAvailabilityCheck = mvc + .perform(MockMvcRequestBuilders + .post("/resourcePoolManagement/v1/availabilityCheck") + .with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson( av ))) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + // @formatter:on + logger.info("responseAvailabilityCheck = " + responseAvailabilityCheck); + AvailabilityCheck respAvailabilityCheck = JsonUtils.toJsonObj(responseAvailabilityCheck, AvailabilityCheck.class); + + assertThat(respAvailabilityCheck.getAvailableResources().size()).isEqualTo(1); + + + //reserve this period. + + // Create a reservation + String reserv = + "{"+ + " \"requestedPeriodStartDateTime\": \""+ startReservationDate +"\","+ + " \"requestedPeriodEndDateTime\": \""+ endReservationDate +"\","+ + " \"description\": \"new reservation\","+ + " \"relatedParty\": {"+ + " \"name\": \"Actor\""+ + " },"+ + " \"reservationItem\": ["+ + " {"+ + " \"quantity\": 1,"+ + " \"resourceCapacity\": {"+ + " \"capacityDemandAmount\": 1,"+ + " \"resourcePool\": {"+ + " \"id\": \""+ rpool.getId()+"\","+ + " \"resources\": ["+ + " {"+ + " \"id\": \""+r1.getId()+"\""+ + " }]"+ + " }"+ + " }"+ + " }"+ + " ],"+ + " \"serviceOrderRef\": {"+ + " \"id\": \"xxx\""+ + " }"+ + " }"; + + var rrc = JsonUtils.toJsonObj(reserv, ReservationCreate.class); + + // @formatter:off + String responseReservation = mvc + .perform(MockMvcRequestBuilders + .post("/resourcePoolManagement/v1/reservation") + .with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson( rrc ))) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + // @formatter:on + logger.info("testresponseReservationCreate = " + responseReservation); + Reservation aReservation = JsonUtils.toJsonObj(responseReservation, Reservation.class); + + assertThat(aReservation.getId()).isNotNull(); + assertThat(aReservation.getDescription()).isEqualTo("new reservation"); + assertThat(aReservation.getReservationItem().stream().findFirst().get().getQuantity()).isEqualTo(1); + + + //ask again for availability of this resource on this period. We should not get an availability + // @formatter:off + responseAvailabilityCheck = mvc + .perform(MockMvcRequestBuilders + .post("/resourcePoolManagement/v1/availabilityCheck") + .with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson( av ))) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + // @formatter:on + logger.info("responseAvailabilityCheck = " + responseAvailabilityCheck); + respAvailabilityCheck = JsonUtils.toJsonObj(responseAvailabilityCheck, AvailabilityCheck.class); + assertThat(respAvailabilityCheck.getAvailableResources().size()).isEqualTo(0); // We should not get an availability + + + //ask again for availability of this resource in between period. We should NOT get an availability + + startReservationDate = OffsetDateTime.now(ZoneOffset.UTC).plusDays(1); + endReservationDate = OffsetDateTime.now(ZoneOffset.UTC).plusDays(5) ; + + aperiod.setFromDateTime( startReservationDate ); + aperiod.setEndDateTime( endReservationDate ); + rcd.applicableTimePeriod(aperiod); + av.setResourceCapacityDemand( rcd ); + strav = JsonUtils.toJsonString(av); + logger.info("AvailabilityCheck JSON = " + strav); + + // @formatter:off + responseAvailabilityCheck = mvc + .perform(MockMvcRequestBuilders + .post("/resourcePoolManagement/v1/availabilityCheck") + .with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson( av ))) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + // @formatter:on + logger.info("responseAvailabilityCheck = " + responseAvailabilityCheck); + respAvailabilityCheck = JsonUtils.toJsonObj(responseAvailabilityCheck, AvailabilityCheck.class); + assertThat(respAvailabilityCheck.getAvailableResources().size()).isEqualTo(0); // We should get an availability + + //ask again for availability of this resource in period larger that includes other reservations. We should NOT get an availability + + startReservationDate = OffsetDateTime.now(ZoneOffset.UTC).minusDays(5); + endReservationDate = OffsetDateTime.now(ZoneOffset.UTC).plusDays(10) ; + + aperiod.setFromDateTime( startReservationDate ); + aperiod.setEndDateTime( endReservationDate ); + rcd.applicableTimePeriod(aperiod); + av.setResourceCapacityDemand( rcd ); + strav = JsonUtils.toJsonString(av); + logger.info("AvailabilityCheck JSON = " + strav); + + // @formatter:off + responseAvailabilityCheck = mvc + .perform(MockMvcRequestBuilders + .post("/resourcePoolManagement/v1/availabilityCheck") + .with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson( av ))) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + // @formatter:on + logger.info("responseAvailabilityCheck = " + responseAvailabilityCheck); + respAvailabilityCheck = JsonUtils.toJsonObj(responseAvailabilityCheck, AvailabilityCheck.class); + assertThat(respAvailabilityCheck.getAvailableResources().size()).isEqualTo(0); // We should get an availability + + + //ask again for availability of this resource in between period. We should NOT get an availability + + startReservationDate = OffsetDateTime.now(ZoneOffset.UTC).plusDays(5); + endReservationDate = OffsetDateTime.now(ZoneOffset.UTC).plusDays(10) ; + + aperiod.setFromDateTime( startReservationDate ); + aperiod.setEndDateTime( endReservationDate ); + rcd.applicableTimePeriod(aperiod); + av.setResourceCapacityDemand( rcd ); + strav = JsonUtils.toJsonString(av); + logger.info("AvailabilityCheck JSON = " + strav); + + // @formatter:off + responseAvailabilityCheck = mvc + .perform(MockMvcRequestBuilders + .post("/resourcePoolManagement/v1/availabilityCheck") + .with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson( av ))) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + // @formatter:on + logger.info("responseAvailabilityCheck = " + responseAvailabilityCheck); + respAvailabilityCheck = JsonUtils.toJsonObj(responseAvailabilityCheck, AvailabilityCheck.class); + assertThat(respAvailabilityCheck.getAvailableResources().size()).isEqualTo(0); // We should get an availability + + //ask again for availability of this resource in between period. We should NOT get an availability + + startReservationDate = OffsetDateTime.now(ZoneOffset.UTC).minusDays(5); + endReservationDate = OffsetDateTime.now(ZoneOffset.UTC).plusDays(1) ; + + aperiod.setFromDateTime( startReservationDate ); + aperiod.setEndDateTime( endReservationDate ); + rcd.applicableTimePeriod(aperiod); + av.setResourceCapacityDemand( rcd ); + strav = JsonUtils.toJsonString(av); + logger.info("AvailabilityCheck JSON = " + strav); + + // @formatter:off + responseAvailabilityCheck = mvc + .perform(MockMvcRequestBuilders + .post("/resourcePoolManagement/v1/availabilityCheck") + .with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson( av ))) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + // @formatter:on + logger.info("responseAvailabilityCheck = " + responseAvailabilityCheck); + respAvailabilityCheck = JsonUtils.toJsonObj(responseAvailabilityCheck, AvailabilityCheck.class); + assertThat(respAvailabilityCheck.getAvailableResources().size()).isEqualTo(0); // We should get an availability + + //ask again for availability of this resource on a further period. We SHOULD GET an availability + + startReservationDate = OffsetDateTime.now(ZoneOffset.UTC).plusDays(10); + endReservationDate = OffsetDateTime.now(ZoneOffset.UTC).plusDays(12) ; + + aperiod.setFromDateTime( startReservationDate ); + aperiod.setEndDateTime( endReservationDate ); + rcd.applicableTimePeriod(aperiod); + av.setResourceCapacityDemand( rcd ); + strav = JsonUtils.toJsonString(av); + logger.info("AvailabilityCheck JSON = " + strav); + + // @formatter:off + responseAvailabilityCheck = mvc + .perform(MockMvcRequestBuilders + .post("/resourcePoolManagement/v1/availabilityCheck") + .with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson( av ))) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + // @formatter:on + logger.info("responseAvailabilityCheck = " + responseAvailabilityCheck); + respAvailabilityCheck = JsonUtils.toJsonObj(responseAvailabilityCheck, AvailabilityCheck.class); + assertThat(respAvailabilityCheck.getAvailableResources().size()).isEqualTo(1); // We should get an availability + + + //ask again for availability of two resources of this pool in between period. We should get only 1 RESOURCE availability + + startReservationDate = OffsetDateTime.now(ZoneOffset.UTC).minusDays(5); + endReservationDate = OffsetDateTime.now(ZoneOffset.UTC).plusDays(1) ; + + aperiod.setFromDateTime( startReservationDate ); + aperiod.setEndDateTime( endReservationDate ); + rcd.applicableTimePeriod(aperiod); + av.setResourceCapacityDemand( rcd ); + resourcesToReserve = new HashSet<>(); + resourcesToReserve.add(rref1); + resourcesToReserve.add(rref1_gb); + rcd.setResources( resourcesToReserve ); + + strav = JsonUtils.toJsonString(av); + logger.info("AvailabilityCheck JSON = " + strav); + + // @formatter:off + responseAvailabilityCheck = mvc + .perform(MockMvcRequestBuilders + .post("/resourcePoolManagement/v1/availabilityCheck") + .with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson( av ))) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + // @formatter:on + logger.info("responseAvailabilityCheck = " + responseAvailabilityCheck); + respAvailabilityCheck = JsonUtils.toJsonObj(responseAvailabilityCheck, AvailabilityCheck.class); + assertThat(respAvailabilityCheck.getAvailableResources().size()).isEqualTo( 1 ); // We should get an availability + for (ResourceRef resourceRef : respAvailabilityCheck.getAvailableResources()) { + logger.info("responseAvailabilityCheckresourceRef = " + resourceRef.getName()); + + } + + + //ask again for availability of any resource of this resource pool in between period. We should get 2 RESOURCES availability + + startReservationDate = OffsetDateTime.now(ZoneOffset.UTC).minusDays(5); + endReservationDate = OffsetDateTime.now(ZoneOffset.UTC).plusDays(1) ; + + aperiod.setFromDateTime( startReservationDate ); + aperiod.setEndDateTime( endReservationDate ); + rcd.applicableTimePeriod(aperiod); + av.setResourceCapacityDemand( rcd ); + rcd.setResources( null ); //THIS SIGNALS TO CHECK ALL RESOURCES OF THIS POOL + strav = JsonUtils.toJsonString(av); + logger.info("AvailabilityCheck JSON = " + strav); + + // @formatter:off + responseAvailabilityCheck = mvc + .perform(MockMvcRequestBuilders + .post("/resourcePoolManagement/v1/availabilityCheck") + .with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson( av ))) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + // @formatter:on + logger.info("responseAvailabilityCheck = " + responseAvailabilityCheck); + respAvailabilityCheck = JsonUtils.toJsonObj(responseAvailabilityCheck, AvailabilityCheck.class); + assertThat(respAvailabilityCheck.getAvailableResources().size()).isEqualTo( 2 ); // We should get an availability + for (ResourceRef resourceRef : respAvailabilityCheck.getAvailableResources()) { + logger.info("responseAvailabilityCheckresourceRef = " + resourceRef.getName()); + + } + } + + private ResourceSpecification createResourceSpec(ResourceSpecificationUpdate sspeccr1) throws Exception { + + URI url = new URI("/resourceCatalogManagement/v4/resourceSpecification"); + + String responseSpec = mvc + .perform(MockMvcRequestBuilders.post(url).with(SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON).content(JsonUtils.toJson(sspeccr1))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); + + ResourceSpecification responsesSpec1; + if (sspeccr1.getType().toLowerCase().contains("physicalresource")) { + responsesSpec1 = JsonUtils.toJsonObj(responseSpec, PhysicalResourceSpecification.class); + } else { + responsesSpec1 = JsonUtils.toJsonObj(responseSpec, LogicalResourceSpecification.class); + } + +// logger.info("createResourceSpec = " + responseSpec); + return responsesSpec1; + } +} diff --git a/src/test/java/org/etsi/osl/services/api/ServiceCatalogIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/ServiceCatalogIntegrationTest.java new file mode 100644 index 0000000..f5da7aa --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/ServiceCatalogIntegrationTest.java @@ -0,0 +1,1236 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.services.api; + + + +import static org.assertj.core.api.Assertions.assertThat; +import static org.hamcrest.CoreMatchers.is; +import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.net.URI; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.UUID; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.BootstrapRepository; +import org.etsi.osl.tmf.OpenAPISpringBoot; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.Attachment; +import org.etsi.osl.tmf.common.model.AttachmentRef; +import org.etsi.osl.tmf.common.model.EValueType; +import org.etsi.osl.tmf.common.model.Quantity; +import org.etsi.osl.tmf.common.model.UserPartRoleType; +import org.etsi.osl.tmf.pm632.model.Organization; +import org.etsi.osl.tmf.pm632.model.OrganizationCreate; +import org.etsi.osl.tmf.pm632.reposervices.OrganizationRepoService; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.rcm634.model.LogicalResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.etsi.osl.tmf.scm633.model.ServiceCandidateRef; +import org.etsi.osl.tmf.scm633.model.ServiceCatalog; +import org.etsi.osl.tmf.scm633.model.ServiceCatalogCreate; +import org.etsi.osl.tmf.scm633.model.ServiceCatalogUpdate; +import org.etsi.osl.tmf.scm633.model.ServiceCategory; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryCreate; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryRef; +import org.etsi.osl.tmf.scm633.model.ServiceCategoryUpdate; +import org.etsi.osl.tmf.scm633.model.ServiceSpecCharRelationship; +import org.etsi.osl.tmf.scm633.model.ServiceSpecCharacteristic; +import org.etsi.osl.tmf.scm633.model.ServiceSpecCharacteristicValue; +import org.etsi.osl.tmf.scm633.model.ServiceSpecRelationship; +import org.etsi.osl.tmf.scm633.model.ServiceSpecification; +import org.etsi.osl.tmf.scm633.model.ServiceSpecificationCreate; +import org.etsi.osl.tmf.scm633.model.ServiceSpecificationUpdate; +import org.etsi.osl.tmf.scm633.reposervices.CandidateRepoService; +import org.etsi.osl.tmf.scm633.reposervices.CatalogRepoService; +import org.etsi.osl.tmf.scm633.reposervices.CategoryRepoService; +import org.etsi.osl.tmf.scm633.reposervices.ServiceSpecificationRepoService; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.WebApplicationContext; +import jakarta.validation.Valid; +import net.minidev.json.JSONObject; + + +@RunWith(SpringRunner.class) +@Transactional +@SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) +//@AutoConfigureTestDatabase //this automatically uses h2 +@AutoConfigureMockMvc +@ActiveProfiles("testing") +//@TestPropertySource( +// locations = "classpath:application-testing.yml") +public class ServiceCatalogIntegrationTest { + + + private static final transient Log logger = LogFactory.getLog( ServiceCatalogIntegrationTest.class.getName()); + + private static final int FIXED_BOOTSTRAPS_SPECS = 1; + + @Autowired + private MockMvc mvc; + + @Autowired + CatalogRepoService catalogRepoService; + + + @Autowired + CategoryRepoService categRepoService; + + @Autowired + ServiceSpecificationRepoService specRepoService; + + @Autowired + CandidateRepoService candidateRepoService; + + @Autowired + private WebApplicationContext context; + + @Autowired + private BootstrapRepository bootstrapRepository; + + + @Autowired + OrganizationRepoService organizationRepoService; + + @Before + public void setup() { + mvc = MockMvcBuilders + .webAppContextSetup(context) + .apply(springSecurity()) + .build(); + } + + @Test + public void _countDefaultProperties() { + + assertThat( catalogRepoService.findAll().size() ).isEqualTo( 1 ); + assertThat( categRepoService.findAll().size() ).isEqualTo( 1 ); + assertThat( candidateRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); + + assertThat( catalogRepoService.findByName( "Catalog" ) ).isNotNull() ; + assertThat( categRepoService.findByName( "Generic Services" ) ).isNotNull() ; + + ServiceCategory categ = categRepoService.findByName( "Generic Services" ); + assertThat( categ.getServiceCandidateRefs().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); + + ServiceCategory categ2 = categRepoService.findByIdEager( categ.getId() ); + assertThat( categ2.getServiceCandidateRefs().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); + + boolean vinnisbFound = false; + boolean gstFound = false; + for (ServiceCandidateRef scr : categ.getServiceCandidateRefs()) { + if (scr.getName().equals( "A GST(NEST) Service Example" )) { + gstFound = true; + } + if (scr.getName().equals( "A VINNI Service Example" )) { + vinnisbFound = true; + } + } + + assertThat( gstFound ).isTrue(); + //assertThat( vinnisbFound ).isTrue(); + + + + } + + @Test + public void givenRequestOnPrivateService_shouldFailWith401() throws Exception { +// mvc.perform(post("/serviceCatalogManagement/v4/serviceCatalog") +// .contentType(MediaType.APPLICATION_JSON)) +// .andExpect(status().isUnauthorized()); + } + + @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) + @Test + public void addCatalogAddCategory() throws Exception { + File scatalog = new File( "src/test/resources/testServiceCatalog.txt" ); + InputStream in = new FileInputStream( scatalog ); + String resvxf = IOUtils.toString(in, "UTF-8"); + + ServiceCatalogCreate scc = JsonUtils.toJsonObj( resvxf, ServiceCatalogCreate.class); + + String response = mvc.perform(MockMvcRequestBuilders.post("/serviceCatalogManagement/v4/serviceCatalog") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scc ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Catalog"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + + assertThat( catalogRepoService.findAll().size() ).isEqualTo( 2 ); + + ServiceCatalog responsesCatalog = JsonUtils.toJsonObj(response, ServiceCatalog.class); + assertThat( responsesCatalog.getName() ).isEqualTo( "Test Catalog" ); + + assertThat( responsesCatalog.getCategoryObj().size()).isEqualTo(0); + + + /** + * add category + */ + + File scat = new File( "src/test/resources/testServiceCategory.txt" ); + in = new FileInputStream( scat ); + String sc = IOUtils.toString(in, "UTF-8"); + + ServiceCategoryCreate scategcreate = JsonUtils.toJsonObj( sc, ServiceCategoryCreate.class); + + response = mvc.perform(MockMvcRequestBuilders.post("/serviceCatalogManagement/v4/serviceCategory") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scategcreate ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Category 2"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + assertThat( categRepoService.findAll().size() ).isEqualTo( 2 ); + + ServiceCategory responsesCateg = JsonUtils.toJsonObj(response, ServiceCategory.class); + assertThat( responsesCateg.getName() ).isEqualTo( "Test Category 2" ); + + + /** + * update catalog with category + */ + ServiceCatalogUpdate scu = new ServiceCatalogUpdate(); + scu.setName( responsesCatalog.getName() ); + ServiceCategoryRef categoryItem = new ServiceCategoryRef(); + categoryItem.setId( responsesCateg.getId() ); + + scu.addCategoryItem(categoryItem); + response = mvc.perform(MockMvcRequestBuilders.patch("/serviceCatalogManagement/v4/serviceCatalog/" + responsesCatalog.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scu ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Catalog"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + assertThat( catalogRepoService.findAll().size() ).isEqualTo( 2 ); + + responsesCatalog = JsonUtils.toJsonObj(response, ServiceCatalog.class); + assertThat(responsesCatalog.getName()).isEqualTo("Test Catalog"); + + + assertThat( responsesCatalog.getCategoryObj().size()).isEqualTo(1); + assertThat( responsesCatalog.getCategoryRefs().get(0).getName() ).isEqualTo( "Test Category 2" ); + + /** + * Service Spec + */ + File sspec = new File( "src/test/resources/testServiceSpec.json" ); + in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + + ServiceSpecificationCreate sspeccr = JsonUtils.toJsonObj( sspectext, ServiceSpecificationCreate.class); + + response = mvc.perform(MockMvcRequestBuilders.post("/serviceCatalogManagement/v4/serviceSpecification") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( sspeccr ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Spec"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS +1 ); + ServiceSpecification responsesSpec = JsonUtils.toJsonObj(response, ServiceSpecification.class); + assertThat( responsesSpec.getName() ).isEqualTo( "Test Spec" ); + + assertThat( responsesSpec.getServiceSpecCharacteristic().size() ).isEqualTo(2); + assertThat( responsesSpec.getServiceSpecCharacteristic().toArray( new ServiceSpecCharacteristic[0] )[0].getServiceSpecCharacteristicValue().size() ).isEqualTo(1); + + + + + } + + + @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) + @Test + public void manageCategoriesSubCategories() throws Exception { + /** + * add category + */ + + File scat = new File( "src/test/resources/testServiceCategory.txt" ); + InputStream in = new FileInputStream( scat ); + String sc = IOUtils.toString(in, "UTF-8"); + + ServiceCategoryCreate scategcreate = JsonUtils.toJsonObj( sc, ServiceCategoryCreate.class); + scategcreate.setIsRoot(true); + ServiceCategory parentRootCategory = postCategory( scategcreate, scategcreate.getName() ); + + ServiceCategoryCreate scategcreate2 = JsonUtils.toJsonObj( sc, ServiceCategoryCreate.class); + scategcreate2.setName("Child Cat"); + ServiceCategory child1Subcategory = postCategory( scategcreate2, scategcreate2.getName() ); + + ServiceCategoryUpdate scUpd1 = JsonUtils.toJsonObj( sc, ServiceCategoryUpdate.class); + scUpd1.setIsRoot(true); + scUpd1.setName("Parent Cat"); + ServiceCategoryRef scRef = new ServiceCategoryRef(); + scRef.setId( child1Subcategory.getId() ); + scRef.setName( child1Subcategory.getName() ); + scUpd1.addCategoryItem(scRef); + + + assertThat( categRepoService.findAll().size() ).isEqualTo( 3 ); + + String response = mvc.perform(MockMvcRequestBuilders.patch("/serviceCatalogManagement/v4/serviceCategory/" + parentRootCategory.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scUpd1 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is( "Parent Cat" ))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + parentRootCategory = JsonUtils.toJsonObj(response, ServiceCategory.class); + + + assertThat( categRepoService.findAll().size() ).isEqualTo( 3 ); + assertThat( parentRootCategory.getCategoryRefs().size() ).isEqualTo(1); + assertThat( parentRootCategory.getCategoryRefs().get(0).getId() ).isEqualTo( child1Subcategory.getId() ); + + + /** + * add to a service catalog and delete the service catalog, to check that categories are still there + * + */ + + ServiceCatalog catalog = catalogRepoService.findByName( "Catalog" ); + assertThat( catalog.getCategoryRefs().size() ).isEqualTo( 1 ); + ServiceCatalogUpdate scu = new ServiceCatalogUpdate(); + scu.setName( catalog.getName() ); + for (ServiceCategoryRef iref : catalog.getCategoryRefs()) { + scu.addCategoryItem( iref ); + } + ServiceCategoryRef categoryItem = new ServiceCategoryRef(); + categoryItem.setId( parentRootCategory.getId() ); + scu.addCategoryItem( categoryItem ); + catalog = catalogRepoService.updateCatalog( catalog.getId(), scu); + + assertThat( catalog.getCategoryRefs().size() ).isEqualTo( 2 ); + assertThat( categRepoService.findAll().size() ).isEqualTo( 3 ); + assertThat( catalogRepoService.findAll().size() ).isEqualTo( 1 ); + catalogRepoService.deleteById( catalog.getId() );//delete + assertThat( catalogRepoService.findAll().size() ).isEqualTo( 0 ); + assertThat( categRepoService.findAll().size() ).isEqualTo( 3 );//categories must remain + + + //fetch the subcategory and check parent ID + + response = mvc.perform(MockMvcRequestBuilders.get("/serviceCatalogManagement/v4/serviceCategory/" + parentRootCategory.getCategoryRefs().get(0).getId() ) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scUpd1 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andReturn().getResponse().getContentAsString(); + + child1Subcategory = JsonUtils.toJsonObj(response, ServiceCategory.class); + + assertThat( child1Subcategory.getParentId() ).isEqualTo( parentRootCategory.getId() ); + + //delete category with childs not allows (not modified) + response = mvc.perform(MockMvcRequestBuilders.delete("/serviceCatalogManagement/v4/serviceCategory/" + parentRootCategory.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scUpd1 ) )) + .andExpect(status().isNotModified() ) + .andReturn().getResponse().getContentAsString(); + + assertThat( categRepoService.findAll().size() ).isEqualTo( 3 ); + + //delete subcategory + response = mvc.perform(MockMvcRequestBuilders.delete("/serviceCatalogManagement/v4/serviceCategory/" + parentRootCategory.getCategoryRefs().get(0).getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scUpd1 ) )) + .andExpect(status().isOk() ) + .andReturn().getResponse().getContentAsString(); + + assertThat( categRepoService.findAll().size() ).isEqualTo( 2 ); + + //delete rootcategory + response = mvc.perform(MockMvcRequestBuilders.delete("/serviceCatalogManagement/v4/serviceCategory/" + parentRootCategory.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scUpd1 ) )) + .andExpect(status().isOk() ) + .andReturn().getResponse().getContentAsString(); + + assertThat( categRepoService.findAll().size() ).isEqualTo( 1 ); + + } + + private ServiceCategory postCategory(ServiceCategoryCreate scategcreate, String name) throws UnsupportedEncodingException, IOException, Exception { + + String response = mvc.perform(MockMvcRequestBuilders.post("/serviceCatalogManagement/v4/serviceCategory") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( scategcreate ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is( name ))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + ServiceCategory responsesCateg = JsonUtils.toJsonObj(response, ServiceCategory.class); + + return responsesCateg; + } + + @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) + @Test + public void testSpecAttributesUpdate() throws Exception { + logger.info("Test: testSpecAttributesUpdate"); + /** + * Service Spec + */ + File sspec = new File( "src/test/resources/testServiceSpec.json" ); + InputStream in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + + ServiceSpecificationCreate sspeccr = JsonUtils.toJsonObj( sspectext, ServiceSpecificationCreate.class); + + AttachmentRef attachmentItem = new AttachmentRef(); + attachmentItem.setId( "a-ref-id" ); + attachmentItem.setDescription("an attachment"); + attachmentItem.setUrl("a url"); + attachmentItem.setName("a url"); + sspeccr.addAttachmentItem(attachmentItem); + String responseSpec = mvc.perform(MockMvcRequestBuilders.post("/serviceCatalogManagement/v4/serviceSpecification") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( sspeccr ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Spec"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + ServiceSpecification responsesSpec = JsonUtils.toJsonObj(responseSpec, ServiceSpecification.class); + logger.info("Test: testSpecAttachments response = " + responseSpec); + assertThat( responsesSpec.getName() ).isEqualTo( "Test Spec" ); + assertThat( responsesSpec.getAttachment().size() ).isEqualTo( 1 ); + + //make it now as a ServiceSpecificationUpdate, no id, uuid and lastUpdate + JSONObject obj = JsonUtils.toJsonObj(responseSpec, JSONObject.class); + obj.remove("uuid"); + obj.remove("id"); + obj.remove("lastUpdate"); + responseSpec = JsonUtils.toJsonString(obj); + + ServiceSpecificationUpdate responsesSpecUpd = JsonUtils.toJsonObj(responseSpec, ServiceSpecificationUpdate.class); + responsesSpecUpd.setName( "Test Spec a attr" ); + responsesSpecUpd.setVersion("2.x"); + ServiceSpecCharacteristic spechar = new ServiceSpecCharacteristic(); + spechar.setName("A new characteristic"); + ServiceSpecCharacteristicValue sv = new ServiceSpecCharacteristicValue(); + sv.setValue( new Any("1" ,"a first value") ); + sv.setValueType( EValueType.LONGTEXT.getValue()); + spechar.getServiceSpecCharacteristicValue().add( sv ); + responsesSpecUpd.getServiceSpecCharacteristic().add(spechar ); + + String response2 = mvc.perform(MockMvcRequestBuilders.patch("/serviceCatalogManagement/v4/serviceSpecification/" + responsesSpec.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( responsesSpecUpd ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Spec a attr"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + ServiceSpecification responsesSpec2 = JsonUtils.toJsonObj(response2, ServiceSpecification.class); + assertThat( responsesSpec2.getName() ).isEqualTo( "Test Spec a attr" ); + assertThat( responsesSpec2.getVersion() ).isEqualTo( "2.x" ); + assertThat( responsesSpec2.getServiceSpecCharacteristic().size() ).isEqualTo(3); + assertThat( responsesSpec2.getServiceSpecCharacteristic().toArray( new ServiceSpecCharacteristic[0] )[0].getServiceSpecCharacteristicValue().size() ).isEqualTo(1); + assertThat( responsesSpec2.findSpecCharacteristicByName("Coverage") ).isNotNull(); + assertThat( responsesSpec2.findSpecCharacteristicByName("A new characteristic") ).isNotNull(); + assertThat( responsesSpec2.findSpecCharacteristicByName("Coverage").getServiceSpecCharacteristicValue().size() ).isEqualTo(1); + assertThat( responsesSpec2.findSpecCharacteristicByName("A new characteristic").getServiceSpecCharacteristicValue().toArray( new ServiceSpecCharacteristicValue[0] )[0].getValue().getAlias() ).isEqualTo("a first value"); + assertThat( responsesSpec2.findSpecCharacteristicByName("A new characteristic").getServiceSpecCharacteristicValue().toArray( new ServiceSpecCharacteristicValue[0] )[0].getValueType() ).isEqualTo("LONGTEXT"); + assertThat( responsesSpec2.findSpecCharacteristicByName("Coverage").getServiceSpecCharRelationship().size() ).isEqualTo(4); + + + logger.info("Test: testSpecAttachments responsesSpec2 patch1= " + response2.toString()); + + //test now update and delete things + responsesSpecUpd = JsonUtils.toJsonObj(responseSpec, ServiceSpecificationUpdate.class); + ServiceSpecCharacteristicValue val = new ServiceSpecCharacteristicValue(); + val.setValueType( EValueType.ARRAY.toString()); + val.setValue( new Any("1" ,"a second value") ); + responsesSpecUpd.getServiceSpecCharacteristic().get(0).getServiceSpecCharacteristicValue().add(val); + ServiceSpecCharRelationship scrObj = responsesSpecUpd.getServiceSpecCharacteristic().get(0).getServiceSpecCharRelationship().toArray( new ServiceSpecCharRelationship[0])[0]; + ServiceSpecCharRelationship scrObj2 = responsesSpecUpd.getServiceSpecCharacteristic().get(0).getServiceSpecCharRelationship().toArray( new ServiceSpecCharRelationship[0])[1]; + ServiceSpecCharRelationship scrObj3 = responsesSpecUpd.getServiceSpecCharacteristic().get(0).getServiceSpecCharRelationship().toArray( new ServiceSpecCharRelationship[0])[2]; + scrObj3.setName("FORTESTING"); + String preid = scrObj3.getId(); + responsesSpecUpd.getServiceSpecCharacteristic().get(0).getServiceSpecCharRelationship().remove(scrObj); + responsesSpecUpd.getServiceSpecCharacteristic().get(0).getServiceSpecCharRelationship().remove(scrObj2); + ServiceSpecCharRelationship scrObj4 = new ServiceSpecCharRelationship(); + scrObj4.setName("ANEWCharRel"); + responsesSpecUpd.getServiceSpecCharacteristic().get(0).getServiceSpecCharRelationship().add(scrObj4); + + response2 = mvc.perform(MockMvcRequestBuilders.patch("/serviceCatalogManagement/v4/serviceSpecification/" + responsesSpec.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( responsesSpecUpd ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Test Spec"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + logger.info("Test: testSpecAttachments responsesSpec2 patch2= " + response2.toString()); + + responsesSpec2 = JsonUtils.toJsonObj(response2, ServiceSpecification.class); + + + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS +1 ); + + assertThat( responsesSpec2.getName() ).isEqualTo( "Test Spec" ); + assertThat( responsesSpec2.getServiceSpecCharacteristic().size() ).isEqualTo(2); + assertThat( responsesSpec2.findSpecCharacteristicByName("Coverage") ).isNotNull(); + assertThat( responsesSpec2.findSpecCharacteristicByName("Coverage").getServiceSpecCharacteristicValue().size() ).isEqualTo(2); + boolean secvalExists = false; + boolean arrayValExists = false; + for (ServiceSpecCharacteristicValue respval : responsesSpec2.findSpecCharacteristicByName("Coverage").getServiceSpecCharacteristicValue().toArray( new ServiceSpecCharacteristicValue[0] )) { + if ( respval.getValue().getAlias().equals("a second value")){ + secvalExists = true; + } + if ( respval.getValueType().equals("ARRAY")){ + arrayValExists = true; + } + } + assertThat( secvalExists ).isTrue(); + assertThat( arrayValExists).isTrue(); + + + assertThat( responsesSpec2.findSpecCharacteristicByName("Coverage").getServiceSpecCharRelationship().size() ).isEqualTo(3); + boolean idfound = false; + boolean ANEWCharRelExists =false; + for (ServiceSpecCharRelationship tscr : responsesSpec2.findSpecCharacteristicByName("Coverage").getServiceSpecCharRelationship()) { + if ( (tscr.getId()!=null) && ( tscr.getId().equals(preid)) ) { + idfound = true; + assertThat( tscr.getName().equals("FORTESTING")); + } + + if ( (tscr!=null) && (tscr.getName().equals( "ANEWCharRel" )) ){ + ANEWCharRelExists = true; + } + } + assertThat( idfound).isTrue(); + assertThat( ANEWCharRelExists).isTrue(); + assertThat( responsesSpec2.findSpecCharacteristicByName("A new characteristic") ).isNull(); + + logger.info("Test: testSpecAttachments responsesSpec2 patch2= " + response2); + + + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 1 ); + + } + + + private ServiceSpecification createServiceSpec(String sspectext, ServiceSpecificationCreate sspeccr1) throws Exception{ + + String responseSpec = mvc.perform(MockMvcRequestBuilders.post("/serviceCatalogManagement/v4/serviceSpecification") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( sspeccr1 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + ServiceSpecification responsesSpec1 = JsonUtils.toJsonObj(responseSpec, ServiceSpecification.class); + logger.info("createServiceSpec = " + responseSpec); + return responsesSpec1; + } + + @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) + @Test + public void testBundledSpec() throws Exception { + logger.info("Test: testBundledSpec " ); + + /** + * first add 2 specs + */ + + File sspec = new File( "src/test/resources/testServiceSpec.json" ); + InputStream in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + + + ServiceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj( sspectext, ServiceSpecificationCreate.class); + sspeccr1.setName("Spec1"); + ServiceSpecification responsesSpec1 = createServiceSpec(sspectext, sspeccr1); + + + ServiceSpecificationCreate sspeccr2 = JsonUtils.toJsonObj( sspectext, ServiceSpecificationCreate.class); + sspeccr2.setName("Spec2"); + ServiceSpecification responsesSpec2 = createServiceSpec(sspectext, sspeccr2); + + + ServiceSpecificationCreate sspeccr3 = JsonUtils.toJsonObj( sspectext, ServiceSpecificationCreate.class); + sspeccr3.setName("Spec3"); + sspeccr3.isBundle(true); + sspeccr3.addServiceSpecRelationshipWith( responsesSpec1 ); + sspeccr3.addServiceSpecRelationshipWith( responsesSpec2 ); + + ResourceSpecificationRef resourceSpecificationItem = new ResourceSpecificationRef(); + resourceSpecificationItem.setId("resourceid"); + resourceSpecificationItem.setName("resourceName"); + sspeccr3.addResourceSpecificationItem(resourceSpecificationItem); + + ServiceSpecification responsesSpec3 = createServiceSpec(sspectext, sspeccr3); + + + assertThat( responsesSpec3.getServiceSpecRelationship().size() ).isEqualTo(2); + boolean idspec1Exists = false; + boolean idspec2Exists = false; + String relationship2UUID = null; + for (ServiceSpecRelationship r : responsesSpec3.getServiceSpecRelationship()) { + if ( r.getId().equals( responsesSpec1.getId() ) ) { + idspec1Exists= true; + } + if ( r.getId().equals( responsesSpec2.getId() ) ) { + idspec2Exists= true; + relationship2UUID = r.getUuid(); + } + } + assertThat( idspec1Exists ).isTrue(); + assertThat( idspec2Exists ).isTrue(); + + assertThat( responsesSpec3.getResourceSpecification().size() ).isEqualTo(1); + + + /** + * try PATCH with service relationships + */ + //first add a new service spec and then reference it + ServiceSpecificationCreate sspeccr4 = JsonUtils.toJsonObj( sspectext, ServiceSpecificationCreate.class); + sspeccr4.setName("Spec4"); + ServiceSpecification responsesSpec4 = createServiceSpec(sspectext, sspeccr3); + + String responseSpec3 = JsonUtils.toJsonString( responsesSpec3 ); + JSONObject obj = JsonUtils.toJsonObj(responseSpec3, JSONObject.class); + obj.remove("uuid"); + obj.remove("id"); + obj.remove("lastUpdate"); + responseSpec3 = JsonUtils.toJsonString(obj); + + ServiceSpecificationUpdate responsesSpecUpd = JsonUtils.toJsonObj(responseSpec3, ServiceSpecificationUpdate.class); + for (ServiceSpecRelationship r : responsesSpecUpd.getServiceSpecRelationship()) { + if ( r.getId().equals( responsesSpec1.getId() ) ) { + responsesSpecUpd.getServiceSpecRelationship().remove(r); + break; + } + } + responsesSpecUpd.addServiceSpecRelationshipWith(responsesSpec4); + + ResourceSpecificationRef resourceSpecificationItemNew = new ResourceSpecificationRef(); + resourceSpecificationItemNew.setId("resourceidNew"); + resourceSpecificationItemNew.setName("resourceNameNew"); + responsesSpecUpd.addResourceSpecificationItem(resourceSpecificationItemNew); + + + logger.info("Test: testBundledSpec responsesSpecUpd= " + responsesSpecUpd.toString()); + + String responsePatch1 = mvc.perform(MockMvcRequestBuilders.patch("/serviceCatalogManagement/v4/serviceSpecification/" + responsesSpec3.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( responsesSpecUpd ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("Spec3"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + ServiceSpecification responseSpecPatch1 = JsonUtils.toJsonObj( responsePatch1, ServiceSpecification.class); + + logger.info("Test: testBundledSpec responsePatch1= " + responsePatch1); + + assertThat( responseSpecPatch1.getResourceSpecification().size() ).isEqualTo(2); + assertThat( responseSpecPatch1.getServiceSpecRelationship().size() ).isEqualTo(2); + + idspec1Exists = false; + idspec2Exists = false; + boolean idspec4Exists = false; + for (ServiceSpecRelationship r : responseSpecPatch1.getServiceSpecRelationship()) { + if ( r.getId().equals( responsesSpec1.getId() ) ) { + idspec1Exists= true; + } + if ( r.getId().equals( responsesSpec2.getId() ) ) { + idspec2Exists= true; + assertThat( r.getUuid() ).isEqualTo( relationship2UUID ); + + } + if ( r.getId().equals( responsesSpec4.getId() ) ) { + idspec4Exists= true; + } + } + + assertThat( idspec1Exists ).isFalse(); + assertThat( idspec2Exists ).isTrue(); + assertThat( idspec4Exists ).isTrue(); + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 4 ); + + + + } + + + @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) + @Test + public void testCloneSpec() throws Exception { + + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); + + /** + * first add 2 specs + */ + + File sspec = new File( "src/test/resources/testServiceSpec.json" ); + InputStream in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + + + ServiceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj( sspectext, ServiceSpecificationCreate.class); + sspeccr1.setName("Spec1"); + ServiceSpecification responsesSpec1 = createServiceSpec(sspectext, sspeccr1); + + + ServiceSpecificationCreate sspeccr2 = JsonUtils.toJsonObj( sspectext, ServiceSpecificationCreate.class); + sspeccr2.setName("Spec2"); + ServiceSpecification responsesSpec2 = createServiceSpec(sspectext, sspeccr2); + + + ServiceSpecificationCreate sspeccr3 = JsonUtils.toJsonObj( sspectext, ServiceSpecificationCreate.class); + sspeccr3.setName("Spec3"); + sspeccr3.isBundle(true); + sspeccr3.addServiceSpecRelationshipWith( responsesSpec1 ); + sspeccr3.addServiceSpecRelationshipWith( responsesSpec2 ); + ServiceSpecification responsesSpec3 = createServiceSpec(sspectext, sspeccr3); + + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 3 ); + + String responseSpecCloned = mvc.perform(MockMvcRequestBuilders.get("/serviceCatalogManagement/v4/serviceSpecification/"+responsesSpec3.getId()+"/clone") + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( "" ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + ServiceSpecification clonedSpec = JsonUtils.toJsonObj( responseSpecCloned, ServiceSpecification.class); + //logger.info("source = " + responsesSpec3.toString()); + //logger.info("clonedSpec = " + clonedSpec.toString()); + + assertThat( clonedSpec.getId() ).isNotEqualTo( responsesSpec3.getId() ); + assertThat( clonedSpec.getUuid() ).isNotNull(); + assertThat( clonedSpec.getUuid() ).isNotEqualTo( responsesSpec3.getUuid() ); + assertThat( clonedSpec.getName() ).isEqualTo( "Copy of " + responsesSpec3.getName() ); + assertThat( clonedSpec.findSpecCharacteristicByName("Coverage") ).isNotNull(); + assertThat( clonedSpec.findSpecCharacteristicByName("Coverage").getUuid() ).isNotNull(); + assertThat( clonedSpec.findSpecCharacteristicByName("Coverage").getUuid() ).isNotEqualTo( responsesSpec3.findSpecCharacteristicByName("Coverage").getUuid() ); + + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 4 ); + + + String responseSpecClonedGST = mvc.perform(MockMvcRequestBuilders.get("/serviceCatalogManagement/v4/serviceSpecification/cloneGST?serviceName=aGST Service") + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( "" ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + clonedSpec = JsonUtils.toJsonObj( responseSpecClonedGST, ServiceSpecification.class); + assertThat( clonedSpec.getName() ).isEqualTo( "aGST Service" ); + + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 5 ); + + String responseSpecClonedVINNI = mvc.perform(MockMvcRequestBuilders.get("/serviceCatalogManagement/v4/serviceSpecification/cloneVINNI?serviceName=aVINNIService") + .contentType(MediaType.APPLICATION_JSON) + .param("addServiceTopology", "true") + .param("addServiceRequirements", "true") + .param("addServiceExposureLevel1", "true") + .param("addServiceExposureLevel2", "true") + .param("addServiceExposureLevel3", "true") + .param("addServiceExposureLevel4", "true") + .param("addServiceMonitoring", "true") + .param("addServiceTesting", "true") + .param("addServiceVNF", "true") + .param("addServiceNSD", "true") + .content( JsonUtils.toJson( "" ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + clonedSpec = JsonUtils.toJsonObj( responseSpecClonedVINNI, ServiceSpecification.class); + assertThat( clonedSpec.getName() ).isEqualTo( "aVINNIService" ); + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 16 ); + + + /** + * the bundle service characteristics must be same with the total of characteristics of each service in the bundle + * + */ + + assertThat( clonedSpec.getServiceSpecCharacteristic().size() ).isEqualTo( 70 ); + + + String responseSpecClonedVINNI2 = mvc.perform(MockMvcRequestBuilders.get("/serviceCatalogManagement/v4/serviceSpecification/cloneVINNI?serviceName=aVINNIService") + .contentType(MediaType.APPLICATION_JSON) + .param("addServiceTopology", "true") + .param("addServiceRequirements", "true") + .param("addServiceExposureLevel1", "true") + .param("addServiceExposureLevel2", "false") + .param("addServiceExposureLevel3", "false") + .param("addServiceExposureLevel4", "false") + .param("addServiceMonitoring", "false") + .param("addServiceTesting", "false") + .param("addServiceVNF", "false") + .param("addServiceNSD", "false") + .content( JsonUtils.toJson( "" ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + clonedSpec = JsonUtils.toJsonObj( responseSpecClonedVINNI2, ServiceSpecification.class); + assertThat( clonedSpec.getName() ).isEqualTo( "aVINNIService" ); + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 20 ); + } + + + + @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) + @Test + public void testSpecAttachment() throws Exception { + File sspec = new File( "src/test/resources/testServiceSpec.json" ); + InputStream in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + + + ServiceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj( sspectext, ServiceSpecificationCreate.class); + sspeccr1.setName("Spec1"); + ServiceSpecification responsesSpec1 = createServiceSpec(sspectext, sspeccr1); + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 1 ); + + Attachment att = new Attachment(); + att.setDescription("a test atts"); + att.setSize( new Quantity() ); + + File gz = new File( "src/test/resources/cirros_vnf.tar.gz" ); + InputStream ing = new FileInputStream( gz ); + MockMultipartFile prodFile = new MockMultipartFile("afile", "cirros_vnf.tar.gz", "application/x-gzip", IOUtils.toByteArray(ing)); + + + + String responsePatch1 = mvc.perform(MockMvcRequestBuilders + .multipart("/serviceCatalogManagement/v4/serviceSpecification/" + responsesSpec1.getId() + "/attachment" ) + .file(prodFile) + .param("attachment", JsonUtils.toJsonString(att)) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + ) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("cirros_vnf.tar.gz"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + Attachment responseSpecPost1 = JsonUtils.toJsonObj( responsePatch1, Attachment.class); + + //logger.info("Test: testSpecAttachment responseSpecPost1= " + responseSpecPost1); + + assertThat( responseSpecPost1.getName() ).isEqualTo( "cirros_vnf.tar.gz" ); + } + + + @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) + @Test + public void testGST() throws Exception { + logger.info("Test: testGST " ); + + /** + * first add + */ + + File sspec = new File( "src/main/resources/gst.json" ); + InputStream in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + + ServiceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj( sspectext, ServiceSpecificationCreate.class); + sspeccr1.setName( sspeccr1.getName()+"_acopy_" ); + String responseSpec1 = mvc.perform(MockMvcRequestBuilders.post("/serviceCatalogManagement/v4/serviceSpecification") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( sspeccr1 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + ServiceSpecification responsesSpec1 = JsonUtils.toJsonObj(responseSpec1, ServiceSpecification.class); + + logger.info("Test: testBundledSpec responseSpec1 = " + responseSpec1); + + assertThat( responsesSpec1.getVersion() ).isEqualTo("5.0.0"); + assertThat( responsesSpec1.getServiceSpecCharacteristic().size() ).isEqualTo(80); + assertThat( responsesSpec1.getServiceSpecRelationship().size() ).isEqualTo(0); + boolean userPartyRoleOwnerexists = false; + for (RelatedParty r : responsesSpec1.getRelatedParty()) { + if ( r.getName().equals( "osadmin" ) && r.getRole().equals( UserPartRoleType.OWNER.toString() )) { + userPartyRoleOwnerexists = true; + } + } + + assertThat(userPartyRoleOwnerexists ).isTrue() ; + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS +1 ); + assertThat( specRepoService.findAll( null, new HashMap<>()).size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); //this is somehow wrong in Testing ONLY + + + /** + * + */ + + String responseSpecs = mvc.perform(MockMvcRequestBuilders.get("/serviceCatalogManagement/v4/serviceSpecification?fields=serviceCandidateObjId") + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( sspeccr1 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + List specs = JsonUtils.toJsonObj( responseSpecs, ArrayList.class ); + + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS +1 ); + assertThat( specRepoService.findAll(null , new HashMap<>()).size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); //this is somehow wrong it should be 2..anyway to investigate in future + assertThat(specs.size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ) ; + + + + /** + * + */ + + String responseSpecsFilter = mvc.perform(MockMvcRequestBuilders.get("/serviceCatalogManagement/v4/serviceSpecification?fields=serviceCandidateObjId&name=A%20GST(NEST)%20Service%20Example") + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( sspeccr1 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + List specsFilter = JsonUtils.toJsonObj( responseSpecsFilter, ArrayList.class ); + + + assertThat(specsFilter.size() ).isEqualTo(1) ; + } + + @WithMockUser(username="osadmin", roles = {"USER"}) + @Test + public void testGSTUpdate() throws Exception { + logger.info("Test: testGSTUpdate " ); + + ServiceCategory categ = categRepoService.findByName( "Generic Services" ); + ServiceCategory categ2 = categRepoService.findByIdEager( categ.getId() ); + assertThat( categ2.getServiceCandidateRefs().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); + + ServiceSpecification spec = this.specRepoService.findByNameAndVersion("A GST(NEST) Service Example", "5.0.0" ); + assertThat( spec ).isNotNull(); + + spec.setVersion("0.x.0"); + this.specRepoService.updateServiceSpecification( spec); + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); + + this.bootstrapRepository.initRepo(); + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS +1 ); + + + } + + + @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) + @Test + public void testVINNISBT() throws Exception { + logger.info("Test: testVINNISBT " ); + + /** + * first add + */ + + File sspec = new File( "src/main/resources/vinnisb/vinnisb.json" ); + InputStream in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + + ServiceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj( sspectext, ServiceSpecificationCreate.class); + sspeccr1.setName( sspeccr1.getName()+"_acopy_" ); + String responseSpec1 = mvc.perform(MockMvcRequestBuilders.post("/serviceCatalogManagement/v4/serviceSpecification") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( sspeccr1 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + ServiceSpecification responsesSpec1 = JsonUtils.toJsonObj(responseSpec1, ServiceSpecification.class); + + logger.info("Test: testBundledSpec responseSpec1 = " + responseSpec1); + + assertThat( responsesSpec1.getVersion() ).isEqualTo("0.1.0"); + assertThat( responsesSpec1.getServiceSpecCharacteristic().size() ).isEqualTo(2); + assertThat( responsesSpec1.getServiceSpecRelationship().size() ).isEqualTo(0); + boolean userPartyRoleOwnerexists = false; + for (RelatedParty r : responsesSpec1.getRelatedParty()) { + if ( r.getName().equals( "osadmin" ) && r.getRole().equals( UserPartRoleType.OWNER.toString() )) { + userPartyRoleOwnerexists = true; + } + } + + assertThat(userPartyRoleOwnerexists ).isTrue() ; + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS +1 ); + assertThat( specRepoService.findAll( null, new HashMap<>()).size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); //this is somehow wrong in Testing ONLY it should be 2..anyway to investigate in future..something is happening with Session factory + + + /** + * + */ + + String responseSpecs = mvc.perform(MockMvcRequestBuilders.get("/serviceCatalogManagement/v4/serviceSpecification?fields=serviceCandidateObjId") + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( sspeccr1 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + List specs = JsonUtils.toJsonObj( responseSpecs, ArrayList.class ); + + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS +1 ); + assertThat( specRepoService.findAll( null, new HashMap<>()).size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); //this is somehow wrong it should be 2..anyway to investigate in future + assertThat(specs.size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ) ; + + + + /** + * + */ + + String responseSpecsFilter = mvc.perform(MockMvcRequestBuilders.get("/serviceCatalogManagement/v4/serviceSpecification?fields=serviceCandidateObjId&name=A%20VINNI%20Service%20Example") + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( sspeccr1 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + List specsFilter = JsonUtils.toJsonObj( responseSpecsFilter, ArrayList.class ); + + + assertThat(specsFilter.size() ).isEqualTo(0) ; + } + + @WithMockUser(username="osadmin", roles = {"USER"}) + @Test + public void testVINNISBTUpdate() throws Exception { +// logger.info("Test: testVINNISBTUpdate " ); +// +// ServiceCategory categ = categRepoService.findByName( "Generic Services" ); +// ServiceCategory categ2 = categRepoService.findByIdEager( categ.getId() ); +// assertThat( categ2.getServiceCandidateRefs().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); +// +// ServiceSpecification spec = this.specRepoService.findByNameAndVersion("A VINNI Service Example", "0.1.0" ); +// assertThat( spec ).isNotNull(); +// +// spec.setVersion("0.x.0"); +// this.specRepoService.updateServiceSpecification( spec); +// +// assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); +// +// this.bootstrapRepository.initRepo(); +// +// assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 11 ); +// assertThat( candidateRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 11 ); + + + + } + + + @WithMockUser(username="osadmin", roles = {"ADMIN", "USER"}) + @Test + public void testSpecDelete() throws Exception { + + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); + + /** + * first add 1 specs + */ + + File sspec = new File( "src/test/resources/testServiceSpec.json" ); + InputStream in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + + + ServiceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj( sspectext, ServiceSpecificationCreate.class); + sspeccr1.setName("Spec1"); + ServiceSpecification responsesSpec1 = createServiceSpec(sspectext, sspeccr1); + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 1 ); + + + this.specRepoService.deleteByUuid( responsesSpec1.getId() ); + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); + + } + + + @WithMockUser(username="osadmin", roles = {"ADMIN", "USER"}) + @Test + public void testExternhalSpecUpdate() throws Exception { + + /** + * first add 1 specs + */ + + File sspec = new File( "src/test/resources/testServiceSpec.json" ); + InputStream in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + + + ServiceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj( sspectext, ServiceSpecificationCreate.class); + sspeccr1.setName("Spec1"); + ServiceSpecification responsesSpec1 = createServiceSpec(sspectext, sspeccr1); + + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 1 ); + assertThat( responsesSpec1.getServiceSpecCharacteristic()).hasSize(2) ; + + /** + * we use responsesSpec1 as base to add another ServiceSpecification example from an external partner + */ + String externaluuid = UUID.randomUUID().toString(); + responsesSpec1.setUuid( externaluuid ); //change this as external + responsesSpec1.getRelatedParty().clear();//clear all related parties if any + + /** + * add to the spec, an organization as related party + */ + + + @Valid + OrganizationCreate organizationCreate = new OrganizationCreate(); + organizationCreate.setName("ANORGZ"); + Organization o = organizationRepoService.addOrganization(organizationCreate); + + ServiceSpecification specupd = specRepoService.updateExternalServiceSpec(externaluuid, o.getId(), responsesSpec1); + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 2 ); + assertThat( specupd.getRelatedParty()).hasSize(1); + assertThat( specupd.getServiceSpecCharacteristic()).hasSize(2) ; + + responsesSpec1.setName( responsesSpec1.getName() + "_NEWNAME"); + + ServiceSpecCharacteristic serviceSpecCharacteristicItem = new ServiceSpecCharacteristic(); + serviceSpecCharacteristicItem.setName("A Second Attribute"); + responsesSpec1.addServiceSpecCharacteristicItem(serviceSpecCharacteristicItem ); + specupd = specRepoService.updateExternalServiceSpec(externaluuid, o.getId(), responsesSpec1); + assertThat( specRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 2 ); + assertThat( specupd.getRelatedParty()).hasSize(1); + assertThat( specupd.getServiceSpecCharacteristic()).hasSize( 3 ) ; + assertThat( specupd.getName() ).isEqualTo( responsesSpec1.getName() ) ; + + + } + + private LogicalResourceSpecification createLogicalResourceSpec() throws Exception{ + File sspec = new File( "src/test/resources/testResourceSpec.json" ); + InputStream in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + ResourceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj( sspectext, ResourceSpecificationCreate.class); + + URI url = new URI("/resourceCatalogManagement/v4/logicalResourceSpec"); + + String responseSpec = mvc.perform(MockMvcRequestBuilders.post( url ) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( sspeccr1 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + LogicalResourceSpecification responsesSpec1; + + responsesSpec1 = JsonUtils.toJsonObj(responseSpec, LogicalResourceSpecification.class); + + logger.info("createResourceSpec = " + responseSpec); + return responsesSpec1; + } + + + +} diff --git a/src/test/java/org/etsi/osl/services/api/ServiceInventoryIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/ServiceInventoryIntegrationTest.java new file mode 100644 index 0000000..c8e7164 --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/ServiceInventoryIntegrationTest.java @@ -0,0 +1,376 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.services.api; + + + +import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.net.URI; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.OpenAPISpringBoot; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.UserPartRoleType; +import org.etsi.osl.tmf.common.model.service.Characteristic; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.etsi.osl.tmf.common.model.service.ServiceStateType; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.rcm634.model.LogicalResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.etsi.osl.tmf.scm633.model.ServiceSpecification; +import org.etsi.osl.tmf.scm633.model.ServiceSpecificationCreate; +import org.etsi.osl.tmf.scm633.reposervices.CatalogRepoService; +import org.etsi.osl.tmf.scm633.reposervices.CategoryRepoService; +import org.etsi.osl.tmf.scm633.reposervices.ServiceSpecificationRepoService; +import org.etsi.osl.tmf.sim638.model.Service; +import org.etsi.osl.tmf.sim638.model.ServiceActionQueueAction; +import org.etsi.osl.tmf.sim638.model.ServiceCreate; +import org.etsi.osl.tmf.sim638.model.ServiceUpdate; +import org.etsi.osl.tmf.sim638.service.ServiceRepoService; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.WebApplicationContext; + + +@RunWith(SpringRunner.class) +@Transactional +@SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) +//@AutoConfigureTestDatabase //this automatically uses h2 +@AutoConfigureMockMvc +@ActiveProfiles("testing") +//@TestPropertySource( +// locations = "classpath:application-testing.yml") +public class ServiceInventoryIntegrationTest { + + + private static final transient Log logger = LogFactory.getLog( ServiceInventoryIntegrationTest.class.getName()); + + @Autowired + private MockMvc mvc; + + @Autowired + CatalogRepoService catalogRepoService; + + + @Autowired + CategoryRepoService categRepoService; + + @Autowired + ServiceSpecificationRepoService specRepoService; + + + @Autowired + ServiceRepoService serviceRepoService; + + @Autowired + private WebApplicationContext context; + + @Before + public void setup() { + mvc = MockMvcBuilders + .webAppContextSetup(context) + .apply(springSecurity()) + .build(); + } + + @Test + public void _countDefaultProperties() { + + assertThat( serviceRepoService.findAll().size() ).isEqualTo( 0 ); + + } + + @WithMockUser(username="osadmin", roles = {"USER","ADMIN"}) + @Test + public void testServiceCreateAndUpdate() throws UnsupportedEncodingException, IOException, Exception { + + /** + * first add 2 specs + */ + + File sspec = new File( "src/test/resources/testServiceSpec.json" ); + InputStream in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + + + ServiceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj( sspectext, ServiceSpecificationCreate.class); + sspeccr1.setName("Spec1"); + ServiceSpecification responsesSpec1 = createServiceSpec(sspectext, sspeccr1); + + //service 2 is an RFS + ServiceSpecificationCreate sspeccr2 = JsonUtils.toJsonObj( sspectext, ServiceSpecificationCreate.class); + sspeccr2.setName("Spec2"); + ResourceSpecificationRef resourceSpecificationItem = new ResourceSpecificationRef(); + resourceSpecificationItem.setId("resourceid"); + resourceSpecificationItem.setName("resourceName"); + sspeccr2.addResourceSpecificationItem(resourceSpecificationItem); + ServiceSpecification responsesSpec2 = createServiceSpec(sspectext, sspeccr2); + /** + * add them as bundle + */ + + ServiceSpecificationCreate sspeccr3 = JsonUtils.toJsonObj( sspectext, ServiceSpecificationCreate.class); + sspeccr3.setName("BundleExampleSpec"); + sspeccr3.isBundle(true); + sspeccr3.addServiceSpecRelationshipWith( responsesSpec1 ); + sspeccr3.addServiceSpecRelationshipWith( responsesSpec2 ); + ServiceSpecification responsesSpec3 = createServiceSpec(sspectext, sspeccr3); + + ServiceCreate aService = new ServiceCreate(); + aService.setName("aNew Service"); + aService.setCategory("Experimentation"); + aService.setDescription("Experimentation Descr"); + aService.setStartDate( OffsetDateTime.now(ZoneOffset.UTC ).toString() ); + aService.setEndDate( OffsetDateTime.now(ZoneOffset.UTC ).toString() ); + + Note noteItem = new Note(); + noteItem.text("test note"); + aService.addNoteItem(noteItem); + + Characteristic serviceCharacteristicItem = new Characteristic(); + + serviceCharacteristicItem.setName( "ConfigStatus" ); + serviceCharacteristicItem.setValue( new Any("NONE")); + aService.addServiceCharacteristicItem(serviceCharacteristicItem); + + serviceCharacteristicItem = new Characteristic(); + serviceCharacteristicItem.setName( "NSLCM" ); + serviceCharacteristicItem.setValue( new Any("nslcm_test")); + aService.addServiceCharacteristicItem(serviceCharacteristicItem); + + + serviceCharacteristicItem = new Characteristic(); + serviceCharacteristicItem.setName( "NSR" ); + serviceCharacteristicItem.setValue( new Any("nsr_test")); + aService.addServiceCharacteristicItem(serviceCharacteristicItem); + + ServiceSpecificationRef aServiceSpecificationRef = new ServiceSpecificationRef(); + aServiceSpecificationRef.setId(responsesSpec3.getId() ); + aServiceSpecificationRef.setName(responsesSpec3.getName()); + + aService.setServiceSpecificationRef(aServiceSpecificationRef ); + + logger.info("aService JSON = " + JsonUtils.toJsonString( aService )); + + String responseService = mvc.perform(MockMvcRequestBuilders.post("/serviceInventory/v4/service") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( aService ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + logger.info("testServiceOrderCreate = " + responseService); + Service responseSrvc = JsonUtils.toJsonObj( responseService, Service.class); + + + logger.info("testService = " + JsonUtils.toJsonString( responseSrvc )); + + + assertThat( responseSrvc.getCategory() ).isEqualTo( "Experimentation" ); + assertThat( responseSrvc.getDescription() ).isEqualTo( "Experimentation Descr" ); + assertThat( responseSrvc.getStartDate() ).isNotNull(); + assertThat( responseSrvc.getEndDate() ).isNotNull(); + assertThat( responseSrvc.getServiceCharacteristic().size() ).isEqualTo( 3 ); + assertThat( responseSrvc.getServiceCharacteristicByName( "ConfigStatus" ).getValue().getValue() ).isEqualTo( "NONE" ) ; + + + assertThat( responseSrvc.getNote().size() ).isEqualTo( 2 ); + + boolean userPartyRoleexists = false; + for (RelatedParty r : responseSrvc.getRelatedParty()) { + if ( r.getName().equals( "osadmin" ) && r.getRole().equals( UserPartRoleType.REQUESTER.toString() )) { + userPartyRoleexists = true; + } + } + + assertThat(userPartyRoleexists ).isTrue() ; + + assertThat( serviceRepoService.findAll().size() ).isEqualTo( 1 ); + + + ServiceUpdate servUpd = new ServiceUpdate(); + servUpd.setEndDate( OffsetDateTime.now(ZoneOffset.UTC ).toString() ); + responseSrvc.getNote().stream().forEach(n -> servUpd.addNoteItem(n)); + Note en = new Note(); + en.text("test note2"); + en.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() ); + servUpd.addNoteItem(en); + + for (Characteristic c : responseSrvc.getServiceCharacteristic()) { + if (c.getName().equals( "ConfigStatus" )) { + c.setValue( new Any("RUNNING")); + } + servUpd.addServiceCharacteristicItem(c); + } + servUpd.setState( ServiceStateType.ACTIVE ); + serviceCharacteristicItem = new Characteristic(); + serviceCharacteristicItem.setName( "DeploymentRequestID" ); + serviceCharacteristicItem.setValue( new Any("1007")); + servUpd.addServiceCharacteristicItem(serviceCharacteristicItem); + + + + String responseSorderUpd = mvc.perform(MockMvcRequestBuilders.patch("/serviceInventory/v4/service/" + responseSrvc.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( servUpd ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + logger.info("testServiceOrderUpdate = " + responseSorderUpd); + Service responseSOUpd = JsonUtils.toJsonObj(responseSorderUpd, Service.class); + + + assertThat( serviceRepoService.findAll().size() ).isEqualTo( 1 ); + + assertThat( responseSOUpd.getEndDate() ).isNotNull(); + assertThat( responseSOUpd.getNote().size() ).isEqualTo( 5 ); + assertThat( responseSOUpd.getServiceCharacteristic().size() ).isEqualTo( 4 ); + assertThat( responseSOUpd.getServiceCharacteristicByName( "ConfigStatus" ).getValue().getValue() ).isEqualTo( "RUNNING" ) ; + assertThat( responseSOUpd.getServiceCharacteristicByName( "DeploymentRequestID" ).getValue().getValue() ).isEqualTo( "1007" ) ; + + + + +// responseSorderUpd = mvc.perform(MockMvcRequestBuilders.get("/serviceInventory/v4/service/updateServiceDeploymentDescriptor/1007" ) +// .with( SecurityMockMvcRequestPostProcessors.csrf()) +// .contentType(MediaType.APPLICATION_JSON) +// .content( JsonUtils.toJson( servUpd ) )) +// .andExpect(status().isOk()) +// .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) +// .andExpect(status().isOk()) +// .andReturn().getResponse().getContentAsString(); +// logger.info("testServiceOrderUpdate = " + responseSorderUpd); +// responseSOUpd = JsonUtils.toJsonObj(responseSorderUpd, Service.class); +// assertThat( responseSOUpd.getServiceCharacteristic().size() ).isEqualTo( 4 ); +// assertThat( responseSOUpd.getNote().size() ).isEqualTo( 5 ); + + + + servUpd.setState( ServiceStateType.INACTIVE ); + serviceCharacteristicItem = new Characteristic(); + serviceCharacteristicItem.setName( "DeploymentRequestID" ); + serviceCharacteristicItem.setValue( new Any("1007")); + servUpd.addServiceCharacteristicItem(serviceCharacteristicItem); + + + + responseSorderUpd = mvc.perform(MockMvcRequestBuilders.patch("/serviceInventory/v4/service/" + responseSrvc.getId() ) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( servUpd ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + logger.info("testServiceOrderUpdate = " + responseSorderUpd); + responseSOUpd = JsonUtils.toJsonObj(responseSorderUpd, Service.class); + + + assertThat( serviceRepoService.findAll().size() ).isEqualTo( 1 ); + + assertThat( responseSOUpd.getEndDate() ).isNotNull(); + assertThat( responseSOUpd.getNote().size() ).isEqualTo( 7 ); + assertThat( responseSOUpd.getServiceCharacteristic().size() ).isEqualTo( 4 ); + assertThat( responseSOUpd.getServiceCharacteristicByName( "ConfigStatus" ).getValue().getValue() ).isEqualTo( "RUNNING" ) ; + assertThat( responseSOUpd.getServiceCharacteristicByName( "DeploymentRequestID" ).getValue().getValue() ).isEqualTo( "1007" ) ; + + + assertThat( serviceRepoService.findAllServiceActionQueueItems().size() ).isEqualTo( 3 ); + assertThat( serviceRepoService.findAllServiceActionQueueItems().get(0).getAction() ).isEqualTo(ServiceActionQueueAction.EVALUATE_STATE_CHANGE_TOACTIVE ); + + } + + + private ServiceSpecification createServiceSpec(String sspectext, ServiceSpecificationCreate sspeccr1) throws Exception{ + + String responseSpec = mvc.perform(MockMvcRequestBuilders.post("/serviceCatalogManagement/v4/serviceSpecification") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( sspeccr1 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + ServiceSpecification responsesSpec1 = JsonUtils.toJsonObj(responseSpec, ServiceSpecification.class); + logger.info("createServiceSpec = " + responseSpec); + return responsesSpec1; + } + + + + + private LogicalResourceSpecification createLogicalResourceSpec() throws Exception{ + File sspec = new File( "src/test/resources/testResourceSpec.json" ); + InputStream in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + ResourceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj( sspectext, ResourceSpecificationCreate.class); + + URI url = new URI("/resourceCatalogManagement/v4/logicalResourceSpec"); + + String responseSpec = mvc.perform(MockMvcRequestBuilders.post( url ) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( sspeccr1 ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + LogicalResourceSpecification responsesSpec1; + + responsesSpec1 = JsonUtils.toJsonObj(responseSpec, LogicalResourceSpecification.class); + + logger.info("createResourceSpec = " + responseSpec); + return responsesSpec1; + } + + + +} diff --git a/src/test/java/org/etsi/osl/services/api/ServiceOrderIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/ServiceOrderIntegrationTest.java new file mode 100644 index 0000000..f0ae5a5 --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/ServiceOrderIntegrationTest.java @@ -0,0 +1,424 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.services.api; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.net.URI; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.ArrayList; + +import org.apache.camel.CamelContext; +import org.apache.camel.RoutesBuilder; +import org.apache.camel.builder.RouteBuilder; +import org.apache.commons.io.IOUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.OpenAPISpringBoot; +import org.etsi.osl.tmf.common.model.Any; +import org.etsi.osl.tmf.common.model.UserPartRoleType; +import org.etsi.osl.tmf.common.model.service.Characteristic; +import org.etsi.osl.tmf.common.model.service.Note; +import org.etsi.osl.tmf.common.model.service.ServiceRef; +import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; +import org.etsi.osl.tmf.prm669.model.RelatedParty; +import org.etsi.osl.tmf.rcm634.model.LogicalResourceSpecification; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate; +import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationRef; +import org.etsi.osl.tmf.scm633.model.ServiceSpecification; +import org.etsi.osl.tmf.scm633.model.ServiceSpecificationCreate; +import org.etsi.osl.tmf.scm633.reposervices.CatalogRepoService; +import org.etsi.osl.tmf.scm633.reposervices.CategoryRepoService; +import org.etsi.osl.tmf.scm633.reposervices.ServiceSpecificationRepoService; +import org.etsi.osl.tmf.sim638.model.Service; +import org.etsi.osl.tmf.sim638.model.ServiceCreate; +import org.etsi.osl.tmf.sim638.model.ServiceOrderRef; +import org.etsi.osl.tmf.sim638.service.ServiceRepoService; +import org.etsi.osl.tmf.so641.model.ServiceOrder; +import org.etsi.osl.tmf.so641.model.ServiceOrderCreate; +import org.etsi.osl.tmf.so641.model.ServiceOrderItem; +import org.etsi.osl.tmf.so641.model.ServiceOrderStateType; +import org.etsi.osl.tmf.so641.model.ServiceOrderUpdate; +import org.etsi.osl.tmf.so641.model.ServiceRestriction; +import org.etsi.osl.tmf.so641.reposervices.ServiceOrderRepoService; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors; +import org.springframework.security.web.FilterChainProxy; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.WebApplicationContext; + +@RunWith(SpringRunner.class) +@Transactional +@SpringBootTest( + webEnvironment = SpringBootTest.WebEnvironment.MOCK, + classes = OpenAPISpringBoot.class + ) +//@AutoConfigureTestDatabase //this automatically uses h2 +@AutoConfigureMockMvc +@ActiveProfiles("testing") +//@TestPropertySource( +// locations = "classpath:application-testing.yml") +public class ServiceOrderIntegrationTest { + + private static final transient Log logger = LogFactory.getLog(ServiceOrderIntegrationTest.class.getName()); + + @Autowired + private MockMvc mvc; + + @Autowired + CatalogRepoService catalogRepoService; + + @Autowired + CategoryRepoService categRepoService; + + @Autowired + ServiceSpecificationRepoService specRepoService; + + @Autowired + ServiceOrderRepoService serviceOrderRepoService; + + @Autowired + ServiceRepoService serviceRepoService; + + @Autowired + private WebApplicationContext context; + + + @Autowired + private FilterChainProxy springSecurityFilterChain; + + private class UserMocked { + public String getUserByUsername( String username) { + + return "{\"id\":\"001\"}"; + } + } + + UserMocked userMocked = new UserMocked(); + + @Autowired + private CamelContext camelContext; + + @Before + public void setup() throws Exception { + mvc = MockMvcBuilders.webAppContextSetup(context). + apply(springSecurity(springSecurityFilterChain)).build(); + + } + + @Test + public void _countDefaultProperties() { + + assertThat(serviceOrderRepoService.findAll().size()).isEqualTo(0); + + } + + @WithMockUser(username="osadmin", roles = {"USER","ADMIN"}) + @Test + public void testServiceOrderCreateAndUpdate() throws UnsupportedEncodingException, IOException, Exception { + + RoutesBuilder builder = new RouteBuilder() { + @Override + public void configure() { + from("direct:get_user_byusername").bean( userMocked, "getUserByUsername"); + + }; + }; + + camelContext.addRoutes(builder); + /** + * first add 2 specs + */ + + File sspec = new File("src/test/resources/testServiceSpec.json"); + InputStream in = new FileInputStream(sspec); + String sspectext = IOUtils.toString(in, "UTF-8"); + + ServiceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj(sspectext, ServiceSpecificationCreate.class); + sspeccr1.setName("Spec1"); + ServiceSpecification responsesSpec1 = createServiceSpec( sspeccr1); + + sspec = new File("src/test/resources/testServiceSpec2.json"); + in = new FileInputStream(sspec); + sspectext = IOUtils.toString(in, "UTF-8"); + // service 2 is an RFS + ServiceSpecificationCreate sspeccr2 = JsonUtils.toJsonObj(sspectext, ServiceSpecificationCreate.class); + sspeccr2.setName("Spec2"); + ResourceSpecificationRef resourceSpecificationItem = new ResourceSpecificationRef(); + resourceSpecificationItem.setId("resourceid"); + resourceSpecificationItem.setName("resourceName"); + sspeccr2.addResourceSpecificationItem(resourceSpecificationItem); + ServiceSpecification responsesSpec2 = createServiceSpec( sspeccr2); + /** + * add them as bundle + */ + + ServiceSpecificationCreate sspeccr3 = JsonUtils.toJsonObj(sspectext, ServiceSpecificationCreate.class); + sspeccr3.setName("BundleExampleSpec"); + sspeccr3.isBundle(true); + sspeccr3.addServiceSpecRelationshipWith(responsesSpec1); + sspeccr3.addServiceSpecRelationshipWith(responsesSpec2); + ServiceSpecification responsesSpec3 = createServiceSpec( sspeccr3); + + + /** + * the bundle service characteristics must be same with the total of characteristics of each service in the bundle + * here 1+2 + the 2 characteristics of the service itself total 5 + */ + + assertThat( responsesSpec3.getServiceSpecCharacteristic().size() ).isEqualTo( 8 ); + + ServiceOrderCreate servOrder = new ServiceOrderCreate(); + servOrder.setCategory("Experimentation"); + servOrder.setDescription("Experimentation Descr"); + servOrder.setRequestedStartDate(OffsetDateTime.now(ZoneOffset.UTC).toString()); + servOrder.setRequestedCompletionDate(OffsetDateTime.now(ZoneOffset.UTC).toString()); + + Note noteItem = new Note(); + noteItem.text("test note"); + servOrder.addNoteItem(noteItem); + + ServiceOrderItem soi = new ServiceOrderItem(); + servOrder.getOrderItem().add(soi); + soi.setState(ServiceOrderStateType.ACKNOWLEDGED); + + ServiceRestriction serviceRestriction = new ServiceRestriction(); + ServiceSpecificationRef aServiceSpecificationRef = new ServiceSpecificationRef(); + aServiceSpecificationRef.setId(responsesSpec3.getId()); + aServiceSpecificationRef.setName(responsesSpec3.getName()); + + serviceRestriction.setServiceSpecification(aServiceSpecificationRef); + serviceRestriction.setName("aserviceRestriction"); + soi.setService(serviceRestriction); + + Characteristic charitem = new Characteristic(); + charitem.setName("Spec2Attribute1"); + charitem.setValue( new Any("3", "Indoor")); + serviceRestriction.addServiceCharacteristicItem(charitem ); + + String responseSorder = mvc + .perform(MockMvcRequestBuilders.post("/serviceOrdering/v4/serviceOrder") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON).content(JsonUtils.toJson(servOrder))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); + logger.info("testServiceOrderCreate = " + responseSorder); + ServiceOrder responseSO = JsonUtils.toJsonObj(responseSorder, ServiceOrder.class); + + logger.info("BundleExampleSpec = " + JsonUtils.toJsonString(responsesSpec3)); + logger.info("responsesSpec1 = " + JsonUtils.toJsonString(responsesSpec1)); + logger.info("responsesSpec2 = " + JsonUtils.toJsonString(responsesSpec2)); + logger.info("testServiceOrderCreate = " + JsonUtils.toJsonString(responseSO)); + + assertThat(responseSO.getCategory()).isEqualTo("Experimentation"); + assertThat(responseSO.getDescription()).isEqualTo("Experimentation Descr"); + assertThat(responseSO.getRequestedStartDate()).isNotNull(); + assertThat(responseSO.getRequestedCompletionDate()).isNotNull(); + + assertThat(responseSO.getOrderItem().size()).isEqualTo(1); + + + assertThat( responsesSpec1.getServiceSpecCharacteristic().size() ).isEqualTo( 2 ); + assertThat( responsesSpec2.getServiceSpecCharacteristic().size() ).isEqualTo( 3 ); + assertThat( responsesSpec3.getServiceSpecCharacteristic().size() ).isEqualTo( 8 ); + + + responseSO.getOrderItem().stream().forEach(soiElement -> { + assertThat(soiElement.getState()).isEqualTo(ServiceOrderStateType.ACKNOWLEDGED); + assertThat(soiElement.getService().getServiceSpecification()).isNotNull(); + assertThat(soiElement.getService().getServiceSpecification().getName()).isEqualTo( "BundleExampleSpec" ); + + /** + * the ordered service characteristics must be same with the total of characteristics of service + * with ONLY user configurable values (This changed on 20/8/2021 with the implementation of rules) + * (and NO with default values from non configurable attributes) + * Therefore the service should have only 1 characteristic (the Spec2Attribute1 name) + */ + assertThat( soiElement.getService().getServiceCharacteristic().size() ).isEqualTo( 1 ); + assertThat( soiElement.getService().getServiceCharacteristic().stream().findFirst().get().getName() ).isEqualTo( "Spec2Attribute1" ); + + + }); + assertThat(responseSO.getNote().size()).isEqualTo(3); + + boolean userPartyRoleexists = false; + for (RelatedParty r : responseSO.getRelatedParty()) { + if (r.getName().equals("osadmin") && r.getRole().equals(UserPartRoleType.REQUESTER.toString())) { + userPartyRoleexists = true; + } + } + + assertThat(userPartyRoleexists).isTrue(); + + assertThat(serviceOrderRepoService.findAll().size()).isEqualTo(1); + + ServiceCreate s = new ServiceCreate(); + s.setDescription("A Service for "); + s.setServiceDate(OffsetDateTime.now(ZoneOffset.UTC).toString()); + s.hasStarted(false); + s.setIsServiceEnabled(false); + s.setName("Servicename"); + s.setStartMode("0"); + + Note anoteItem = new Note(); + anoteItem.setText("Service Created by OSOM:AutomationCheck"); + s.addNoteItem(anoteItem); + + ServiceOrderRef serviceOrderref = new ServiceOrderRef(); + serviceOrderref.setId(responseSO.getId()); + serviceOrderref.setServiceOrderItemId((new ArrayList<>(responseSO.getOrderItem())).get(0).getId()); + s.addServiceOrderItem(serviceOrderref); + + Service createdServ = serviceRepoService.addService(s); + + ServiceOrderUpdate servOrderUpd = new ServiceOrderUpdate(); + servOrderUpd.setExpectedCompletionDate(OffsetDateTime.now(ZoneOffset.UTC).toString()); + responseSO.getNote().stream().forEach(n -> servOrderUpd.addNoteItem(n)); + Note en = new Note(); + en.text("test note2"); + servOrderUpd.addNoteItem(en); + servOrderUpd.addOrderItemItem((new ArrayList<>(responseSO.getOrderItem())).get(0)); + servOrderUpd.getOrderItem().get(0).setState(ServiceOrderStateType.INPROGRESS); + ServiceRef supportingServiceItem = new ServiceRef(); + supportingServiceItem.setId(createdServ.getId()); + supportingServiceItem.setReferredType(createdServ.getName()); + supportingServiceItem.setName(createdServ.getName()); + servOrderUpd.getOrderItem().get(0).getService().addSupportingServiceItem(supportingServiceItem); + + String responseSorderUpd = mvc + .perform(MockMvcRequestBuilders.patch("/serviceOrdering/v4/serviceOrder/" + responseSO.getId()) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON).content(JsonUtils.toJson(servOrderUpd))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); + logger.info("testServiceOrderUpdate = " + responseSorderUpd); + ServiceOrder responseSOUpd = JsonUtils.toJsonObj(responseSorderUpd, ServiceOrder.class); + + assertThat(serviceOrderRepoService.findAll().size()).isEqualTo(1); + + assertThat(responseSOUpd.getOrderItem().size()).isEqualTo(1); + responseSOUpd.getOrderItem().stream().forEach(soiElement -> { + assertThat(soiElement.getState()).isEqualTo(ServiceOrderStateType.INPROGRESS); + assertThat(soiElement.getService().getServiceSpecification()).isNotNull(); + assertThat(soiElement.getService().getServiceSpecification().getName()).isEqualTo("BundleExampleSpec"); + assertThat(soiElement.getService().getSupportingService().size()).isEqualTo(1); + }); + + assertThat(responseSOUpd.getExpectedCompletionDate()).isNotNull(); + assertThat(responseSOUpd.getNote().size()).isEqualTo( 4 ); + + File sspecSO = new File("src/test/resources/TestServiceOrderDates.json"); + InputStream inSO = new FileInputStream(sspecSO); + String sspectextSO = IOUtils.toString(inSO, "UTF-8"); + + ServiceOrder sspeccr1SO = JsonUtils.toJsonObj(sspectextSO, ServiceOrder.class); + + assertThat(sspeccr1SO).isNotNull(); + + + + } + + @WithMockUser(username="osadmin", roles = {"USER"}) + @Test + public void testVINNISpecServiceOrderCreateAndUpdate() throws UnsupportedEncodingException, IOException, Exception { + String responseSpecClonedVINNI = mvc.perform(MockMvcRequestBuilders.get("/serviceCatalogManagement/v4/serviceSpecification/cloneVINNI?serviceName=aVINNIService") + .contentType(MediaType.APPLICATION_JSON) + .param("addServiceTopology", "true") + .param("addServiceRequirements", "true") + .param("addServiceExposureLevel1", "true") + .param("addServiceExposureLevel2", "true") + .param("addServiceExposureLevel3", "true") + .param("addServiceExposureLevel4", "true") + .param("addServiceMonitoring", "true") + .param("addServiceTesting", "true") + .param("addServiceVNF", "true") + .param("addServiceNSD", "true") + .content( JsonUtils.toJson( "" ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + ServiceSpecification clonedSpec = JsonUtils.toJsonObj( responseSpecClonedVINNI, ServiceSpecification.class); + assertThat( clonedSpec.getName() ).isEqualTo( "aVINNIService" ); + + } + + + private ServiceSpecification createServiceSpec( ServiceSpecificationCreate sspeccr1) + throws Exception { + + String responseSpec = mvc + .perform(MockMvcRequestBuilders.post("/serviceCatalogManagement/v4/serviceSpecification") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON).content(JsonUtils.toJson(sspeccr1))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); + ServiceSpecification responsesSpec1 = JsonUtils.toJsonObj(responseSpec, ServiceSpecification.class); + logger.info("createServiceSpec = " + responseSpec); + return responsesSpec1; + } + + private LogicalResourceSpecification createLogicalResourceSpec() throws Exception { + File sspec = new File("src/test/resources/testResourceSpec.json"); + InputStream in = new FileInputStream(sspec); + String sspectext = IOUtils.toString(in, "UTF-8"); + ResourceSpecificationCreate sspeccr1 = JsonUtils.toJsonObj(sspectext, ResourceSpecificationCreate.class); + + URI url = new URI("/resourceCatalogManagement/v4/logicalResourceSpec"); + + String responseSpec = mvc + .perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON) + .content(JsonUtils.toJson(sspeccr1))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); + + LogicalResourceSpecification responsesSpec1; + + responsesSpec1 = JsonUtils.toJsonObj(responseSpec, LogicalResourceSpecification.class); + + logger.info("createResourceSpec = " + responseSpec); + return responsesSpec1; + } + + +} diff --git a/src/test/java/org/etsi/osl/services/api/ServiceTestManagementIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/ServiceTestManagementIntegrationTest.java new file mode 100644 index 0000000..a3acefa --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/ServiceTestManagementIntegrationTest.java @@ -0,0 +1,144 @@ +/*- + * ========================LICENSE_START================================= + * org.etsi.osl.tmf.api + * %% + * Copyright (C) 2019 - 2021 openslice.io + * %% + * 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================================== + */ +package org.etsi.osl.services.api; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.hamcrest.CoreMatchers.is; +import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.etsi.osl.tmf.OpenAPISpringBoot; +import org.etsi.osl.tmf.sim638.service.ServiceRepoService; +import org.etsi.osl.tmf.stm653.model.ServiceTestCreate; +import org.etsi.osl.tmf.stm653.model.ServiceTestSpecificationCreate; +import org.etsi.osl.tmf.stm653.reposervices.ServiceTestRepoService; +import org.etsi.osl.tmf.stm653.reposervices.ServiceTestSpecificationRepoService; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.WebApplicationContext; + +@RunWith(SpringRunner.class) +@Transactional +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK, classes = OpenAPISpringBoot.class) +@AutoConfigureMockMvc +@ActiveProfiles("testing") +public class ServiceTestManagementIntegrationTest { + + private static final transient Log logger = LogFactory.getLog(ServiceTestManagementIntegrationTest.class.getName()); + + @Autowired + private MockMvc mvc; + + @Autowired + ServiceTestSpecificationRepoService aServiceTestSpecRpoService; + + @Autowired + ServiceTestRepoService aServiceTestRpoService; + + @Autowired + ServiceRepoService serviceRepoService; + + @Autowired + private WebApplicationContext context; + + @Before + public void setup() { + mvc = MockMvcBuilders.webAppContextSetup(context).apply(springSecurity()).build(); + } + + @WithMockUser(username = "osadmin", roles = { "ADMIN","USER" }) + @Test + public void testServiceTestSpecCreateAndUpdate() throws UnsupportedEncodingException, IOException, Exception { + + /** + * first add 2 specs + */ +// /testServiceTestSpec + + + + File sspec = new File( "src/test/resources/testServiceTestSpec.json" ); + InputStream in = new FileInputStream( sspec ); + String sspectext = IOUtils.toString(in, "UTF-8"); + ServiceTestSpecificationCreate spec = JsonUtils.toJsonObj( sspectext, ServiceTestSpecificationCreate.class); + + + String response = mvc.perform(MockMvcRequestBuilders.post("/serviceTestManagement/v4/serviceTestSpecification") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( spec ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("A test name"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + + assertThat( aServiceTestSpecRpoService.findAll().size() ).isEqualTo( 1 ); + + + sspec = new File( "src/test/resources/testServiceTest.json" ); + in = new FileInputStream( sspec ); + sspectext = IOUtils.toString(in, "UTF-8"); + ServiceTestCreate stest = JsonUtils.toJsonObj( sspectext, ServiceTestCreate.class); + + + response = mvc.perform(MockMvcRequestBuilders.post("/serviceTestManagement/v4/serviceTest") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( JsonUtils.toJson( stest ) )) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("name", is("A test name"))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + + assertThat( aServiceTestRpoService.findAll().size() ).isEqualTo( 1 ); + + + } + + +} diff --git a/src/test/resources/TestServiceOrderDates.json b/src/test/resources/TestServiceOrderDates.json new file mode 100644 index 0000000..8c17acc --- /dev/null +++ b/src/test/resources/TestServiceOrderDates.json @@ -0,0 +1 @@ +{"uuid":"93b9928c-de35-4495-a157-1100f6e71c92","orderDate":"2019-12-13T13:27:56Z","completionDate":null,"expectedCompletionDate":null,"requestedCompletionDate":"2039-12-13T13:27:49Z","requestedStartDate":"2039-12-13T13:27:49Z","startDate":"2039-12-13T13:27:49Z","@baseType":"BaseRootEntity","@schemaLocation":null,"@type":"ServiceOrder","href":null,"id":"93b9928c-de35-4495-a157-1100f6e71c92","category":null,"description":null,"externalId":null,"notificationContact":null,"priority":null,"note":[{"uuid":"1aa5412c-20eb-4266-91cc-95e5a9e464a7","@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"author":"admin","date":null,"system":null,"text":"Note"}],"orderItem":[{"uuid":"5b08f277-c776-43c8-9834-8791de4124e6","@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"id":"5b08f277-c776-43c8-9834-8791de4124e6","action":"add","orderItemRelationship":[],"state":"INITIAL","service":{"uuid":"cc344ee1-271b-4614-92f4-5f9d16524edc","serviceSpecification":{"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":null,"version":null,"targetServiceSchema":null,"@referredType":null,"id":"ce3afc23-1422-49e3-8475-f8965548f90b"},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":null,"id":"cc344ee1-271b-4614-92f4-5f9d16524edc","category":null,"serviceType":null,"place":[],"relatedParty":[],"serviceCharacteristic":[{"uuid":"13f444e5-72ab-41d0-a651-8c51f72319cf","@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"5G-VINNI Service Type","valueType":"SET","value":{"value":"[{\"value\":\"1\",\"alias\":\"eMBB\"},{\"value\":\"3\",\"alias\":\"mIoT\"}]","alias":null}},{"uuid":"dc42c2a9-6957-4ddf-ae5b-23beec743725","@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"Delivery Time","valueType":"TIMESTAMP","value":{"value":"2020-01-01T18:11:47Z","alias":"TimeStamp"}},{"uuid":"d59efa76-4dca-4fac-b6fc-28426b337d07","@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"Sticker Text","valueType":"TEXT","value":{"value":"lorem ipsum dolor","alias":"FreeText"}},{"uuid":"3cba2460-7584-439b-a129-70b7cf9e6606","@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"Color","valueType":"ENUM","value":{"value":"3","alias":"Black"}}],"state":"feasibilityChecked","supportingResource":[],"serviceRelationship":[],"supportingService":[]},"appointment":null}],"orderRelationship":[],"relatedParty":[{"uuid":"aa9da197-fc7d-4bd4-8eb3-a3a3297537ce","@baseType":"BaseRootEntity","@schemaLocation":null,"@type":"org.etsi.osl.tmf.prm669.model.RelatedParty","href":null,"name":"anonymousUser","role":"REQUESTER","@referredType":"SimpleUsername_Individual","id":"aa9da197-fc7d-4bd4-8eb3-a3a3297537ce"}],"state":"INPROGRESS"} \ No newline at end of file diff --git a/src/test/resources/cirros_vnf.tar.gz b/src/test/resources/cirros_vnf.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..10e4a9142416b497ecfd8a9c0862e5cea2d6ae56 GIT binary patch literal 4974 zcmV-!6Ors6iwFqjQH5Is0Ap!#a&L2Ac5Y@abYXG;?OF#|Q&$uYF>KHXQ~?2lB1?iv zNWz{XBTOT*DI^d`AYp_Mf*`Akr7~m+DgtGR6$DuhKoA)+iik2qXb=@tmRe=1ebm-b zyT9t!uk}yfI_HgZ?tkyO=ic|+DRjDDpexhYa~tSG0f9gxR8>`h?T>h8`}00hMFovS zVGyb)K#oKpu__=K2J{gS6v!aZL4XDSPrSvyJDEVI1%7~P@aOnPA`nT@~qpLU^D^SXDI`>`e{vP!1u`sC;NN)&s3ZP*ZV7s**?q5{5(| zsw1#!YAOhIlm`(5gHhc5d;_<=x)6>>4CAl*we!g&jKZ-BomF8!y zFM&qVfRPwv1R#C`MuM+c~adjWdn`$gdH9|V7|o-j$i9>AkuR=X_T zlF=7us%r%7y&k1L^ESU(94xyPF+z7 zAmQ~laR>yi=wDel4CIfp03kQS)M5ws2lk*9m=1_PN)xzNrY?Y+Uf?ds;{^S%iUZSiT1kumuC zBHqXQ`i;{gGfNjDPUjqu+B1>+_UgrV`patTdK{f11??kmm6c8}W=w?g4{+9UoaM;i zY>9$gg*yMY@z zHRSp7R$%wq80n?CnHiqCoq59nxl4OOLNd1>Se;}p8z6CDPo1Tflw77caR`f3@U9Xs zeTdT5?z(!_x;1DYv>Oy`s$f+s!?DwCh(8Q`_FPGwj1V(`xFXp_0QIYLJ#A(cL?0s=}wE#$Eb zV4}IDnf zNpwl_mkF>VvZAbBOqeVi=o;~mU)F|7cAV+sycs`-GdojT*}2O~yScMdptrYo7+J_$ zYlmCd9|SQx@)FJ-Yss(|jZuQb%gf62WK#$%Rt6P&kmRtTl5frPoc5x6Cl4is`L>7L znGzOtC$JGBN(yC49HNYzLp)`iFrHL>p9;&sQn+3;FB&ICEebkqr&LVLW>KW+Lt{6i!?xVwnP%$Z~X~@Out5Y_dZk3+aCr$_;_xbFu?8&*i^(5TcZ1!poYUafQ z#pW1;hgHR zBD!Hi-XImFt80bIlu5Y)+czL^OK>?>&?9fz5(+t{8*$uRwrOHQULWcld#%L{%8I%K zD=UCa^SqcS6e+*Nxfqt{n2?JG zV46FH5{oZ3)W|a8A@E9nUQ)%JlpoHmYI&li{CREL(|%VgC`7XBLOPqF!@e*cmf-xj z7=y`EIOwC=ENa?vZuC47g3uUg&D@@Su?C+?7-+j%AQ-N#OGp>xja2MpU*s5jRgYwdZ3(0F$^sOt@12$e~9e>EUVbzk*j7RPxv^{=|0s?`2!BxjGo+j-B zCzV9NkQjxFo!rkvpSfyAeRq8z{muyID*kYh!$C!SCdH9!q)g}?BT8v|+WM^)!tUjB zK!Rzux1JXI%q}0g7|}PD{cTP10!E=})?Se>+V0F{z3isK$}YP0<@L$;^^XQSSk#xf z2@}=Q)~H=r_qgE^muj5d{6HgmsO7dKf2U`~E!J54F|~kbXJupM!#=Im8z!qw$tA@% zyv;2vg3edLY{F&?^mav&1pFj=Z#}A}oYR=v)HmF2p`3$9Zn$K1E1+V^s zZN2xi1Ut}`JB8?_XLlMJYWPF!PegNGD=*8pKg{VEA!zhvdSASBQrY}i_6Ab#_Jg-B zkOLaeLfWmL3Ve5@|5Pep*faQZs+buAJUTmz@cQ-`At)%Vv9Xcq9Z@y;?Nl{Q7@|Ku zim}@1;~mG*A!MGYcKPAt^KKTL!E;s{g6x>b_AQ$X(%u7vRt=)NJP|+K5B#L#t zlV~qM^WMG2ong$|B8q!@sQDxq;tM@wt`Qe6w=k?(v~ca{uI0gMan+&+mys}mZsn$$ z)#DWG7YUfH1tvwkXz}=IMS2A!-BG+kOj43WAmsKQxp@hiQkZp5L6KjWi(GP5(J%vA zmpgjjvi+uLc-xPet~4OL8nKez9gV zq|l{>@2ZipgHc&TCsBFp!rVb|*GA*xtJ^AC;+=>#tL7K4$hvAdb5nAPSuV=3BqnR7 zA6FZWFWV|-su4{ZEt468bMi!e2HAOE3CJ4w*DL2#P1{uOl%2QRFpu^xN~K%5x^4^% z3_PY8oFJDSmOSaETjM)DJ|dh<6i!IrGP7K`X&P?`l=h?U~M~ZBFQhMR!CIP|fzR7Q#Z_oKMGKWW6 zdk^Z6Et>64**JwdlqeXG%9`1tE*~i&&H8tz@+LjE%ni7S7#=0c2ens zXU@kZAL+^yn>LxJDx^-B@nWBjTc0FxgmQz!FuM&<11g6t=bJ{@y=Esv?`S2>be6C}x>;T8HE zI{F{gf`-Z`9wx4}8i3Saa`V5v`kLsG@Ne|#L~J@-({tmzbW7ya&4Gk4ePj6o*!SCU zK2kSu!U&n()q7V3Nc2C*HU+Mp zm(NV$VMAzss%v;pQbylmIC~1nS{2jOn3JM-T($4;R}VFICgzX@qf5;T;ATP)4#Ej& zG`V7ri+-=7&dpuN*KbJhzwu~balFUjo9A{o{*Gk(bPKKH?1k~{)*zQ>lY_n5MPV0H zAMe_xE_~f_4ahhid9(?U@2p&L_H5g=YeKPx(T$Dzi;Ih8w1Wt$psZPe&`QYaFLjBF zi-X1xh)YRrW#j^-65rX|#BQT)isCEj-}-)U%~#O6!`QXsuhnUfrJ!$}}(RwWy9A zP@4!VPa3$vl|S4+92i?Yi^oY6-H?{j4VUN-%FN0lxw+-g7K@^W3R1i4C(FNj6Tu-P(qU#$I$4i>i-<@&B;rfAbNW# zycN}P7nNxqlbI>DxU@91KVhB0@`l+Ze0!5_dR}=O#wbz;Cbl;wQk_j}$*`CbwEbqc zvTMEhIp@!dLORZ9q}k7fY!7{LRk<7;(q<|#$X(+mKv0wj{J$XxLd>JLgfleSwi zjSm>X23|}}wpTJzOxq-t7;Krosh_oOUS!rn;qF5A%}1>DYnhD8&-bwRHf&?4>P~q- z+JB!~_tKR#9Q3kg=HNbMj=5D4{94@Tg4D&L#qb6*s8FH_%SB{66O=jO0v67icrY;^ zx>ik`HvqfmfSara{i3Y+NKAtxW2T}Z58uAMu3zi*koe8YF8U?cOHwhMIL3Ph1i*BM zrD3UoTQuks{-bzn{_n?k3?E_w_|MJ%zWeeKfh9|dpmkKdthXt4wI&jaA}ukw#T sp+3$3ehj?D|Em|3A0PnyjrNa4fBOFK6F%V+KH-Dn2cRQ&WdJS!0FBqIcmMzZ literal 0 HcmV?d00001 diff --git a/src/test/resources/logback-test.xml b/src/test/resources/logback-test.xml new file mode 100644 index 0000000..5ddaf25 --- /dev/null +++ b/src/test/resources/logback-test.xml @@ -0,0 +1,32 @@ + + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + diff --git a/src/test/resources/testPhysicalResourceSpec.json b/src/test/resources/testPhysicalResourceSpec.json new file mode 100644 index 0000000..b3eed34 --- /dev/null +++ b/src/test/resources/testPhysicalResourceSpec.json @@ -0,0 +1,180 @@ +{ + "name": "Test Resource Spec", + "description": "Test Resource Spec example", + "version": "1.8.0", + "isBundle": false, + "@type": "PhysicalResourceSpecification", + "validFor": { + "startDateTime": "2017-08-12T00:00:00.999Z", + "endDateTime": "2018-03-07T00:00:00.999Z" + }, + "category": "Router resource", + "attachment": [ + { + "id": "25553", + "href": "https://mycsp.com:8080/tmf-api/documentManagement/v4/attachment/25553", + "name": "Data Sheet", + "mimeType": "application/pdf", + "url": "https://onestore.nokia.com/asset/205421" + } + ], + "relatedParty": [ + { + "id": "5855", + "href": "https://mycsp.com:8080/tmf-api/partyRoleManagement/organization/5855", + "role": "Supplier", + "name": "Nokia Networks" + } + ], + "resourceSpecRelationship": [ + { + "id": "556234", + "href": "https://mycsp.com:8080/tmf-api/resourceCatalogManagement/resourceSpecification/556234", + "name": "SR OS Operating System", + "relationshipType": "dependency" + } + ], + "resourceSpecCharacteristic": [ + { + "name": "CoverageSpec", + "configurable": true, + "description": "This attribute specifies the coverage area of the network slice - the area where the terminals can access a particular network slice", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "ENUM", + "resourceSpecCharRelationship": [ + { + "name": "Character Attribute", + "relationshipType": "dependency" + }, + { + "name": "Operational", + "relationshipType": "dependency" + }, + { + "name": "Scalability Attribute", + "relationshipType": "dependency" + }, + { + "name": "KPI", + "relationshipType": "dependency" + } + ], + "resourceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "SMALLINT", + "validFor": null, + "value": { + "value": "4", + "alias": "Local (outdoor)" + } + } + ] + } + ], + "featureSpecification": [ + { + "id": "l22m455f-671a-499d-a95j-8h46fe3bc88c", + "name": "log", + "validFor": { + "startDateTime": "2015-11-21T00:00:00.999Z", + "endDateTime": "2019-12-31T23:59:59.999Z" + }, + "featureSpecCharacteristic": [ + { + "name": "logSize", + "description": "Log Size in MB", + "valueType": "integer", + "configurable": true, + "validFor": { + "startDateTime": "2015-11-22T00:00:00.999Z", + "endDateTime": "2019-12-31T23:59:59.999Z" + }, + "@type": "FeatureSpecificationCharacteristic", + "minCardinality": 0, + "maxCardinality": 1, + "isUnique": true, + "extensible": false, + "featureSpecCharacteristicValue": [ + { + "isDefault": true, + "valueType": "integer", + "value": 2000, + "validFor": { + "startDateTime": "2015-11-22T00:00:00.999Z", + "endDateTime": "2019-12-31T23:59:59.999Z" + } + }, + { + "isDefault": false, + "valueType": "integer", + "value": 4000, + "validFor": { + "startDateTime": "2015-11-22T00:00:00.999Z", + "endDateTime": "2019-12-31T23:59:59.999Z" + } + } + ] + } + ] + }, + { + "id": "db723e27-58d3-4120-b564-af199cb32bd3", + "name": "IPAddressing", + "isBundle": true, + "validFor": { + "startDateTime": "2017-05-24T00:00:00.999Z", + "endDateTime": "2019-12-31T23:59:59.999Z" + }, + "constraint": [ + { + "id": "34", + "version": "1.0", + "href": "https://mycsp.com:8080/tmf-api/resourceCatalogManagement/v4/constraint/34", + "name": "ReliesOnIPv4OrIPv6" + } + ], + "featureSpecRelationship": [ + { + "relationshipType": "requires", + "featureId": "43883a81-58ef-45af-ace4-993298ae8361", + "resourceSpecificationId": "755232457686", + "resourceSpecificationHref": "https://mycsp.com:8080/tmf-api/resourceCatalogManagement/resourceSpecification/755232457686", + "name": "IPv4Addressing", + "validFor": { + "startDateTime": "2017-05-24T00:00:00.999Z", + "endDateTime": "2019-12-31T23:59:59.999Z" + } + }, + { + "relationshipType": "requires", + "featureId": "b85f845f-011a-468f-a90e-9e07fe3bc90a", + "resourceSpecificationId": "755232457686", + "resourceSpecificationHref": "https://mycsp.com:8080/tmf-api/resourceCatalogManagement/resourceSpecification/755232457686", + "name": "IPv6Addressing", + "validFor": { + "startDateTime": "2017-05-24T00:00:00.999Z", + "endDateTime": "2019-12-31T23:59:59.999Z" + } + } + ] + } + ], + "targetResourceSchema": { + "@type": "NokiaRouter", + "@schemaLocation": "https://mycsp.com:8080/tmf-api/schema/Resource/NokiaRouter.schema.json" + }, + "model": "7750 SR", + "part": "2s", + "sku": "3HE09264AA", + "vendor": "Nokia Networks" +} \ No newline at end of file diff --git a/src/test/resources/testProductCatalog.txt b/src/test/resources/testProductCatalog.txt new file mode 100644 index 0000000..02c2185 --- /dev/null +++ b/src/test/resources/testProductCatalog.txt @@ -0,0 +1,5 @@ +{ + "name": "Test Product Catalog", + "description": "A Test Product Catalog", + "version": "1.8" +} \ No newline at end of file diff --git a/src/test/resources/testProductCategory.txt b/src/test/resources/testProductCategory.txt new file mode 100644 index 0000000..4b71154 --- /dev/null +++ b/src/test/resources/testProductCategory.txt @@ -0,0 +1,5 @@ +{ + "name": "Test Product Category 2", + "description": "A Test Product Category", + "version": "1.8" +} \ No newline at end of file diff --git a/src/test/resources/testProductOfferingPrice.txt b/src/test/resources/testProductOfferingPrice.txt new file mode 100644 index 0000000..737065b --- /dev/null +++ b/src/test/resources/testProductOfferingPrice.txt @@ -0,0 +1,65 @@ +{ + "name": "Recurring Charge for Business Firewall", + "description": "This pricing describes the recurring charge for a firewall service that can be deployed in business customer premise.", + "version": "2.1", + "validFor": { + "startDateTime": "2017-08-23T13:27:56Z", + "endDateTime": "2018-03-25T13:27:56Z" + }, + "priceType": "recurring", + "recurringChargePeriodType": "monthly", + "recurringChargePeriodLength": 1, + "isBundle": false, + "lifecycleStatus": "Active", + "price": { + "unit": "EUR", + "value": 50 + }, + "percentage": 0, + "productOfferingTerm": [ + { + "name": "12 Month", + "description": "12 month contract", + "duration": { + "amount": 12, + "units": "Month" + }, + "validFor": { + "startDateTime": "2017-04-19T16:42:23.0Z", + "endDateTime": "2017-06-19T00:00:00.0Z" + } + } + ], + "place": [ + { + "id": "9979", + "name": "San Francisco Bay Area" + } + ], + "constraint": [ + { + "name": "PriceRuleNo1", + "id": "525" + } + ], + "pricingLogicAlgorithm": [{ + "id": "533", + "name": "PLA_rec", + "description": "Algorithm that rates Recurring event", + "plaSpecId": "525", + "validFor": { + "startDateTime": "2017-04-19T16:42:23.0Z", + "endDateTime": "2018-06-19T00:00:00.0Z" + } + }], + "tax": [ + { + "taxAmount": { + "unit": "EUR", + "value": 10 + }, + "taxCategory": "VAT", + "taxRate": 20 + } + ] +} \ No newline at end of file diff --git a/src/test/resources/testProductOfferingSpec.json b/src/test/resources/testProductOfferingSpec.json new file mode 100644 index 0000000..59c5df7 --- /dev/null +++ b/src/test/resources/testProductOfferingSpec.json @@ -0,0 +1,24 @@ +{ + "name": "Test Product offering Spec", + "description": "Test Spec example", + "lifecycleStatus": "In study", + "version": "1.8.0", + "validFor": null, + "isBundle": false, + "isSellable": null, + "statusReason": null, + "agreement": [], + "attachment": [], + "bundledProductOffering": [], + "category": [], + "channel": [], + "marketSegment": [], + "place": [], + "prodSpecCharValueUse": [], + "productOfferingPrice": [], + "productOfferingTerm": [], + "productSpecification": null, + "resourceCandidate": null, + "serviceCandidate": null, + "serviceLevelAgreement": null +} \ No newline at end of file diff --git a/src/test/resources/testProductSpec.json b/src/test/resources/testProductSpec.json new file mode 100644 index 0000000..007ef92 --- /dev/null +++ b/src/test/resources/testProductSpec.json @@ -0,0 +1,145 @@ +{ + "name": "Acme Firepower NGFW", + "brand": "Acme", + "productNumber": "CSC-340-NGFW", + "description": "Powerful product that integrates with a firewall, including intrusion prevention, advanced malware protection, cloud-based sandboxing, URL filtering, endpoint protection, web gateway, email security, network traffic analysis, network access control and CASB.", + "isBundle": true, + "lifecycleStatus": "Active", + "validFor": { + "startDateTime": "2017-06-19T00:00:00.0Z", + "endDateTime": "2018-04-19T16:42:23.0Z" + }, + "version": "2.1", + "relatedParty": [ + { + "id": "1234", + "role": "Owner", + "name": "Gustave Flaubert" + } + ], + "attachment": [ + { + "id": "15", + "name": "Product Picture", + "mimeType": "image/jpeg", + "url": "https://mycsp.com:7070/docloader?docnum=774451234" + }, + { + "id": "16", + "name": "Product Manual", + "mimeType": "application/pdf", + "url": "https://mycsp.com:7070/docloader?docnum=774454321" + } + ], + "bundledProductSpecification": [ + { + "id": "15", + "name": "URL Filter" + }, + { + "id": "64", + "name": "Malware Protector" + } + ], + "productSpecificationRelationship": [ + { + "id": "23", + "relationshipType": "Dependency", + "validFor": { + "startDateTime": "2017-04-19T16:42:23.0Z" + } + } + ], + "serviceSpecification": [ + { + "id": "22", + "name": "Firewall", + "version": "1.0" + } + ], + "resourceSpecification": [ + { + "id": "63", + "name": "Firewall Port", + "version": "1.0" + } + ], + "productSpecCharacteristic": [ + { + "name": "Number of Ports", + "description": "The total Number of Ports for this product", + "valueType": "number", + "configurable": true, + "minCardinality": 1, + "maxCardinality": 1, + "isUnique": true, + "productSpecCharRelationship": [ + { + "id": "43", + "relationshipType": "Dependency", + "name": "Bandwidth", + "validFor": { + "startDateTime": "2018-04-19T16:42:23.0Z" + } + } + ], + "productSpecCharacteristicValue": [ + { + "isDefault": true, + "valueType": "number", + "validFor": { + "startDateTime": "2017-06-16T00:00:23.0Z", + "endDateTime": "2018-01-13T00:00:23.0Z" + }, + "value": 8 + }, + { + "isDefault": false, + "valueType": "number", + "validFor": { + "startDateTime": "2017-06-16T00:00:23.0Z", + "endDateTime": "2018-01-13T00:00:23.0Z" + }, + "value": 16 + }, + { + "isDefault": false, + "valueType": "number", + "validFor": { + "startDateTime": "2017-06-16T00:00:23.0Z", + "endDateTime": "2018-01-13T00:00:23.0Z" + }, + "value": 24 + } + ], + "validFor": { + "startDateTime": "2017-04-19T16:42:23.0Z" + } + }, + { + "name": "Color", + "description": "Color of the Firewall housing", + "valueType": "string", + "configurable": true, + "minCardinality": 1, + "maxCardinality": 1, + "extensible": true, + "isUnique": true, + "productSpecCharacteristicValue": [ + { + "isDefault": true, + "valueType": " string", + "value": "Black" + }, + { + "isDefault": false, + "valueType": " string", + "value": "White" + } + ], + "validFor": { + "startDateTime": "2017-04-19T16:42:23.0Z" + } + } + ] +} \ No newline at end of file diff --git a/src/test/resources/testResourceCatalog.txt b/src/test/resources/testResourceCatalog.txt new file mode 100644 index 0000000..8f23bdb --- /dev/null +++ b/src/test/resources/testResourceCatalog.txt @@ -0,0 +1,5 @@ +{ + "name": "Test Catalog", + "description": "A Test Catalog", + "version": "1.8" +} \ No newline at end of file diff --git a/src/test/resources/testResourceCategory.txt b/src/test/resources/testResourceCategory.txt new file mode 100644 index 0000000..59ddc54 --- /dev/null +++ b/src/test/resources/testResourceCategory.txt @@ -0,0 +1,5 @@ +{ + "name": "Test Category 2", + "description": "A Test Category", + "version": "1.8" +} \ No newline at end of file diff --git a/src/test/resources/testResourcePool.json b/src/test/resources/testResourcePool.json new file mode 100644 index 0000000..ea80de1 --- /dev/null +++ b/src/test/resources/testResourcePool.json @@ -0,0 +1,86 @@ +{ + "id": "42", + "href": "/hostname:port/ResourcePoolManagement/resourcePool/42", + "name": "StorageCapacity", + "@schemaLocation": "http://hostname:port/ResourcePoolManagement/v1/schema/storageCapacity ", + "@type": "Storage", + + "capacity": [{ + "capacitySpec": { + "id": "44", + "href": "http://hostname:port/ResourcePoolManagement/capacitySpecificatoin/44" + }, + "capacityAmount": "500GB", + "relatedParty": { + "partyRole": "EnterpriseConpany" + }, + "place": { + "id": "00555", + "type": "CITY", + "name": "Mitaka" + }, + "apricableTimePeriod": { + "from": "2017.11.11 11:11" + }, + "appliedCapacitylist": [{ + "appliedCapacityamount": "200GB", + "capacityDemand": { + "capacityDemandAmount": "200GB" + }, + "Resource": [{ + "id": "3", + "href": "http://server:port/resourceInventoryManagement/logicalResource/3" + }] + }, + { + "appliedCapacityamount": "300GB", + "capacityDemand": { + "capacityDemandAmount": "300GB" + }, + "resource": [{ + "id": "3", + "href": " http://server:port/resourceInventoryManagement/logicalResource/3" + }, + { + "id": "5", + "href": " http://server:port/resourceInventoryManagement/logicalResource/5" + } + ] + } + ], + "resourceRef": [{ + "id": "3", + "href": " http://server:port/resourceInventoryManagement/logicalResource/3" + }, + { + "id": "5", + "href": " http://server:port/resourceInventoryManagement/logicalResource/5" + } + ] + }, + { + "capacitySpec": { + "id": "54", + "href": "http://hostname:port/ResourcePoolManagement/CapacitySpecificatoin/54" + }, + "capacityAmount": "1TB", + "relatedParty": { + "partyRole": "EnterpriseConpany" + }, + "place": { + "id": "00555", + "type": "CITY", + "name": "Mitaka" + }, + "apricableTimePeriod": { + "from": "2017.12.11 11:11" + }, + "appliedCapacitylist": [{ + "resourceRef": [{ + "id": "9", + "href": "http://server:port/resourceInventoryManagement/logicalResource/9" + }] + }] + } + ] +} \ No newline at end of file diff --git a/src/test/resources/testResourceSpec.json b/src/test/resources/testResourceSpec.json new file mode 100644 index 0000000..5809ccc --- /dev/null +++ b/src/test/resources/testResourceSpec.json @@ -0,0 +1,46 @@ +{ + "name": "Test Resource Spec", + "description": "Test Resource Spec example", + "version": "1.8.0", + "isBundle": false, + "@type": "LogicalResourceSpecification", + "attachment": [ + ], + "relatedParty": [ + ], + "resourceSpecCharacteristic": [ + { + "name": "CoverageSpec", + "configurable": true, + "description": "This attribute specifies the coverage area of the network slice - the area where the terminals can access a particular network slice", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "ENUM", + "resourceSpecCharRelationship": [ + { "name": "Character Attribute", "relationshipType": "dependency" }, + { "name": "Operational", "relationshipType": "dependency" }, + { "name": "Scalability Attribute", "relationshipType": "dependency" }, + { "name": "KPI", "relationshipType": "dependency" } + ], + "resourceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "SMALLINT", + "validFor": null, + "value": { + "value": "4", + "alias": "Local (outdoor)" + } + } + ] + } + ] +} diff --git a/src/test/resources/testServiceCatalog.txt b/src/test/resources/testServiceCatalog.txt new file mode 100644 index 0000000..8f23bdb --- /dev/null +++ b/src/test/resources/testServiceCatalog.txt @@ -0,0 +1,5 @@ +{ + "name": "Test Catalog", + "description": "A Test Catalog", + "version": "1.8" +} \ No newline at end of file diff --git a/src/test/resources/testServiceCategory.txt b/src/test/resources/testServiceCategory.txt new file mode 100644 index 0000000..59ddc54 --- /dev/null +++ b/src/test/resources/testServiceCategory.txt @@ -0,0 +1,5 @@ +{ + "name": "Test Category 2", + "description": "A Test Category", + "version": "1.8" +} \ No newline at end of file diff --git a/src/test/resources/testServiceSpec.json b/src/test/resources/testServiceSpec.json new file mode 100644 index 0000000..bd1411c --- /dev/null +++ b/src/test/resources/testServiceSpec.json @@ -0,0 +1,49 @@ +{ + "name": "Test Spec", + "description": "Test Spec example", + "version": "1.8.0", + "isBundle": false, + "attachment": [ + ], + "relatedParty": [ + ], + "resourceSpecification": [ + ], + "serviceLevelSpecification": [ + ], + "serviceSpecCharacteristic": [ + { + "name": "Coverage", + "configurable": true, + "description": "This attribute specifies the coverage area of the network slice - the area where the terminals can access a particular network slice", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "ENUM", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "dependency" }, + { "name": "Operational", "role": "tag", "relationshipType": "dependency" }, + { "name": "Scalability Attribute", "role": "tag", "relationshipType": "dependency" }, + { "name": "KPI", "role": "tag", "relationshipType": "dependency" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "SMALLINT", + "validFor": null, + "value": { + "value": "4", + "alias": "Local (outdoor)" + } + } + ] + } + ] +} diff --git a/src/test/resources/testServiceSpec2.json b/src/test/resources/testServiceSpec2.json new file mode 100644 index 0000000..13e648d --- /dev/null +++ b/src/test/resources/testServiceSpec2.json @@ -0,0 +1,78 @@ +{ + "name": "Test Spec2", + "description": "Test Spec2 example", + "version": "1.8.0", + "isBundle": false, + "attachment": [ + ], + "relatedParty": [ + ], + "resourceSpecification": [ + ], + "serviceLevelSpecification": [ + ], + "serviceSpecCharacteristic": [ + { + "name": "Spec2Attribute1", + "configurable": true, + "description": "This attribute specifies the coverage area of the network slice - the area where the terminals can access a particular network slice", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "ENUM", + "serviceSpecCharRelationship": [ + { "name": "Character Attribute", "role": "tag", "relationshipType": "dependency" }, + { "name": "Operational", "role": "tag", "relationshipType": "dependency" }, + { "name": "Scalability Attribute", "role": "tag", "relationshipType": "dependency" }, + { "name": "KPI", "role": "tag", "relationshipType": "dependency" } + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "SMALLINT", + "validFor": null, + "value": { + "value": "4", + "alias": "Local (outdoor)" + } + } + ] + }, + { + "name": "Spec2Attribute2", + "configurable": true, + "description": "This attribute specifies the xxx", + "extensible": null, + "isUnique": true, + "maxCardinality": 1, + "minCardinality": 1, + "regex": null, + "valueType": "ENUM", + "serviceSpecCharRelationship": [ + ], + "serviceSpecCharacteristicValue": [ + { + "isDefault": true, + "rangeInterval": null, + "regex": null, + "unitOfMeasure": "N/A", + "valueFrom": null, + "valueTo": null, + "valueType": "SMALLINT", + "validFor": null, + "value": { + "value": "2", + "alias": "xxx" + } + } + ] + } + ] +} diff --git a/src/test/resources/testServiceTest.json b/src/test/resources/testServiceTest.json new file mode 100644 index 0000000..07f4981 --- /dev/null +++ b/src/test/resources/testServiceTest.json @@ -0,0 +1,6 @@ +{ + "name": "A test name", + "description": "a test", + "mode": "PROACTIVE", + "state": "none" +} \ No newline at end of file diff --git a/src/test/resources/testServiceTestSpec.json b/src/test/resources/testServiceTestSpec.json new file mode 100644 index 0000000..22961ba --- /dev/null +++ b/src/test/resources/testServiceTestSpec.json @@ -0,0 +1,15 @@ +{ + "name": "A test name", + "description": "a test", + "lifecycleStatus": "In study", + "version": "0.beta", + "isBundle": false, + "attachment": [], + "constraint": [], + "entitySpecRelationship": [], + "relatedServiceSpecification": [], + "serviceTestSpecRelationship": [], + "specCharacteristic": [], + "targetEntitySchema": null, + "testMeasureDefinition": [] +} \ No newline at end of file -- GitLab From bbbd1f489f9c58957d166f96839b8fe17d9969a0 Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Mon, 6 Nov 2023 21:11:33 +0200 Subject: [PATCH 2/3] adding gitignore (cherry picked from commit 2b4ae817add9153d32bf4b6277a32c56118906ee) --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 6f6ea3e..59419d5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ /target/ /.apt_generated/ /.apt_generated_tests/ +/.project +/.classpath +/.settings -- GitLab From 05b8f3510d18c937ca50e36dc0fad2c2d193201a Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Mon, 6 Nov 2023 21:14:16 +0200 Subject: [PATCH 3/3] remove eclipse related settings (cherry picked from commit 02931fe42a8049fd8356277d87fd0ba008551d27) --- .classpath | 49 ---------------------- .project | 23 ---------- .settings/org.eclipse.core.resources.prefs | 6 --- .settings/org.eclipse.jdt.apt.core.prefs | 5 --- .settings/org.eclipse.jdt.core.prefs | 17 -------- .settings/org.eclipse.m2e.core.prefs | 4 -- 6 files changed, 104 deletions(-) delete mode 100644 .classpath delete mode 100644 .project delete mode 100644 .settings/org.eclipse.core.resources.prefs delete mode 100644 .settings/org.eclipse.jdt.apt.core.prefs delete mode 100644 .settings/org.eclipse.jdt.core.prefs delete mode 100644 .settings/org.eclipse.m2e.core.prefs diff --git a/.classpath b/.classpath deleted file mode 100644 index 2d9e331..0000000 --- a/.classpath +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.project b/.project deleted file mode 100644 index e64ac99..0000000 --- a/.project +++ /dev/null @@ -1,23 +0,0 @@ - - - org.etsi.osl.tmf.api - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - - diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 18308de..0000000 --- a/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,6 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=utf-8 -encoding//src/main/resources=utf-8 -encoding//src/test/java=utf-8 -encoding//src/test/resources=utf-8 -encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.apt.core.prefs b/.settings/org.eclipse.jdt.apt.core.prefs deleted file mode 100644 index fa6bcfb..0000000 --- a/.settings/org.eclipse.jdt.apt.core.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.apt.aptEnabled=true -org.eclipse.jdt.apt.genSrcDir=.apt_generated -org.eclipse.jdt.apt.genTestSrcDir=.apt_generated_tests -org.eclipse.jdt.apt.reconcileEnabled=true diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 021d2b8..0000000 --- a/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,17 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=17 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning -org.eclipse.jdt.core.compiler.processAnnotations=enabled -org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=17 \ No newline at end of file diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f..0000000 --- a/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 -- GitLab